Wpis z mikrobloga

@BloodDeath94: nie wiem jak to mierzycie, ale tutaj masz przykładowy assembler z C który otwiera plik, wczytuje 64 bajtów i zamyka plik:

mov DWORD PTR [esp+4], OFFSET FLAT:LC0

mov DWORD PTR [esp], OFFSET FLAT:LC1

call fopen

mov ebx, eax

mov DWORD PTR [esp+12], eax

lea eax, [esp+16]

mov DWORD PTR [esp+8], 1

mov DWORD PTR [esp+4], 64

mov DWORD PTR [esp], eax

call fread

mov DWORD PTR [esp], ebx

call _fclose
@BloodDeath94: generalnie nie powinno się pobierać wartości clock i interpretować jej jako cykle zegarowe.

The value returned is expressed in clock ticks, which are units of time of a constant but system-specific length (with a relation of CLOCKSPERSEC clock ticks per second).

Głównie dlatego, że aktualne procesory mają chociażby zmienne taktowanie oraz procesy skaczą między różnymi rdzeniami.
Jedyny słuszny sposób porównywania to czas i też w taki sposób, żeby
  • 0
@YuiMizuno na komputerze kolegi mój program wykonywał się jeszcze szybciej niż u mnie.
Jakby różnice były w dziesiątkach albo setkach tickow to bym był skłonny sądzić że możliwe że przy lepszym sposobie porównania różnice byłyby mniejsze.

Ale najmniejsza wartość jaka uzyskaliśmy dla csharpa to 14k

A największą dla c++ to było kilkadziesiąt
@BloodDeath94: tak, tylko nie wypada porównywać dwóch rzeczy mając zupełnie 2 różne metody pomiarowe. Kto wie czy obie metody mają dokładnie taką samą liczbę 'ticków' na sekundę?
W moim prostym przykładzie na otwarcie pliku, odczytanie i zamknięcie go uzyskuję wynik 0 ticków w clock().
A jak dodam Sleep(1000) to już uzyskuję 1016 ( ͡° ͜ʖ ͡°)