おおおおおおおマジっっすかああーー
#include <stdio.h> static inline long rdtsc( ) { long h; long l; asm volatile ("rdtsc" :"=a"(l), "=d"(h)); return l; } float add( float a, float b, float c , float d ) { return (a+b*c)/d; } int addi( int a, int b, int c, int d ) { return (a+b*c)/d; } int main() { long a, b = rdtsc(); int i; float f; int n; for ( i=0; i<10000; i++ ) { f = add( 3, 4, 5, 6 ); } a = rdtsc(); printf("%ld\n",a-b); b = rdtsc(); for ( i=0; i<10000; i++ ) { n = addi( 3, 4, 5, 6 ); } a = rdtsc(); printf("%ld\n",a-b); }
ふろーとのほーがはやい!!
一応、加算と乗算はintのほうが若干速いようだけど、除算があるとfloatのほうがだいぶ速い。
と、いうような話を聞いたのだった。