| 
        
       | 
      
        
  
  WIP: A couple of more ChannelMojo speedup ideas
 1. Add mojo::embedder::SetAsyncMessageCallback()
    The callback is installed to LoalMessagePipeEndpoint, and allows
    the embedder to "steal" arrived mesages before it is enqueued.
    With this, ChromeMojo can bypass subsequent MojoReadMessage() calls.
    13+/-7% speedup for small (14b) message benchmark
 2. Introduce MessageInTransit::ReadContext
    It allows Channel and friends to defer the MessageInTransit instance creation.
    With the async message callback, now ChanelMojo can skip creating MessageInTransit
    instance in many cases and save an extra copying.
    15+/-3% speedup for non-small (hundred-thousand bytes) message benchmark.
 R=viettrungluu@chromium.org
   
  
  
  
  
   
  
  
  
  
    
  
  
    
       | 
      Unified diffs | 
      Side-by-side diffs | 
      Delta from patch set | 
      Stats (+298 lines, -54 lines) | 
      Patch | 
     
    
      
          | 
        M | 
        
          
            ipc/ipc_perftest_support.cc
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          1 chunk | 
          +5 lines, -0 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            ipc/mojo/async_handle_waiter.h
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          1 chunk | 
          +13 lines, -2 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            ipc/mojo/async_handle_waiter.cc
          
         | 
        
          
            View
          
         | 
        
        
          1
        
         | 
        
          5 chunks | 
          +63 lines, -12 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            ipc/mojo/async_handle_waiter_unittest.cc
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          5 chunks | 
          +15 lines, -8 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            ipc/mojo/ipc_message_pipe_reader.h
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          3 chunks | 
          +6 lines, -4 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            ipc/mojo/ipc_message_pipe_reader.cc
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          4 chunks | 
          +11 lines, -4 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            third_party/mojo/src/mojo/edk/embedder/embedder.h
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          1 chunk | 
          +4 lines, -0 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            third_party/mojo/src/mojo/edk/embedder/embedder.cc
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          1 chunk | 
          +6 lines, -0 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            third_party/mojo/src/mojo/edk/system/channel.cc
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          1 chunk | 
          +3 lines, -3 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            third_party/mojo/src/mojo/edk/system/channel_endpoint.h
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          3 chunks | 
          +2 lines, -2 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            third_party/mojo/src/mojo/edk/system/channel_endpoint.cc
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          2 chunks | 
          +3 lines, -3 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            third_party/mojo/src/mojo/edk/system/channel_endpoint_client.h
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          2 chunks | 
          +3 lines, -3 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            third_party/mojo/src/mojo/edk/system/core.h
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          1 chunk | 
          +4 lines, -0 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            third_party/mojo/src/mojo/edk/system/core.cc
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          1 chunk | 
          +8 lines, -0 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            third_party/mojo/src/mojo/edk/system/dispatcher.h
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          4 chunks | 
          +8 lines, -0 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            third_party/mojo/src/mojo/edk/system/dispatcher.cc
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          2 chunks | 
          +13 lines, -0 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            third_party/mojo/src/mojo/edk/system/endpoint_relayer.h
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          1 chunk | 
          +2 lines, -1 line | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            third_party/mojo/src/mojo/edk/system/endpoint_relayer.cc
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          2 chunks | 
          +5 lines, -3 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            third_party/mojo/src/mojo/edk/system/incoming_endpoint.h
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          1 chunk | 
          +2 lines, -1 line | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            third_party/mojo/src/mojo/edk/system/incoming_endpoint.cc
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          1 chunk | 
          +4 lines, -3 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            third_party/mojo/src/mojo/edk/system/local_message_pipe_endpoint.h
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          3 chunks | 
          +4 lines, -0 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            third_party/mojo/src/mojo/edk/system/local_message_pipe_endpoint.cc
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          2 chunks | 
          +17 lines, -0 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            third_party/mojo/src/mojo/edk/system/message_in_transit.h
          
         | 
        
          
            View
          
         | 
        
        
          1
        
         | 
        
          2 chunks | 
          +33 lines, -0 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            third_party/mojo/src/mojo/edk/system/message_pipe.h
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          3 chunks | 
          +9 lines, -1 line | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            third_party/mojo/src/mojo/edk/system/message_pipe.cc
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          4 chunks | 
          +31 lines, -4 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            third_party/mojo/src/mojo/edk/system/message_pipe_dispatcher.h
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          1 chunk | 
          +3 lines, -0 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            third_party/mojo/src/mojo/edk/system/message_pipe_dispatcher.cc
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          1 chunk | 
          +6 lines, -0 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            third_party/mojo/src/mojo/edk/system/message_pipe_endpoint.h
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          2 chunks | 
          +4 lines, -0 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
      
          | 
        M | 
        
          
            third_party/mojo/src/mojo/edk/system/message_pipe_endpoint.cc
          
         | 
        
          
            View
          
         | 
        
        
         | 
        
          1 chunk | 
          +11 lines, -0 lines | 
        
        
          
            0 comments
            
            
          
         | 
        
          
            Download
          
         | 
       
    
   
  
  
 
  
   
  
    
  
  
  
    
    Total messages: 7 (0 generated)
     
  
  
       |