- commit
- 536bad4
- parent
- be3b0ab
- author
- Eric Bower
- date
- 2025-10-14 15:29:34 -0400 EDT
perf: increase buffer sizes
5 files changed,
+8,
-8
+3,
-3
1@@ -106,7 +106,7 @@ pub fn main(config: config_mod.Config, iter: *std.process.ArgIterator) !void {
2 .loop = &loop,
3 .session_name = session_name,
4 .config = config,
5- .frame_buffer = std.ArrayList(u8).initCapacity(allocator, 4096) catch unreachable,
6+ .frame_buffer = std.ArrayList(u8).initCapacity(allocator, 64 * 1024) catch unreachable, // 64KB initial capacity
7 };
8
9 // Get terminal size
10@@ -177,10 +177,10 @@ fn writeCallback(
11 }
12
13 // Context for async socket read operations from daemon.
14-// Uses large buffer (128KB) to handle initial session scrollback and binary PTY frames.
15+// Uses large buffer (256KB) to handle initial session scrollback and binary PTY frames.
16 const ReadContext = struct {
17 ctx: *Context,
18- buffer: [128 * 1024]u8, // 128KB to handle large scrollback messages
19+ buffer: [256 * 1024]u8, // 256KB to handle large scrollback messages
20 };
21
22 fn readCallback(
+2,
-2
1@@ -235,7 +235,7 @@ const Session = struct {
2 pty_master_fd: std.posix.fd_t,
3 child_pid: std.posix.pid_t,
4 allocator: std.mem.Allocator,
5- pty_read_buffer: [16384]u8,
6+ pty_read_buffer: [128 * 1024]u8, // 128KB for high-throughput PTY output
7 created_at: i64,
8
9 // Terminal emulator state for session restore
10@@ -258,7 +258,7 @@ const Session = struct {
11 const Client = struct {
12 fd: std.posix.fd_t,
13 stream: xev.Stream,
14- read_buffer: [16384]u8,
15+ read_buffer: [128 * 1024]u8, // 128KB for high-throughput socket reads
16 allocator: std.mem.Allocator,
17 attached_session: ?[]const u8,
18 server_ctx: *ServerContext,
+1,
-1
1@@ -94,7 +94,7 @@ pub fn main(config: config_mod.Config, iter: *std.process.ArgIterator) !void {
2
3 try protocol.writeJson(allocator, socket_fd, .detach_session_request, request_payload);
4
5- var buffer: [4096]u8 = undefined;
6+ var buffer: [16 * 1024]u8 = undefined; // 16KB for robustness
7 const bytes_read = try posix.read(socket_fd, &buffer);
8
9 if (bytes_read == 0) {
+1,
-1
1@@ -54,7 +54,7 @@ pub fn main(config: config_mod.Config, iter: *std.process.ArgIterator) !void {
2 protocol.KillSessionRequest{ .session_name = session_name },
3 );
4
5- var buffer: [4096]u8 = undefined;
6+ var buffer: [16 * 1024]u8 = undefined; // 16KB for robustness
7 const bytes_read = try posix.read(socket_fd, &buffer);
8
9 if (bytes_read == 0) {
+1,
-1
1@@ -43,7 +43,7 @@ pub fn main(config: config_mod.Config, iter: *std.process.ArgIterator) !void {
2
3 try protocol.writeJson(allocator, socket_fd, .list_sessions_request, protocol.ListSessionsRequest{});
4
5- var buffer: [8192]u8 = undefined;
6+ var buffer: [32 * 1024]u8 = undefined; // 32KB to handle many sessions
7 const bytes_read = try posix.read(socket_fd, &buffer);
8
9 if (bytes_read == 0) {