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

Czas wykonania funkcji

Ostatnio zmodyfikowano 2015-10-15 16:48
Autor Wiadomość
SocrateZ
Temat założony przez niniejszego użytkownika
» 2015-08-18 23:32:03
Do czego ci ta wartość..?
Do porównania?
Więc co? Po prostu nic nie robić? Nie sprawdzać która szybsza? Po prostu olać to? A jeżeli sprawdzać to co i jak to robić efektywnie? Dać do pętli i mierzyć czas wykonania funkcją clock()?
P-136513
1aam2am1
» 2015-08-18 23:51:35
Nie znam najlepszej metody liczenia czasu wykonania funkcji ale ja bym nieliczył czasu wykonania jednej funkcji ale np tysiąca lub więcej w pętli. Co dawało by mi zauważalne różnice.

Edit.

Zamiast
C/C++
for( counter = 0; counter < 10; ++counter )
{
    testdbl = counter * 9.3;
   
    timer[ counter ] = __rdtsc();
    sumx += ms_lsdc10( testdbl, 5 );
    timer[ counter ] = __rdtsc() - timer[ counter ];
   
    printf( "- Pass %d: %ld\n", counter + 1, timer[ counter ] );
}
Dałbym:
C/C++
for( counter = 0; counter < 10; ++counter )
{
    testdbl = counter * 9.3;
   
    timer[ counter ] = __rdtsc();
   
    for( int32_t i = 0; i < 10000; ++i )
    {
        sumx += ms_lsdc10( testdbl, 5 );
    }
   
    timer[ counter ] = __rdtsc() - timer[ counter ];
   
    printf( "- Pass %d: %ld\n", counter + 1, timer[ counter ] );
}
P-136514
pekfos
» 2015-08-19 17:11:02
Więc co? Po prostu nic nie robić? Nie sprawdzać która szybsza? Po prostu olać to?
Tak. Nie sprawdzaj wydajności pojedynczych klocków, bo to zależy od kontekstu. Odpal profiler na większej ilości swojego kodu, czyli kiedy będziesz mieć faktyczny, realny kontekst i będziesz mógł wprowadzić faktyczne optymalizacje. W testowym programie jedno może działać szybciej, w innym już wcale niekoniecznie. A gdy będziesz mieć właściwy program, to takie optymalizacje rzadko kiedy mają sens. Lepiej optymalizować złożoność, a nie oszczędzać kilka cykli tu i tam - różnic w takich groszowych sprawach nikt i tak nie odczuje.
P-136541
C-Objective
» 2015-10-15 16:48:54
Wygeneruj plik gmon.out i przeleć programikiem do sprawdzania to ci wyswietli
P-138609
1 « 2 »
Poprzednia strona Strona 2 z 2