-
Couldn't load subscription status.
- Fork 261
move stack to Vector #938
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
move stack to Vector #938
Conversation
By my measurements, it's a bunch faster for this workload (this may be new as of Julia 1.11)
```
julia> function f3(d, n)
for i in 1:n
push!(d, i)
pop!(d)
end
end
f3 (generic function with 1 method)
julia> @benchmark f3(d, 1000) evals=1 setup = (d=Vector{Int}())
BenchmarkTools.Trial: 10000 samples with 1 evaluation per sample.
Range (min … max): 789.000 ns … 10.042 μs ┊ GC (min … max): 0.00% … 0.00%
Time (median): 797.000 ns ┊ GC (median): 0.00%
Time (mean ± σ): 823.878 ns ± 158.991 ns ┊ GC (mean ± σ): 0.00% ± 0.00%
▅█▅▁▅▄ ▂ ▁▄▃ ▂ ▁
███████▆▆▄▁▁▁▁▁▁▇██▃███▇▇▆▇█▆▆▅▄▄▄▄▄▅▄▅▄▆▇▇▆▆▇▆▆▆▅▅▄▁▄▁▃▃▄▅██ █
789 ns Histogram: log(frequency) by time 1.07 μs <
Memory estimate: 96 bytes, allocs estimate: 1.
julia> @benchmark f3(d, 1000) evals=1 setup = (d=Deque{Int}())
BenchmarkTools.Trial: 10000 samples with 1 evaluation per sample.
Range (min … max): 3.667 μs … 28.349 μs ┊ GC (min … max): 0.00% … 0.00%
Time (median): 3.803 μs ┊ GC (median): 0.00%
Time (mean ± σ): 3.930 μs ± 489.972 ns ┊ GC (mean ± σ): 0.00% ± 0.00%
▁▆█▄▇▅▃▃▂▁▁▂▅▃ ▁ ▁▁ ▁ ▂
████████████████▇▇██▇▇▆▇█▇███▇▇▆█▇▄▅▄▆▆▆▆▇▇▅▅▅▄▅▅▆▅▄▅▄▄▄▄▆▅ █
3.67 μs Histogram: log(frequency) by time 5.66 μs <
```
this will just work with a vector I think
Co-authored-by: Anshul Singhvi <[email protected]>
Co-authored-by: Anshul Singhvi <[email protected]>
Remove outdated Iterators.reverse definition
|
tests fail |
Co-authored-by: Max Horn <[email protected]>
|
Since function f4(d, n)
for i in 1:n
push!(d, i)
end
for i in 1:n
pop!(d)
end
end |
Looks like the |
|
I wonder if we shouldn't just deprecate Stack and Queue and tell people to use |
|
|
Last time i branch marked it (which was pre-1.0) it was shockingly good as a queue |
|
My initial experiments seem to confirm. I threw together the following which should be a lot faster than |
By my measurements, it's a bunch faster for this workload (this may be new as of Julia 1.11)