GH-128842: Collect JIT memory stats (GH-128941)

This commit is contained in:
Diego Russo 2025-02-02 23:17:53 +00:00 committed by GitHub
parent e6c76b947b
commit 567394517a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 117 additions and 8 deletions

View file

@ -87,6 +87,7 @@ jit_free(unsigned char *memory, size_t size)
jit_error("unable to free memory");
return -1;
}
OPT_STAT_ADD(jit_freed_memory_size, size);
return 0;
}
@ -510,6 +511,13 @@ _PyJIT_Compile(_PyExecutorObject *executor, const _PyUOpInstruction trace[], siz
#ifdef MAP_JIT
pthread_jit_write_protect_np(0);
#endif
// Collect memory stats
OPT_STAT_ADD(jit_total_memory_size, total_size);
OPT_STAT_ADD(jit_code_size, code_size);
OPT_STAT_ADD(jit_trampoline_size, state.trampolines.size);
OPT_STAT_ADD(jit_data_size, data_size);
OPT_STAT_ADD(jit_padding_size, padding);
OPT_HIST(total_size, trace_total_memory_hist);
// Update the offsets of each instruction:
for (size_t i = 0; i < length; i++) {
state.instruction_starts[i] += (uintptr_t)memory;