Last active
October 9, 2017 19:34
-
-
Save nathanmarz/9d8805d5e7d9c689cd629bd0551e84f1 to your computer and use it in GitHub Desktop.
Specter vs "first" function
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Benchmark code: https://github.com/nathanmarz/specter/blob/master/scripts/benchmarks.clj#L176 | |
---------------------------------------------------------------------------------------------- | |
Benchmark: first value of a size 10 vector (10000000 iterations) | |
Avg(ms) vs best Code | |
261.98 1.00 (select-any FIRST data) | |
277.11 1.06 (select-any ALL data) | |
337.43 1.29 (select-first ALL data) | |
561.89 2.14 (first data) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@ztellman: vectors are persistent collections and are always fully realized, so having it "stay in memory" is naturally part of the deal. I'm not arguing with you that
first
could be always O(1) on vectors. The point I made above is that the sequence abstraction concerns bothfirst
andrest
and the latter is the one that seems harder to me.@nathanmarz the last suggestion is interesting. would need some criteria and tests to evaluate more.