Na #studbaza mieliśmy zrobić program który m.in. ma przemielić plik z danymi. Ja robiłem w #cpp, kolega w #csharp "bo nie trzeba pisać tyle kodu" u mnie wczytanie pliku i sparsowanie danych zajmuje około
ok ludzie, to ja, ten kolega od csharpa. nie dawało mi to spokoju strasznie, że między wydajnością c++ i csharpa może być tak wielka różnica. wszystko przez to, że uwierzyłem na słowo, że tick to tick, różni sie dla procków wiadomo, ale to jest przyjęcie rozkazu. moje wątpliwości byly jeszcze spowodowane tym, że odpalam visuala na wirtualce, bo nie moge zainstalować net frameworka u siebie, bo jakiś poważny błąd rejestru, i za
@BloodDeath94: > Funkcja clock ( ) zwraca przybliżoną wartość czasu procesora zużytego przez program. Wartość ta jest wyrażona w jednostkach, których CLOCKSPERSEC przypada na jedną sekundę (czyli clock()/CLOCKSPERSEC jest czasem wyrażonym w sekundach). CLOCKSPERSEC zgodnie ze standardem POSIX powinnobyć stałą równą 1 000 000 bez względu na rzeczywistą wartość cyklu
@BloodDeath94: chciałem zrobić rzetelne testy w millisekundach, więc powieliłem ten nasz mały pliczek z danymi (150 linii) do pliku 108 MB (3 645 000 linii danych, 7441 ms, (liczyłem k---a ze stoperem, więc Stopwatch nie kłamie)). mój program zdzierżył bez przeróbki, nawet średnie i te inne pierdoły policzył, twój nie chciał ruszyć, od razu sie wywalał. sprawdziłem plik 05 MB (15 000 linii), twój zdzierżył, 4.5 MB (150 000 linii)
u mnie wczytanie pliku i sparsowanie danych zajmuje około
a u kolegi w super C Sharpie
śmieszny żart, nawet csharpowie funkcje mają dokładność tysięcznej części ms, co dopiero o milionowej mówić
pogrzeb sobie w niecie i zastanów sie, dlaczego wszyscy piszą, że czas w ms oblicza się jako
(stop-start)/(CLOCKS_PER_SEC/1000)a nie jak napisałeś
Czas 1: 75
Czas 2: 99134
C++ elapsed