Feat: display memory size in Terminal Inspector using bytes and kibibytes (#4549)

This PR ensures that we can view all memory-related information in the
Terminal Inspector in bytes and kibibytes for improved readability at a
glance.

<img width="561" alt="Screenshot 2025-01-03 at 23 32 07"
src="https://github.com/user-attachments/assets/b1075a0e-f8e1-44e8-8386-8462e35e2c46"
/>
This commit is contained in:
Mitchell Hashimoto
2025-01-04 14:55:29 -08:00
committed by GitHub
3 changed files with 11 additions and 5 deletions

View File

@ -14,6 +14,7 @@ const input = @import("../input.zig");
const renderer = @import("../renderer.zig"); const renderer = @import("../renderer.zig");
const terminal = @import("../terminal/main.zig"); const terminal = @import("../terminal/main.zig");
const inspector = @import("main.zig"); const inspector = @import("main.zig");
const units = @import("units.zig");
/// The window names. These are used with docking so we need to have access. /// The window names. These are used with docking so we need to have access.
const window_cell = "Cell"; const window_cell = "Cell";
@ -440,7 +441,7 @@ fn renderScreenWindow(self: *Inspector) void {
} }
{ {
_ = cimgui.c.igTableSetColumnIndex(1); _ = cimgui.c.igTableSetColumnIndex(1);
cimgui.c.igText("%d bytes", kitty_images.total_bytes); cimgui.c.igText("%d bytes (%d KiB)", kitty_images.total_bytes, units.toKibiBytes(kitty_images.total_bytes));
} }
} }
@ -452,7 +453,7 @@ fn renderScreenWindow(self: *Inspector) void {
} }
{ {
_ = cimgui.c.igTableSetColumnIndex(1); _ = cimgui.c.igTableSetColumnIndex(1);
cimgui.c.igText("%d bytes", kitty_images.total_limit); cimgui.c.igText("%d bytes (%d KiB)", kitty_images.total_limit, units.toKibiBytes(kitty_images.total_limit));
} }
} }
@ -518,7 +519,7 @@ fn renderScreenWindow(self: *Inspector) void {
} }
{ {
_ = cimgui.c.igTableSetColumnIndex(1); _ = cimgui.c.igTableSetColumnIndex(1);
cimgui.c.igText("%d bytes", pages.page_size); cimgui.c.igText("%d bytes (%d KiB)", pages.page_size, units.toKibiBytes(pages.page_size));
} }
} }
@ -530,7 +531,7 @@ fn renderScreenWindow(self: *Inspector) void {
} }
{ {
_ = cimgui.c.igTableSetColumnIndex(1); _ = cimgui.c.igTableSetColumnIndex(1);
cimgui.c.igText("%d bytes", pages.maxSize()); cimgui.c.igText("%d bytes (%d KiB)", pages.maxSize(), units.toKibiBytes(pages.maxSize()));
} }
} }

View File

@ -3,6 +3,8 @@ const assert = std.debug.assert;
const Allocator = std.mem.Allocator; const Allocator = std.mem.Allocator;
const cimgui = @import("cimgui"); const cimgui = @import("cimgui");
const terminal = @import("../terminal/main.zig"); const terminal = @import("../terminal/main.zig");
const inspector = @import("main.zig");
const units = @import("units.zig");
pub fn render(page: *const terminal.Page) void { pub fn render(page: *const terminal.Page) void {
cimgui.c.igPushID_Ptr(page); cimgui.c.igPushID_Ptr(page);
@ -25,7 +27,7 @@ pub fn render(page: *const terminal.Page) void {
} }
{ {
_ = cimgui.c.igTableSetColumnIndex(1); _ = cimgui.c.igTableSetColumnIndex(1);
cimgui.c.igText("%d bytes", page.memory.len); cimgui.c.igText("%d bytes (%d KiB)", page.memory.len, units.toKibiBytes(page.memory.len));
cimgui.c.igText("%d VM pages", page.memory.len / std.mem.page_size); cimgui.c.igText("%d VM pages", page.memory.len / std.mem.page_size);
} }
} }

3
src/inspector/units.zig Normal file
View File

@ -0,0 +1,3 @@
pub fn toKibiBytes(bytes: usize) usize {
return bytes / 1024;
}