Content

Speaker:

Nicholas Van Kempen

Abstract:

Software performance is an increasingly important area of research due to increasing sustainability concerns and diminishing growth rate of hardware performance. This thesis investigates whether programmers can improve the energy efficiency of their software, and how they can use compiled native languages alongside modern tooling to achieve faster and greener programs.

This thesis first establishes and empirically validates a causal model of the relationship between programming languages and energy consumption. Using controlled experiments and improved measurement methodology, this causal model challenges prior work and demonstrates that the choice of programming language implementation has no measurable effect on application energy consumption beyond execution time. Optimizing software by choosing fast, compiled native languages and focusing on improving runtime performance will provide commensurate sustainability benefits.

This thesis then identifies programmer-controlled memory management as a key mechanism enabling high performance in native languages. Memory is a primary bottleneck for performance; custom allocation strategies based on object lifetimes and memory access patterns can reduce allocation overhead and improve memory locality. Preliminary results show custom allocators achieve gains of up to 14%, particularly in locality-sensitive and long-running workloads.

This thesis finally introduces ChatDBG, an agentic debugging system that diagnoses low-level faults in native code. Aggressively optimizing at the memory level leads to memory management complexity that is a common source of failures. Effective performance work requires precise tooling to surface and resolve those issues. ChatDBG correctly diagnoses memory-related errors in real systems in 91% of cases, and fixes the root cause in 36%.

Advisor:

Emery Berger