A concurrency-enhanced system, comprising: an execution stack of a program, the execution stack including execution frames over a time period of interest; a memory, the memory configured by the execution stack, the memory also configured by behavior-driven stack scan optimisation, BDSSO software; a processor in operable communication with the memory, the processor configured to execute the BDSSO software to perform BDSSO steps which include (a) obtaining execution stack frame occurrence data, (b) determining from the execution stack frame occurrence data, for each of a plurality of execution frames, a respective frame execution likelihood, (c) selecting a stack scan depth based at least in part on the frame execution likelihoods, the selected stack scan depth being less than a full depth of the entire execution stack, (d) installing a garbage collection scan return barrier at the selected stack scan depth, and then (e) allowing a tracing garbage collector to scan the execution stack below the scan return barrier while the program is running, unless the program executes a frame return operation that hits the scan return barrier, or allowing the tracing garbage collector to scan the execution stack only to the selected stack scan depth. an execution stack of a program, the execution stack including execution frames over a time period of interest; a memory, the memory configured by the execution stack, the memory also configured by behavior-driven stack scan optimisation, BDSSO software; a processor in operable communication with the memory, the processor configured to execute the BDSSO software to perform BDSSO steps which include (a) obtaining execution stack frame occurrence data, (b) determining from the execution stack frame occurrence data, for each of a plurality of execution frames, a respective frame execution likelihood, (c) selecting a stack scan depth based at least in part on the frame execution likelihoods, the selected stack scan depth being less than a full depth of the entire execution stack, (d) installing a garbage collection scan return barrier at the selected stack scan depth, and then (e) allowing a tracing garbage collector to scan the execution stack below the scan return barrier while the program is running, unless the program executes a frame return operation that hits the scan return barrier, or allowing the tracing garbage collector to scan the execution stack only to the selected stack scan depth. (a) obtaining execution stack frame occurrence data, (b) determining from the execution stack frame occurrence data, for each of a plurality of execution frames, a respective frame execution likelihood, (c) selecting a stack scan depth based at least in part on the frame execution likelihoods, the selected stack scan depth being less than a full depth of the entire execution stack, (d) installing a garbage collection scan return barrier at the selected stack scan depth, and then (e) allowing a tracing garbage collector to scan the execution stack below the scan return barrier while the program is running, unless the program executes a frame return operation that hits the scan return barrier, or allowing the tracing garbage collector to scan the execution stack only to the selected stack scan depth.