Сообщение Re[3]: замеры) от 26.07.2023 13:40
Изменено 26.07.2023 13:44 McQwerty
Re[3]: замеры)
Здравствуйте, Sm0ke, Вы писали:
S>Замерил на годболте через chrono: https://godbolt.org/z/dK4jsoxG3
S>На массиве с 90к элементов
Дополнил тест следующим вариантом (с предварительным resize и последующим erase для v_dest):
Выхлоп для тех-же 90'000 элементов:
S>Замерил на годболте через chrono: https://godbolt.org/z/dK4jsoxG3
S>На массиве с 90к элементов
Дополнил тест следующим вариантом (с предварительным resize и последующим erase для v_dest):
{
v_dest.clear();
v_dest. resize (v_src. size ());
const some_time v_start = std::chrono::system_clock::now();
my_container::iterator d = v_dest. begin ();
for (auto i = std::cbegin (v_src), i_end = std::cend (v_src); i != i_end; ++ i)
{
* d = (* i) >> 1;
d += ((* i) ^ 1) & 1;
}
v_dest. erase (d, v_dest. end ());
const some_time v_stop = std::chrono::system_clock::now();
std::cout
<< "mcq: "
<< std::chrono::duration_cast<std::chrono::microseconds>(v_stop - v_start)
<< '\n'
;
}
Выхлоп для тех-же 90'000 элементов:
for: 322us
mcq: 132us
for: 194us
algo: 191us
algo: 190us
for div: 457us
for div: 402us
algo div: 536us
algo div: 600us
Re[3]: замеры)
Здравствуйте, Sm0ke, Вы писали:
S>Замерил на годболте через chrono: https://godbolt.org/z/dK4jsoxG3
S>На массиве с 90к элементов
Дополнил тест следующим вариантом (с предварительным resize и последующим erase для v_dest):
Выхлоп для тех-же 90'000 элементов:
S>Замерил на годболте через chrono: https://godbolt.org/z/dK4jsoxG3
S>На массиве с 90к элементов
Дополнил тест следующим вариантом (с предварительным resize и последующим erase для v_dest):
{
v_dest.clear();
v_dest. resize (v_src. size ());
const some_time v_start = std::chrono::system_clock::now();
my_container::iterator d = v_dest. begin ();
for (auto x : v_src)
{
* d = x >> 1;
d += x & 1 ^ 1;
}
v_dest. erase (d, v_dest. end ());
const some_time v_stop = std::chrono::system_clock::now();
std::cout
<< "mcq: "
<< std::chrono::duration_cast<std::chrono::microseconds>(v_stop - v_start)
<< '\n'
;
}
Выхлоп для тех-же 90'000 элементов:
Program returned: 0
for: 337us
mcq: 132us
for: 195us
algo: 181us
algo: 192us
for div: 415us
for div: 457us
algo div: 526us
algo div: 600us