cakofony opened a new pull request #261: Reduce AsyncLogger.actualAsyncLog to 
34 bytes to allow inlining
URL: https://github.com/apache/logging-log4j2/pull/261
 
 
   New code, which may be inlined unless there are properties configured on the 
logger:
   ```
   public void actualAsyncLog(RingBufferLogEvent)
        0: aload_0         
        1: getfield        #6   // Field 
privateConfig:Lorg/apache/logging/log4j/core/Logger$PrivateConfig;
        4: getfield        #7   // Field 
org/apache/logging/log4j/core/Logger$PrivateConfig.loggerConfig:Lorg/apache/logging/log4j/core/config/LoggerConfig;
        7: astore_2        
        8: aload_2         
        9: invokevirtual   #88  // Method 
org/apache/logging/log4j/core/config/LoggerConfig.getPropertyList:()Ljava/util/List;
       12: astore_3        
       13: aload_3         
       14: ifnull          23   
       17: aload_0         
       18: aload_1         
       19: aload_3         
       20: invokespecial   #89  // Method 
onPropertiesPresent:(Lorg/apache/logging/log4j/core/async/RingBufferLogEvent;Ljava/util/List;)V
       23: aload_2         
       24: invokevirtual   #85  // Method 
org/apache/logging/log4j/core/config/LoggerConfig.getReliabilityStrategy:()Lorg/apache/logging/log4j/core/config/ReliabilityStrategy;
       27: aload_0         
       28: aload_1         
       29: invokeinterface #90, 3// InterfaceMethod 
org/apache/logging/log4j/core/config/ReliabilityStrategy.log:(Lorg/apache/logging/log4j/util/Supplier;Lorg/apache/logging/log4j/core/LogEvent;)V
       34: return
   
   private void onPropertiesPresent(RingBufferLogEvent,List)
         0: aload_1         
         1: invokestatic    #91  // Method 
getContextData:(Lorg/apache/logging/log4j/core/async/RingBufferLogEvent;)Lorg/apache/logging/log4j/util/StringMap;
         4: astore_3        
         5: aload_2         
         6: invokeinterface #92, 1// InterfaceMethod 
java/util/List.iterator:()Ljava/util/Iterator;
        11: astore          4    
        13: aload           4    
        15: invokeinterface #93, 1// InterfaceMethod 
java/util/Iterator.hasNext:()Z
        20: ifeq            107  
        23: aload           4    
        25: invokeinterface #94, 1// InterfaceMethod 
java/util/Iterator.next:()Ljava/lang/Object;
        30: checkcast       #95  // class 
org/apache/logging/log4j/core/config/Property
        33: astore          5    
        35: aload_3         
        36: aload           5    
        38: invokevirtual   #96  // Method 
org/apache/logging/log4j/core/config/Property.getName:()Ljava/lang/String;
        41: invokeinterface #97, 2// InterfaceMethod 
org/apache/logging/log4j/util/StringMap.getValue:(Ljava/lang/String;)Ljava/lang/Object;
        46: ifnull          52   
        49: goto            13   
        52: aload           5    
        54: invokevirtual   #98  // Method 
org/apache/logging/log4j/core/config/Property.isValueNeedsLookup:()Z
        57: ifeq            84   
        60: aload_0         
        61: getfield        #6   // Field 
privateConfig:Lorg/apache/logging/log4j/core/Logger$PrivateConfig;
        64: getfield        #99  // Field 
org/apache/logging/log4j/core/Logger$PrivateConfig.config:Lorg/apache/logging/log4j/core/config/Configuration;
        67: invokeinterface #100, 1// InterfaceMethod 
org/apache/logging/log4j/core/config/Configuration.getStrSubstitutor:()Lorg/apache/logging/log4j/core/lookup/StrSubstitutor;
        72: aload_1         
        73: aload           5    
        75: invokevirtual   #101 // Method 
org/apache/logging/log4j/core/config/Property.getValue:()Ljava/lang/String;
        78: invokevirtual   #102 // Method 
org/apache/logging/log4j/core/lookup/StrSubstitutor.replace:(Lorg/apache/logging/log4j/core/LogEvent;Ljava/lang/String;)Ljava/lang/String;
        81: goto            89   
        84: aload           5    
        86: invokevirtual   #101 // Method 
org/apache/logging/log4j/core/config/Property.getValue:()Ljava/lang/String;
        89: astore          6    
        91: aload_3         
        92: aload           5    
        94: invokevirtual   #96  // Method 
org/apache/logging/log4j/core/config/Property.getName:()Ljava/lang/String;
        97: aload           6    
        99: invokeinterface #103, 3// InterfaceMethod 
org/apache/logging/log4j/util/StringMap.putValue:(Ljava/lang/String;Ljava/lang/Object;)V
       104: goto            13   
       107: aload_1         
       108: aload_3         
       109: invokevirtual   #104 // Method 
org/apache/logging/log4j/core/async/RingBufferLogEvent.setContextData:(Lorg/apache/logging/log4j/util/StringMap;)V
       112: return
   
   private static StringMap getContextData(RingBufferLogEvent)
        0: aload_0         
        1: invokevirtual   #79  // Method 
org/apache/logging/log4j/core/async/RingBufferLogEvent.getContextData:()Lorg/apache/logging/log4j/util/ReadOnlyStringMap;
        4: checkcast       #80  // class org/apache/logging/log4j/util/StringMap
        7: astore_1        
        8: aload_1         
        9: invokeinterface #105, 1// InterfaceMethod 
org/apache/logging/log4j/util/StringMap.isFrozen:()Z
       14: ifeq            30   
       17: invokestatic    #106 // Method 
org/apache/logging/log4j/core/impl/ContextDataFactory.createContextData:()Lorg/apache/logging/log4j/util/StringMap;
       20: astore_2        
       21: aload_2         
       22: aload_1         
       23: invokeinterface #107, 2// InterfaceMethod 
org/apache/logging/log4j/util/StringMap.putAll:(Lorg/apache/logging/log4j/util/ReadOnlyStringMap;)V
       28: aload_2         
       29: areturn         
       30: aload_1         
       31: areturn  
   ```
   
   Previous:
   
   ```
   public void actualAsyncLog(RingBufferLogEvent)
         0: aload_0         
         1: getfield        #6   // Field 
privateConfig:Lorg/apache/logging/log4j/core/Logger$PrivateConfig;
         4: getfield        #7   // Field 
org/apache/logging/log4j/core/Logger$PrivateConfig.loggerConfig:Lorg/apache/logging/log4j/core/config/LoggerConfig;
         7: invokevirtual   #88  // Method 
org/apache/logging/log4j/core/config/LoggerConfig.getPropertyList:()Ljava/util/List;
        10: astore_2        
        11: aload_2         
        12: ifnull          155  
        15: aload_1         
        16: invokevirtual   #79  // Method 
org/apache/logging/log4j/core/async/RingBufferLogEvent.getContextData:()Lorg/apache/logging/log4j/util/ReadOnlyStringMap;
        19: checkcast       #80  // class 
org/apache/logging/log4j/util/StringMap
        22: astore_3        
        23: aload_3         
        24: invokeinterface #89, 1// InterfaceMethod 
org/apache/logging/log4j/util/StringMap.isFrozen:()Z
        29: ifeq            48   
        32: invokestatic    #90  // Method 
org/apache/logging/log4j/core/impl/ContextDataFactory.createContextData:()Lorg/apache/logging/log4j/util/StringMap;
        35: astore          4    
        37: aload           4    
        39: aload_3         
        40: invokeinterface #91, 2// InterfaceMethod 
org/apache/logging/log4j/util/StringMap.putAll:(Lorg/apache/logging/log4j/util/ReadOnlyStringMap;)V
        45: aload           4    
        47: astore_3        
        48: iconst_0        
        49: istore          4    
        51: iload           4    
        53: aload_2         
        54: invokeinterface #92, 1// InterfaceMethod java/util/List.size:()I
        59: if_icmpge       150  
        62: aload_2         
        63: iload           4    
        65: invokeinterface #93, 2// InterfaceMethod 
java/util/List.get:(I)Ljava/lang/Object;
        70: checkcast       #94  // class 
org/apache/logging/log4j/core/config/Property
        73: astore          5    
        75: aload_3         
        76: aload           5    
        78: invokevirtual   #95  // Method 
org/apache/logging/log4j/core/config/Property.getName:()Ljava/lang/String;
        81: invokeinterface #96, 2// InterfaceMethod 
org/apache/logging/log4j/util/StringMap.getValue:(Ljava/lang/String;)Ljava/lang/Object;
        86: ifnull          92   
        89: goto            144  
        92: aload           5    
        94: invokevirtual   #97  // Method 
org/apache/logging/log4j/core/config/Property.isValueNeedsLookup:()Z
        97: ifeq            124  
       100: aload_0         
       101: getfield        #6   // Field 
privateConfig:Lorg/apache/logging/log4j/core/Logger$PrivateConfig;
       104: getfield        #98  // Field 
org/apache/logging/log4j/core/Logger$PrivateConfig.config:Lorg/apache/logging/log4j/core/config/Configuration;
       107: invokeinterface #99, 1// InterfaceMethod 
org/apache/logging/log4j/core/config/Configuration.getStrSubstitutor:()Lorg/apache/logging/log4j/core/lookup/StrSubstitutor;
       112: aload_1         
       113: aload           5    
       115: invokevirtual   #100 // Method 
org/apache/logging/log4j/core/config/Property.getValue:()Ljava/lang/String;
       118: invokevirtual   #101 // Method 
org/apache/logging/log4j/core/lookup/StrSubstitutor.replace:(Lorg/apache/logging/log4j/core/LogEvent;Ljava/lang/String;)Ljava/lang/String;
       121: goto            129  
       124: aload           5    
       126: invokevirtual   #100 // Method 
org/apache/logging/log4j/core/config/Property.getValue:()Ljava/lang/String;
       129: astore          6    
       131: aload_3         
       132: aload           5    
       134: invokevirtual   #95  // Method 
org/apache/logging/log4j/core/config/Property.getName:()Ljava/lang/String;
       137: aload           6    
       139: invokeinterface #102, 3// InterfaceMethod 
org/apache/logging/log4j/util/StringMap.putValue:(Ljava/lang/String;Ljava/lang/Object;)V
       144: iinc            4, 1 
       147: goto            51   
       150: aload_1         
       151: aload_3         
       152: invokevirtual   #103 // Method 
org/apache/logging/log4j/core/async/RingBufferLogEvent.setContextData:(Lorg/apache/logging/log4j/util/StringMap;)V
       155: aload_0         
       156: getfield        #6   // Field 
privateConfig:Lorg/apache/logging/log4j/core/Logger$PrivateConfig;
       159: getfield        #7   // Field 
org/apache/logging/log4j/core/Logger$PrivateConfig.loggerConfig:Lorg/apache/logging/log4j/core/config/LoggerConfig;
       162: invokevirtual   #85  // Method 
org/apache/logging/log4j/core/config/LoggerConfig.getReliabilityStrategy:()Lorg/apache/logging/log4j/core/config/ReliabilityStrategy;
       165: astore_3        
       166: aload_3         
       167: aload_0         
       168: aload_1         
       169: invokeinterface #104, 3// InterfaceMethod 
org/apache/logging/log4j/core/config/ReliabilityStrategy.log:(Lorg/apache/logging/log4j/util/Supplier;Lorg/apache/logging/log4j/core/LogEvent;)V
       174: return
   ```

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to