2 ms·
You cloned every word, which is much worse than cloning the vector (which only clones a couple of pointers). Here's the performance of the original code: ===>
by brabel 5y ago
You cloned every word, which is much worse than cloning the vector (which only clones a couple of pointers).
Here's the performance of the original code:
===> ./phone_encoder
Proc,Memory(bytes),Time(ms)
./phone_encoder,24584192,198
Proc,Memory(bytes),Time(ms)
./phone_encoder,24584192,461
Proc,Memory(bytes),Time(ms)
./phone_encoder,24612864,1735
Proc,Memory(bytes),Time(ms)
./phone_encoder,24612864,3207
After your change:
Proc,Memory(bytes),Time(ms)
./phone_encoder,24608768,205
Proc,Memory(bytes),Time(ms)
./phone_encoder,24592384,490
Proc,Memory(bytes),Time(ms)
./phone_encoder,24600576,1745
Proc,Memory(bytes),Time(ms)
./phone_encoder,24608768,3388
It's actually surprising that your change didn't make it much worse, but compared with the version where the lifetimes are used to avoid cloning anything at all, both of these are extremely slow.