From f2879bddb2c1f2d59ccc91e5e30a8d2fd7e9e492 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20K=C3=B6llner?= Date: Sun, 23 Feb 2020 17:27:31 +0100 Subject: [PATCH] default buffer size = 1024 bytes --- Benchmarking/Benchmark/Benchmark.csproj | 2 +- Benchmarking/CapnpProfile/CapnpProfile.csproj | 2 +- Benchmarking/CapnpProfile/Program.cs | 4 +++- Benchmarking/EchoServiceCapnp/EchoServiceCapnp.csproj | 2 +- Benchmarking/EchoServiceCapnp/Program.cs | 3 ++- Capnp.Net.Runtime/Util/DuplexBufferedStream.cs | 4 +++- 6 files changed, 11 insertions(+), 6 deletions(-) diff --git a/Benchmarking/Benchmark/Benchmark.csproj b/Benchmarking/Benchmark/Benchmark.csproj index 475449a..051d009 100644 --- a/Benchmarking/Benchmark/Benchmark.csproj +++ b/Benchmarking/Benchmark/Benchmark.csproj @@ -7,7 +7,7 @@ - + diff --git a/Benchmarking/CapnpProfile/CapnpProfile.csproj b/Benchmarking/CapnpProfile/CapnpProfile.csproj index fb4935e..953f368 100644 --- a/Benchmarking/CapnpProfile/CapnpProfile.csproj +++ b/Benchmarking/CapnpProfile/CapnpProfile.csproj @@ -12,7 +12,7 @@ - + diff --git a/Benchmarking/CapnpProfile/Program.cs b/Benchmarking/CapnpProfile/Program.cs index 758884f..274bb97 100644 --- a/Benchmarking/CapnpProfile/Program.cs +++ b/Benchmarking/CapnpProfile/Program.cs @@ -11,8 +11,10 @@ namespace CapnpProfile { static async Task Main(string[] args) { - using var server = new TcpRpcServer(IPAddress.Any, 5002); + using var server = new TcpRpcServer(); server.Main = new CapnpEchoService(); + server.AddBuffering(); + server.StartAccepting(IPAddress.Any, 5002); using var client = new TcpRpcClient("localhost", 5002); await client.WhenConnected; using var echoer = client.GetMain(); diff --git a/Benchmarking/EchoServiceCapnp/EchoServiceCapnp.csproj b/Benchmarking/EchoServiceCapnp/EchoServiceCapnp.csproj index 0b9048a..2ef80ba 100644 --- a/Benchmarking/EchoServiceCapnp/EchoServiceCapnp.csproj +++ b/Benchmarking/EchoServiceCapnp/EchoServiceCapnp.csproj @@ -6,7 +6,7 @@ - + diff --git a/Benchmarking/EchoServiceCapnp/Program.cs b/Benchmarking/EchoServiceCapnp/Program.cs index c6ca4fa..62c408b 100644 --- a/Benchmarking/EchoServiceCapnp/Program.cs +++ b/Benchmarking/EchoServiceCapnp/Program.cs @@ -9,10 +9,11 @@ namespace EchoServiceCapnp { static void Main(string[] args) { - using (var server = new TcpRpcServer(IPAddress.Any, 5002)) + using (var server = new TcpRpcServer()) { server.AddBuffering(); server.Main = new CapnpEchoService(); + server.StartAccepting(IPAddress.Any, 5002); Console.WriteLine("Press RETURN to stop listening"); Console.ReadLine(); } diff --git a/Capnp.Net.Runtime/Util/DuplexBufferedStream.cs b/Capnp.Net.Runtime/Util/DuplexBufferedStream.cs index 11e3f06..2bf3001 100644 --- a/Capnp.Net.Runtime/Util/DuplexBufferedStream.cs +++ b/Capnp.Net.Runtime/Util/DuplexBufferedStream.cs @@ -5,7 +5,9 @@ namespace Capnp.Util { internal class DuplexBufferedStream : Stream { - const int DefaultBufferSize = 4096; + // A buffer size of 1024 bytes seems to be a good comprise, giving good performance + // in TCP/IP-over-localhost scenarios for small to medium (200kiB) frame sizes. + const int DefaultBufferSize = 1024; readonly BufferedStream _readStream; readonly BufferedStream _writeStream;