You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[BUG] SemVer.compare causes spurious allocations of SemVer objects #458
const a = new SemVer("1.0");
const b = new SemVer("2.0");
// Chrome's Memory profiler will tell you that new SemVer objects we're created in this call.
a.compare(b);
Why is this a problem? "allocations" aren't observable to JavaScript; are quite unique to individual implementations, and in this case can likely be trivially JITted away.
I’m calling compare inside of what’s essentially a tight loop. The
allocations are t being JITed away and garbage collection is showing up on
my profiling so I’m trying to reduce allocations.
On Tue, May 10, 2022 at 1:30 AM Jordan Harband ***@***.***> wrote:
Why is this a problem? "allocations" aren't observable to JavaScript; are
quite unique to individual implementations, and in this case can likely be
trivially JITted away.
—
Reply to this email directly, view it on GitHub
<#458 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAQGASC3DHRCWEN4HSCTDV3VJHX5TANCNFSM5VQJLF2A>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
using this issue as a reference for auditing the creation of all new Semver/Range classes when called from methods. semver tries to reuse instances in some cases but not others. I think the ideal solution would be to have a standard way of determining options and always reusing the instance, plus the addition of a clone method (#378).
Activity
ljharb commentedon May 10, 2022
Why is this a problem? "allocations" aren't observable to JavaScript; are quite unique to individual implementations, and in this case can likely be trivially JITted away.
kwasimensah commentedon May 10, 2022
lukekarrys commentedon Oct 27, 2022
using this issue as a reference for auditing the creation of all
new Semver/Rangeclasses when called from methods.semvertries to reuse instances in some cases but not others. I think the ideal solution would be to have a standard way of determining options and always reusing the instance, plus the addition of a clone method (#378).