Hacker News new | ask | show | jobs
by nitrogen 2128 days ago
If you are writing code that is clamping a lot of numbers, the GC churn from building a new array every time might be a problem.
1 comments

Ideally the temporary array should optimise away.
Ideally, but so far my experiences with simple benchmarks and with ruby-prof have shown that CRuby doesn't make such optimizations:

https://repl.it/repls/GargantuanThistleLink

    Result from sort: 3 in 0.9785124980007822s
    Allocated 3000001 object(s)
    Result from ternary: 3 in 0.3205206830025418s
    Allocated 1 object(s)
    Result from clamp: 3 in 0.5030354310001712s
    Allocated 2 object(s)
Interestingly the ternary comparison is faster than clamp.