Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
pcmaster

Založen: 28. 07. 2007 Příspěvky: 1827
|
Zaslal: 24. duben 2014, 09:36:31 Předmět: |
|
|
Ja som bol v tom, ze IEEE single a double floaty su vzdy lexikograficky porovnatelne. Kedy to nefunguje? _________________ Off-topic flame-war addict since the very beginning. Registered since Oct. 2003!
Interproductum fimi omne est. |
|
Návrat nahoru |
|
 |
quas4
Založen: 18. 10. 2007 Příspěvky: 199
|
Zaslal: 24. duben 2014, 09:50:01 Předmět: |
|
|
mar napsal: |
Zkoušel jsem tu tvoji hashmapu (VS2012) a porovnával s unordered_map. Aby to porovnání bylo fér, vnutil jsem unordered_map stejnou hashovací funkci pro int a změnil jsem count() na find()/end() [v microsoftí implementaci to bylo o fous rychlejší]
a dal jsem optimalizace na maximum a rozdíl v rychlosti byl nakonec pouhá 2 procenta v nesprospěch unordered_map, což už je prakticky zanedbatelné (v původní verzi byl rozdíl 50%). |
to je zajimave - bohuzel nemam nikde windows abych prozkoumal (zkousel jsem jen gcc a clang) ale uz jsem slysel ze v nekterych typech optimalizaci je kompilator od Microsoftu dost dobry. Az nekdy budu mirit i na windows platformu tak se na nej urcite podivam. |
|
Návrat nahoru |
|
 |
]semo[

Založen: 29. 07. 2007 Příspěvky: 1526 Bydliště: Telč
|
Zaslal: 24. duben 2014, 09:57:47 Předmět: |
|
|
pcmaster: no, musíš dát bacha asi hlavně na ty nuly a infy _________________ Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory |
|
Návrat nahoru |
|
 |
mar
Založen: 16. 06. 2012 Příspěvky: 610
|
Zaslal: 24. duben 2014, 11:46:05 Předmět: |
|
|
quas4 napsal: |
to je zajimave - bohuzel nemam nikde windows abych prozkoumal (zkousel jsem jen gcc a clang) ale uz jsem slysel ze v nekterych typech optimalizaci je kompilator od Microsoftu dost dobry. Az nekdy budu mirit i na windows platformu tak se na nej urcite podivam. |
No od stare 6ky na tom prekladaci trochu zapracovali, ale gcc vytvari porad rychlejsi kod.
Tak jsem to zkousel i na linuxu a vypada to spis na horsi implementaci STL, coz me docela prekvapilo.
Pridal jsem do tveho benchmarku projekt pro VS2012 (plus rand() v microsofti stdlib vraci jenom 15-bitove hodnoty, tak jsem to upravil).
Taky jsem pridal (velmi osekanou) verzi sve hashmapy, jednoducha, zalozena na dvou vektorech a jednosmernem listu vazanem pres indexy.
Vyhoda je moznost iterace v poradi vkladani (pokud se nemazalo*)
a tim padem i O(1) iterace pres elementy a random access na unsorted klice.
Link je tady: www.crabaware.com/hashmap/hashmap_bench2.zip
* rychle unstable mazani z vektoru delam pres swap i-teho prvku s poslednim a zmensenim velikosti o 1 |
|
Návrat nahoru |
|
 |
frca

Založen: 28. 07. 2007 Příspěvky: 1561
|
Zaslal: 24. duben 2014, 12:08:47 Předmět: |
|
|
pcmaster, ]semo[: a NaNy (protože když double x = 0.0/0.0;, tak pak x != x vrací true, což určitě víte, ale třeba to někdo jiný neví) _________________ www.FRANTICWARE.com |
|
Návrat nahoru |
|
 |
quas4
Založen: 18. 10. 2007 Příspěvky: 199
|
Zaslal: 24. duben 2014, 12:41:34 Předmět: |
|
|
mar napsal: |
Taky jsem pridal (velmi osekanou) verzi sve hashmapy, jednoducha, zalozena na dvou vektorech a jednosmernem listu vazanem pres indexy.
Vyhoda je moznost iterace v poradi vkladani (pokud se nemazalo*)
a tim padem i O(1) iterace pres elementy a random access na unsorted klice.
|
vypada citelne a je velmi rychla. Pekne. |
|
Návrat nahoru |
|
 |
|