forked from simongog/sdsl-lite
-
Notifications
You must be signed in to change notification settings - Fork 17
Open
Description
Even if the entire amount of storage is pre-reserved (no memory allocations) calling push_back on the sdsl vector is substantially slower that doing the same on std::vector (up to 10x slower).
push_back<std::vector, uint8_t, true> 1 ns 1 ns 847837409 alph_size=256 preallocated_mem=1 sizeof=1
push_back<std::vector, uint16_t, true> 1 ns 1 ns 658253559 alph_size=65.536k preallocated_mem=1 sizeof=2
push_back<std::vector, uint32_t, true> 2 ns 2 ns 448232364 alph_size=4.29497G preallocated_mem=1 sizeof=4
push_back<std::vector, uint64_t, true> 2 ns 2 ns 277192593 preallocated_mem=1 sizeof=8
push_back<sdsl_int_vec, uint8_t, true> 10 ns 10 ns 71418369 alph_size=256 preallocated_mem=1 sizeof=1
push_back<sdsl_int_vec, uint16_t, true> 9 ns 9 ns 73339899 alph_size=65.536k preallocated_mem=1 sizeof=2
push_back<sdsl_int_vec, uint32_t, true> 10 ns 10 ns 66514001 alph_size=4.29497G preallocated_mem=1 sizeof=4
push_back<sdsl_int_vec, uint64_t, true> 11 ns 11 ns 57827822 preallocated_mem=1 sizeof=8
(the fourth column is number of iterations performed in fixed amount of time)
I thought that, especially, for the builtin integer types this shouldn't be so noticeable?
Metadata
Metadata
Assignees
Labels
No labels