From d0b913dad1325bde1bdb3df32c20cca273cb1c0a Mon Sep 17 00:00:00 2001 From: gingerBill Date: Mon, 6 Apr 2020 12:17:54 +0100 Subject: Add extra internal memory analysis --- src/parser.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/parser.cpp') diff --git a/src/parser.cpp b/src/parser.cpp index 83ae9743f..937e84279 100644 --- a/src/parser.cpp +++ b/src/parser.cpp @@ -442,9 +442,16 @@ bool ast_node_expect(Ast *node, AstKind kind) { } +gb_global isize volatile total_allocated_node_memory = 0; +gb_global isize volatile total_subtype_node_memory_test = 0; + // NOTE(bill): And this below is why is I/we need a new language! Discriminated unions are a pain in C/C++ Ast *alloc_ast_node(AstFile *f, AstKind kind) { gbAllocator a = ast_allocator(); + + _InterlockedExchangeAdd64(&total_allocated_node_memory, gb_size_of(Ast)); + _InterlockedExchangeAdd64(&total_subtype_node_memory_test, gb_size_of(AstCommonStuff) + ast_variant_sizes[kind]); + Ast *node = gb_alloc_item(a, Ast); node->kind = kind; node->file = f; -- cgit v1.2.3