Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
Ladis
Založen: 18. 09. 2007 Příspěvky: 1533 Bydliště: u Prahy
|
Zaslal: 22. duben 2014, 22:04:11 Předmět: |
|
|
perry napsal: |
Jediné, co je smůla, je hnusné Visual Studio 2013 |
Ale stejně ho budeš používat _________________ Award-winning game developer |
|
Návrat nahoru |
|
|
perry
Založen: 28. 07. 2009 Příspěvky: 879
|
Zaslal: 23. duben 2014, 08:26:55 Předmět: |
|
|
No ano.. nic lepšího jsem totiž nenašel _________________ Perry.cz |
|
Návrat nahoru |
|
|
]semo[
Založen: 29. 07. 2007 Příspěvky: 1525 Bydliště: Telč
|
Zaslal: 23. duben 2014, 08:30:47 Předmět: |
|
|
A v jakém směru hnusné? Nedá se nějak nastavit? Mám VS 2012 Express a měl jen takový hnusný bílý skin. Nicméně i ten jde takovým trikem změnit. _________________ Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory |
|
Návrat nahoru |
|
|
rezna
Založen: 27. 07. 2007 Příspěvky: 2156
|
Zaslal: 23. duben 2014, 08:56:18 Předmět: |
|
|
no vytizeni CPU ti samozrejme zustane - nebo mas nejaky FPS limiter? - ale je spravne ze se to presunulo ke gl* funkcim, tak je to snad i ocekavane ne? |
|
Návrat nahoru |
|
|
perry
Založen: 28. 07. 2009 Příspěvky: 879
|
Zaslal: 23. duben 2014, 09:41:12 Předmět: |
|
|
Jj.. Presun ke gl funkcim je ocekavany.
Ad VS 2013.. Doted jsem mel 2010 a to vypadalo uplne jinak po strance vzhledu. Tuto ma takovy "metroidni" nadech _________________ Perry.cz |
|
Návrat nahoru |
|
|
quas4
Založen: 18. 10. 2007 Příspěvky: 199
|
Zaslal: 23. duben 2014, 10:49:49 Předmět: |
|
|
Vilem Otte napsal: |
Nic není ideální. Osobně na tučňáčkovi gprof, ... |
mnohem lepsi nez gprof je podle me perf (obvykle je v baliku linux-tools).
Mimo perf doporucuju take valgrind (ano je to i profiling tool), strace a dalsi. |
|
Návrat nahoru |
|
|
pcmaster
Založen: 28. 07. 2007 Příspěvky: 1821
|
Zaslal: 23. duben 2014, 12:29:58 Předmět: |
|
|
Vsade, kde som kedy pracoval, sme pouzivali mimo komercnych krasnych zalezitosti (hlavne Telemetry2 -- uplne luxusny a krasny a nunununu sampler, Intel VTune, atd...) aj priamo xperf + Windows Performance Analyzer. Je to velmi mocny nastroj a je tu pre vsetkych. Zaujimave je, ze priamo s akoukolvek analyzou vo VS skusenosti nemam :O
[OT]Ludia na VS 2012 picuju z mne uplne neznamych dovodov, vsak sa to biele da 4 klikmi zmenit na "pekne modre". A kapitalky v menu? Ludia, nesrandujte, to urcuje kvalitu softu? Hehe[/OT] _________________ Off-topic flame-war addict since the very beginning. Registered since Oct. 2003!
Interproductum fimi omne est. |
|
Návrat nahoru |
|
|
perry
Založen: 28. 07. 2009 Příspěvky: 879
|
Zaslal: 23. duben 2014, 12:42:07 Předmět: |
|
|
citace: |
A kapitalky v menu? Ludia, nesrandujte, to urcuje kvalitu softu? Hehe |
To se dá vypnout _________________ Perry.cz |
|
Návrat nahoru |
|
|
quas4
Založen: 18. 10. 2007 Příspěvky: 199
|
Zaslal: 23. duben 2014, 13:33:07 Předmět: |
|
|
perry napsal: |
Tak ta std::unordered_map to trochu zlepšila.
Co se týče profilingu v Release módu, tak vytížení CPU je stejné akorát se volání přesunula někam jinak, resp. k nějakým glFunkcím. Nicméně přechodu na C++11 nelituji, projel jsem si novinky a vypadá to dobře. Jediné, co je smůla, je hnusné Visual Studio 2013 |
cpu profiling musi byt vzdy v release rezimu jinak nic moc nevypovida.
std::unordered_map je sice klasicka hash-table ale pokud je potreba neco opravdu rychleho tak je vhodnejsi se zamerit na neco co je vic na miru. Jaky je pomer insert vs lookup v tvem pripade? Bude mapa obsahovat desitky, tisice ci miliony prvku? atd..
Obzvlast pokud lookup mnohonasobne prevysuje insert/delete tak je dobre se zamyslet i nad organizaci dat v pameti a tu std::unordered_map diky sve obecnosti nema z pohledu L2-cache nejvhodnejsi.
Zde: http://inputwish.com/el/hashmap-bench.tgz jsem vystavil jednoduchou implementaci hashmap (open addressing a linear probing) zalozenou na implementaci od preshing.com.
Je to primitivni benchmark nad mapou ktera obsahuje 4000 klicu a je mereno 400 000 000 lookupu (z toho je zhruba polovina tech co v mape nejsou) ukazuje na mem i5 desktopu:
kód: |
hashmap<int, int>: 5.70522s
std::unordered_map<int, int>: 15.1859s
|
zvlastni.. |
|
Návrat nahoru |
|
|
rezna
Založen: 27. 07. 2007 Příspěvky: 2156
|
|
Návrat nahoru |
|
|
perry
Založen: 28. 07. 2009 Příspěvky: 879
|
Zaslal: 23. duben 2014, 14:06:06 Předmět: |
|
|
Spíš z té mapy čtu... ale porovnání zajímavý, možná zkusím něco jiného. Nicméně zatím jsem spokojený s tou unordered_map (dokonce jsem díky tomu objevil i bug, kdy std::map to setřídila takže mi to náhodnou vždycky vracelo dobře.. teď už ne ) _________________ Perry.cz |
|
Návrat nahoru |
|
|
mar
Založen: 16. 06. 2012 Příspěvky: 602
|
Zaslal: 23. duben 2014, 15:12:47 Předmět: |
|
|
Když už jsme u toho hashování, jenom dvě poznámky, třeba by se to někomu mohlo hodit:
- Jako obecná bloková hashovací funkce stojí za zmínku MurmurHash3 (to, co posílal quas, k hashování intu používá avalanche finalizer 32-bitové varianty právě této hashovací funkce)
- Pozor na hashování floatů: -0 a +0 mají jinou binární reprezentaci, v rbtree (set/map) to nevadí. |
|
Návrat nahoru |
|
|
quas4
Založen: 18. 10. 2007 Příspěvky: 199
|
Zaslal: 24. duben 2014, 06:51:35 Předmět: |
|
|
mar napsal: |
Když už jsme u toho hashování, jenom dvě poznámky, třeba by se to někomu mohlo hodit:
- Jako obecná bloková hashovací funkce stojí za zmínku MurmurHash3 (to, co posílal quas, k hashování intu používá avalanche finalizer 32-bitové varianty právě této hashovací funkce)
|
jj. V pripade tohoto velmi primitivni benchmarku je ale MurmurHash3 brzda. Kdyz zjednodusim hash funkci na pouhe
kód: |
inline int hash(int h)
{
return h;
}
|
tak je v tomto benchmarku rychlejsi nez khash! Ktery ma default hash 32bit intu prave jen samotny int + nabizi alternativne Wang hash nebo jednoduse pridat vlastni.
kód: |
hashmap: 3.84163s,
khash: 4.1986s
|
Presto bych cekal ze se v "real-world" aplikaci MurmurHash3 vyplati.
mar napsal: |
- Pozor na hashování floatů: -0 a +0 mají jinou binární reprezentaci, v rbtree (set/map) to nevadí. |
pouzivat float jako hashovany klic? To jsem jeste nikdy nevidel -- dobra divocina |
|
Návrat nahoru |
|
|
mar
Založen: 16. 06. 2012 Příspěvky: 602
|
Zaslal: 24. duben 2014, 08:51:15 Předmět: |
|
|
Hmm... zajímavé Ano - hashovací funkce může být velká brzda pro elementární typy:
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%).
Na tom je krásně vidět, že vymýšlet znovu kolo má občas smysl - odpadne spousta balastu a nebude to na jiných platformách záviset na konkrétní implementaci STL.
K těm floatům, potřeboval jsem hashovat 3d vektory, tj. obsah klíče, výsledný hash byl samozřejmě unsigned int |
|
Návrat nahoru |
|
|
]semo[
Založen: 29. 07. 2007 Příspěvky: 1525 Bydliště: Telč
|
Zaslal: 24. duben 2014, 09:07:41 Předmět: |
|
|
quas4 napsal: |
pouzivat float jako hashovany klic? To jsem jeste nikdy nevidel -- dobra divocina :) |
Za určitých okolností lze float castnout na integer a porovnávat je jako integery. Funguje to. _________________ Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory |
|
Návrat nahoru |
|
|
|