diff options
| author | Daniel Gavin <danielgavin5@hotmail.com> | 2022-07-31 15:25:07 +0200 |
|---|---|---|
| committer | Daniel Gavin <danielgavin5@hotmail.com> | 2022-07-31 15:25:07 +0200 |
| commit | 963bdd60b8f85eabd3775cec9ce2b92609524db5 (patch) | |
| tree | 5caba8b7b05ead720f86671a9127e76253653b15 /tools | |
| parent | a9625ed006585b742895166ddc5a77f80c1e2960 (diff) | |
Memory optimizations
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/odinfmt/main.odin | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/tools/odinfmt/main.odin b/tools/odinfmt/main.odin index 6fca27f..77f1379 100644 --- a/tools/odinfmt/main.odin +++ b/tools/odinfmt/main.odin @@ -64,9 +64,8 @@ walk_files :: proc(info: os.File_Info, in_err: os.Errno) -> (err: os.Errno, skip } main :: proc() { - arena: mem.Arena; - mem.init_arena(&arena, make([]byte, 20 * mem.Megabyte)); + mem.init_arena(&arena, make([]byte, 50 * mem.Megabyte)); arena_allocator := mem.arena_allocator(&arena); @@ -88,6 +87,8 @@ main :: proc() { write_failure := false; + watermark := 0 + if os.is_file(path) { if _, ok := args.write.(bool); ok { backup_path := strings.concatenate({path, "_bk"}); @@ -118,7 +119,6 @@ main :: proc() { defer delete(backup_path); if data, ok := format_file(file, arena_allocator); ok { - if _, ok := args.write.(bool); ok { os.rename(file, backup_path); @@ -133,10 +133,13 @@ main :: proc() { write_failure = true; } + watermark = max(watermark, arena.offset) + free_all(arena_allocator); } - - fmt.printf("formatted %v files in %vms", len(files), time.duration_milliseconds(time.tick_lap_time(&tick_time))); + + fmt.printf("formatted %v files in %vms \n", len(files), time.duration_milliseconds(time.tick_lap_time(&tick_time))); + fmt.printf("peak used memory: %v \n", watermark / mem.Megabyte) } else { fmt.eprintf("%v is neither a directory nor a file \n", path); os.exit(1); |