veyron/runtimes/google/ipc: fix iobuf bug.
* Fixed to use only one iobuf.Reader per net.Conn.
* Changed iobuf.Pool to allocate buf in a multiple of minSize
and set the default minSize to 4K.
* Fix iobuf leaks.
- There are still two known Slice leaks, a reserved iobuf in crypter
and vc.writer. At first, I tried to fix these leaks too, but it made
close logics of VC/VIF/Proxy too complicated due to their
dependencies. So I revert it :) They don't affect the peformance much
and will be GCed eventually.
With these fixes, IPC bencmark (in my local machine) shows a huge
performance improvement (+35%).
Benchmark___10B: 4.44ms -> 2.59ms
Benchmark___1K_chunk___100B: 291.40ms -> 178.10ms
Benchmark___10B_mux___1K_chunks__100B: 203.60ms -> 102.70ms
Change-Id: I119b05c20ca307e5ce7c1d7f7c08c73a5df7d983
10 files changed