|
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)
|