если выбрать ту платформу, под которой будет работать программа, или достаточно выбрать x86_64 и скомпилировать, то программа заработает в 2 раза быстрее.
в исходном коде не нужно для этого ничего менять
а вот 2 скриншота, показывающие результат
unordered_map <std:string, int> map1; printf("std hash func... "); clock_t t0=clock(); for(i=0;i < n;i++) str = ltoa(i); map1[str]=i; }
unordered_map <uint32_t, int> map3_3; printf("X31_hash_string hash func... "); clock_t t20_3=clock(); for(i=0;i < n ; i++) str = ltoa(i); map3_3[X31_hash_string((char*)str.c_str())]=i; }
typedef uint32_t khint_t; uint32_t X31_hash_string(const char *s) { khint_t h = *s; if (h) for (++s ; *s; ++s) h = (h << 5) - h + *s; return h; }

![]() | ![]() |
![]() smallVCM sampling |
![]() шумный семплинг из других рендеров |
|
![]() path_noisyness 0.15 |
![]() path_noisyness 0.075 |
















| bpt | vcm | |
|---|---|---|
![]() 33s | ![]() 56s | |
![]() 39s | ![]() 73s | |
![]() 37s | ![]() 71s | |
![]() 29s | ![]() 44s |


