Completed
Details
Assignee
UnassignedUnassignedReporter
gfredericksgfredericksLabels
Approval
OkPatch
CodePriority
MajorAffects versions
Fix versions
Details
Details
Assignee
Unassigned
UnassignedReporter
gfredericks
gfredericksLabels
Approval
Ok
Patch
Code
Priority

Affects versions
Fix versions
Created March 16, 2014 at 1:36 AM
Updated August 29, 2014 at 4:50 PM
Resolved August 29, 2014 at 4:50 PM
CLJ-1384-p2 uses transients for both create and createWithCheck. This is consistent with the current implementation for map.
clojure.core/vec
calls (more or less)PersistentVector.create(...)
, which uses a transient vector to build up the result.clojure.core/set
on the other hand, callsPersistentHashSet.create(...)
, which repeatedly calls.cons
on aPersistentHashSet
, with all the associated speed/GC issues.Operation
count
now
w/transients
set
5
1.771924 µs
1.295637 µs
into
5
1.407925 µs
1.402995 µs
set
1000000
2.499264 s
1.196653 s
into
1000000
0.977555 s
1.006951 s
Patch: CLJ-1384-p2.patch
Screened by: Stu