Jak změřit čas algoritmu – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Jak změřit čas algoritmu – C / C++ – Fórum – Programujte.comJak změřit čas algoritmu – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Bald3rr0
Super člen
20. 9. 2009   #1
-
0
-

Napsal jsem si různé fce pro řazení čísel (Bubble Sort, Selection Sort, QuickSort, ...) a zajímala by mě reálná časová náročnost jednotlivých algoritmů. Bohužel se mi u rychlejších algoritmů nedaří naměřit nic. Můj způsob je následující:

unsigned double NejakaFceNaRazeni(...) {

clock_t start = clock();
... kód daného algoritmu
clock_t end = clock();
return (end-start) / CLOCKS_PER_SECONDS;
}


Neznáte nějaký jiný způsob, jak změřit čas?

Nahlásit jako SPAM
IP: 82.100.0.–
Reklama
Reklama
Krivers
~ Anonymní uživatel
4 příspěvky
20. 9. 2009   #2
-
0
-

To Bald3rr :

Ahoj, koukni sem třeba ti to pomůže

http://www.tek-tips.com/viewthread.cfm?qid=1035731&page=6

Nahlásit jako SPAM
IP: 147.251.10.–
z_moravec
~ Redaktor
+3
Posthunter
20. 9. 2009   #3
-
0
-

U rychlých operací je asi lepší je nechat běžet několikrát, třeba 100x a měřit celkový čas.

Nahlásit jako SPAM
IP: 83.240.110.–
Spát lze čtyři hodiny denně, spát déle je nemístný přepych.
Thomas Alva Edison
KIIV+42
God of flame
20. 9. 2009   #4
-
0
-

To z_moravec : bud a nebo pouzit vetsi mnozstvi dat.. kdyz chce porovnavat radici algoritmy tak to neni problem

Nahlásit jako SPAM
IP: 80.250.1.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Bald3rr0
Super člen
20. 9. 2009   #5
-
0
-

To z_moravec : To mě taky napadlo, ale zajímalo mě jestli je nějaké "elegantnější" řešení.
To KIIV : Větší množství dat jsem také zkoušel, ale bohužel se mi nepovedlo alokovat dostatečně velké pole na to, abych měl změřitelný výsledek.

Nahlásit jako SPAM
IP: 82.100.0.–
KIIV+42
God of flame
20. 9. 2009   #6
-
0
-

To Bald3rr : divne.. ja kdyz sem testoval treba eratosthenovo sito tak sem v pohode alokoval pul GB ram (nemam zaplej odkladaci prostor a mam jen 1GB :D)

Nahlásit jako SPAM
IP: 80.250.1.–
Program vždy dělá to co naprogramujete, ne to co chcete...
bukaj_0010
Věrný člen
20. 9. 2009   #7
-
0
-

Bald3rr
Doporučil bych vyhodit měření z těla řadící funkce -- udělat nějaký obal, který bude sloužit pro benchmarking. Pak je víceré spouštění naprosto elegantní. Jinak pro takovéhle benchmarky bych doporučil obojí -- jak víceré spouštění, tak větší množství dat. Resp. lepší je benchmarkovat pro různá množství dat (jak malá, tak obrovská).

Taky mě tak napadá, není náhodou clock_t celočíselný typ? Co přetypování na double?

Nahlásit jako SPAM
IP: 88.101.128.–
Jak se správně ptát? -> http://www.hash.cz/inferno/otazky.html[br][br] Po programování je člověk hladovej.
dannyk0
Věrný člen
20. 9. 2009   #8
-
0
-

Nebo muzes zkusit pouzit high resolution timer. Pokud jedes na winech, tak by se ti mohlo hodit toto:



http://cplus.about.com/od/howtodothingsi2/a/timing.htm

Nahlásit jako SPAM
IP: 85.135.97.–
Jedu v c++,c#,assembler,ASP.NET,PHP,databaze,bezpecnost softwaru[br] -----------------------------------------------------------[br] Muj blog o programovani,hudbe a vsem moznem,co najdu na netu :) [br] http://dannyk.aspone.cz[br] -----------------------------------------------------------[br] Na foru mam nejake prispevky pod nickem Master,tak jen pro upresneni :)
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
20. 9. 2009   #9
-
0
-

To dannyk : To Bald3rr :
Merat to iba na jednom priechode a na malom objeme dat je uplna blbost, lebo je to moc skreslene fluktuaciami
multitasking, IRQ vsetkeho mozneho a vsetky mozne inerupty CPU ktore vas len napadnu vam po troskach ale urcite kradnu nejaky CPU cas, lenze koli tomu sa cas nezastavi ;)

Nahlásit jako SPAM
IP: 217.118.98.–
dannyk0
Věrný člen
21. 9. 2009   #10
-
0
-

Vsak o tom jsem nerekl ani slovo :) Je snad jasne, ze pokud chce mit clovek statisticky relevantni vysledky, musi provest nekolik mereni na co mozna nejvetsim vzorku :)

Nahlásit jako SPAM
IP: 85.135.97.–
Jedu v c++,c#,assembler,ASP.NET,PHP,databaze,bezpecnost softwaru[br] -----------------------------------------------------------[br] Muj blog o programovani,hudbe a vsem moznem,co najdu na netu :) [br] http://dannyk.aspone.cz[br] -----------------------------------------------------------[br] Na foru mam nejake prispevky pod nickem Master,tak jen pro upresneni :)
NahodnyKolemSurfujici
~ Anonymní uživatel
1 příspěvek
22. 9. 2009   #11
-
0
-

To Bald3rr : Použít profiler?

Nahlásit jako SPAM
IP: 86.49.78.–
zavsechny
~ Anonymní uživatel
7 příspěvků
22. 9. 2009   #12
-
0
-

nestačil by na to odhad ??

nebo projet instrukce a z nich spočítat kolik to stojí času. GL

Nahlásit jako SPAM
IP: 213.194.242.–
z_moravec
~ Redaktor
+3
Posthunter
22. 9. 2009   #13
-
0
-

nebo projet instrukce a z nich spočítat kolik to stojí času. GL



Tak to hodně štěstí.

Nahlásit jako SPAM
IP: 83.240.110.–
Spát lze čtyři hodiny denně, spát déle je nemístný přepych.
Thomas Alva Edison
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 104 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý