[C] Funkcja clock()
Ostatnio zmodyfikowano 2015-06-16 14:57
Monika90 |
» 2015-06-13 18:41:39 1. Nie wiem czy zauważyłeś, ale twój pogram jest napisany w C++11, a nazwa tematu sugeruje, że chciałeś by był napisany w C. 2. Takie warningi podczas kompilacji się wyświetlają t.cpp: In function 'int main()': t.cpp:58:44: warning: format '%lf' expects argument of type 'double', but argument 2 has type 'long int' [-Wformat=] printf( "Czas: %lf\n\n", czas2 - czas1 ); ^ t.cpp:65:42: warning: format '%lf' expects argument of type 'double', but argument 2 has type 'long int' [-Wformat=] printf( "Czas: %lf\n", czas2 - czas1 );
3. Nie mierz czasu jednego wyszukania tylko np. 1000. 4. I wyrzuć te pragmy #pragma warning ( disable : 4996) #pragma comment(linker, "/STACK:100000000")
po co Ci one? |
|
pekfos |
» 2015-06-13 18:42:59 czas1 = clock() / CLOCKS_PER_SEC;
|
Co to znowu za bzdury? wynik = szukaj( root, x ); czas1 = clock() / CLOCKS_PER_SEC; printf( "Poszukiwanie x w drzewie: %d\n", wynik ); czas2 = clock() / CLOCKS_PER_SEC;
|
Co ty tu mierzysz..? |
|
Roofy5 Temat założony przez niniejszego użytkownika |
» 2015-06-13 23:57:20 @pefkos - w tym drugim mierzeniu chciałem sprawdzić czy dla printfa ten czas tez będzie taki sam - taki tylko test i zapomnialem to zmienić kiedy wklejalem kod tutaj. Te dzielenia przez CLOCKS_PER_SEC to tez pozostałość po testowaniu tego kodu na wiele sposobów...
@monika te pragmy są konieczne przy visual studio ;-) inaczej program się nie skompiluje. Czas mierze dla funkcji obsługującej tablicebo rozmiarze 1 000 000 i większe wiec nie mierze "pojedynczej" operacji |
|
pekfos |
» 2015-06-14 01:41:16 te pragmy są konieczne przy visual studio ;-) inaczej program się nie skompiluje. |
Ostrzeżenie nie pozwala skompilować? |
|
stevy |
» 2015-06-14 16:02:17 Nie kompiluje się przez użycie scanf, visual uważa że jest ona niebezpieczna i należy ją zamienić na scanf_s. Zazwyczaj definiuje się _CRT_SECURE_NO_WARNINGS zamiast disable : 4996 |
|
Roofy5 Temat założony przez niniejszego użytkownika |
» 2015-06-15 00:14:47 Disable 4996 a CRT... to jest to samo czy się myle? |
|
stevy |
» 2015-06-15 09:06:12 W tym znaczeniu tak. Wracając do tematu: float temp = clock(); _sleep( 1000 ); float temp2 = clock(); printf( "time: %f s",( temp2 - temp ) / CLOCKS_PER_SEC );
wynik: time: 1.016000 s
|
|
Roofy5 Temat założony przez niniejszego użytkownika |
» 2015-06-15 21:53:37 Wiesz - ze sleep`em też mi tak działa, ale dlaczego funkcji wykonuje się jakby w 0 "tyknięć/taktów" procesora? :P |
|
1 2 « 3 » 4 |