fluff skrev:
Men, kan man 'mäta' nånting så det blir 'jämt' mellan olika OS? :O
Ja, exekveringstiden. Som jag föreslog tidigare, gör mätningen under en längre tid så du får ett stabilt medelvärde.
Men jag förstår inte vad du är ute efter. Vill du se hur två operativsystem utför samma kod, ska du köra på samma maskin för att kunna göra en rättvis mätning. Dessutom borde du inte använda C Runtimen för att allokera, eftersom då får väldigt stor påverkan fast den inte alls är en del av operativsystemet. Att se hur snabbt man kan allokera heapminne från OS:et är väl iofs kanske intressant, men siktar man på hög prestanda vinner man oberoende av OS på att eftersträva att undvika heap-allokeringar i största möjliga mån.
fluff skrev:
Sen tycker jag resultatet med clock() på linux-datorn är helmysko, jag menar. jag VET att det tog flera minuter, returnerar inte clock() samma info på olika OS? :q
Jag menar, 1 'clock()' enhet är väl 1 'clock()' enhet på ett annat os?
Läs "How Many Ways Can You Tell Time? " mot slutet av dokumentet här: http://www.embedded.com/2000/0010/0010feat1.htm
niko skrev:
Ja, visst vet jag det. Men om man nu exakt ska "tima" en tät kodsnutt utan att behöva
ta hänsyn till att operativet ligger och switchar mellan trådar så kan det väl
i vissa fall vara en bra idé? Fast allt detta beror ju på hur koden
ser ut och vad syftet är. Vill vi jämföra två olika algoritmer på samma maskin?
Eller vill vi jämföra hur "samma" kod uppför sig på två olika OS?
Vad är det mest "ödesdigra" som kan inträffa? Att musen "fastnar" och att man
måste trycka på resetknappen?
Poängen att göra mätningen under en längre tid är att påverkan av kringliggande saker minskar så de blir obetydliga i sammanhanget. Det är väl ganska uppenbart att man inte samtidigt håller på att defragmentera hårddisken och kör håller på med en brute-force knäckning samtidigt, utan datorns enda tunga jobb ska vara testet man vill utföra. Jag ser ingen vinst i att försöka med det du föreslår, det skulle bara kunna orsaka problem. Vad händer exempelvis om man får ett page fault och måste läsa från pagefilen när du gjort CLI?
Ska man göra bättre mätningar än så är det bästa sättet att använda en bra profiler, exempelvis: http://www.compuware.com/products/devpartner/profiler/