Even with --pathway=0, every cache miss creates a heap-backed assemblyPath (line 4), key vector, parent pointer, and matching metadata. The flag is not acted upon until search completion (line 868).
Use a compact open-addressed table containing only canonical key plus best duplicated-bond count. Allocate immutable miss keys from an arena and support lookup from a scratch span without constructing a vector. For pathway output, consider a second bounded witness search after the optimum is known. This should materially reduce both the 117 MiB profile peak and allocator time.
Even with --pathway=0, every cache miss creates a heap-backed
assemblyPath(line 4), key vector, parent pointer, and matching metadata. The flag is not acted upon until search completion (line 868).Use a compact open-addressed table containing only canonical key plus best duplicated-bond count. Allocate immutable miss keys from an arena and support lookup from a scratch span without constructing a vector. For pathway output, consider a second bounded witness search after the optimum is known. This should materially reduce both the 117 MiB profile peak and allocator time.