Download CV
2025

Low Level Optimization

An OpenGL application built to investigate and benchmark low-level performance optimisation techniques. The scene renders 8,000 simultaneously colliding cubes and spheres confined within a fixed boundary, providing a consistent and stress-intensive workload for profiling. Performance was measured using Optick (a C++ frame profiler) alongside custom in-engine instrumentation.

The unoptimised baseline recorded an average physics update time of 250.5ms. Three targeted optimisations were then applied: a fixed-size memory allocator for deterministic allocation, reduced fragmentation, and built-in memory tracking and validation; a thread pool with a producer-consumer job queue distributing rendering and collision work across available cores; and spatial collision partitioning, assigning discrete regions of the scene to individual threads to eliminate contention and redundant broad-phase checks.

The combined result reduced the average physics update time to 1.9ms — a 131× improvement — sustaining a stable 90fps with 8,000 fully colliding objects.

C++ OpenGL Optimization Multithreading Memory Management Profiling Low Level