Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C] Funkcja clock()

Ostatnio zmodyfikowano 2015-06-16 14:57
Autor Wiadomość
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
C/C++
#pragma warning ( disable : 4996)
#pragma comment(linker, "/STACK:100000000")
po co Ci one?
P-133524
pekfos
» 2015-06-13 18:42:59
C/C++
czas1 = clock() / CLOCKS_PER_SEC;
Co to znowu za bzdury?

C/C++
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..?
P-133525
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
P-133535
pekfos
» 2015-06-14 01:41:16
te pragmy są konieczne przy visual studio ;-) inaczej program się nie skompiluje.
Ostrzeżenie nie pozwala skompilować?
P-133540
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
P-133565
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?
P-133587
stevy
» 2015-06-15 09:06:12
W tym znaczeniu tak.

Wracając do tematu:

C/C++
float temp = clock();
_sleep( 1000 );
float temp2 = clock();
printf( "time: %f s",( temp2 - temp ) / CLOCKS_PER_SEC );

wynik:


time: 1.016000 s
P-133588
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
P-133615
1 2 « 3 » 4
Poprzednia strona Strona 3 z 4 Następna strona