[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[WitchTech 00186] Re: ちょっとしたベンチマーク
- Subject: [WitchTech 00186] Re: ちょっとしたベンチマーク
- From: Akira Kawamata <autumn@piedey.co.jp>
- Date: Wed, 2 Aug 2000 21:36:29 +0900
川俣です。
> 確かに、nビットシフトを、1ビットシフトn回でやるCPUと、バレルシフタで1
> 回に何ビットでもシフトできるのがありますね。
> すっかり忘れてました^^;
> そうすると、シフト数を変えた場合にベンチマークの数値が変わるかどうかも、
> きちんと調査した方がいいですね。今夜やってみましょう。
調べました。
0bitシフトと、7bitシフトを比較しましたが、所要時間に変化は無し。
シフトするビット数を変えても、ソフトの所要時間は同じと考えていいと思い
ます。とすると、186互換というのは、インストラクションセットの互換だけで、
実行速度に関しては、数世代後のCPUに近い最適化がなされているのかもしれま
せん。
#include <stdio.h>
#include <sys/bios.h>
#define COUNT (1000000L*3)
datetime_t from, to;
typedef struct {
char dummy;
int oddData;
} ODD_DATA;
void dump( char far * msg, datetime_t far * from, datetime_t far * to )
{
int n;
static char buf[256];
text_screen_init();
n = (to->minute*60+to->second)-(from->minute*60+from->second);
sprintf( buf, "%d sec", n );
text_put_string(0,0,msg);
text_put_string(0,1,buf);
key_wait();
}
void main(int argc, char *argv[])
{
long l;
unsigned char x;
unsigned char n;
rtc_get_datetime_struct( &from );
for( l=0L; l<COUNT; l++ ) {
}
rtc_get_datetime_struct( &to );
dump( "NULL LOOP", &from, &to );
n = 0;
rtc_get_datetime_struct( &from );
for( l=0L; l<COUNT; l++ ) {
x = 1<<n;
}
rtc_get_datetime_struct( &to );
dump( "n=0;", &from, &to );
n = 7;
rtc_get_datetime_struct( &from );
for( l=0L; l<COUNT; l++ ) {
x = 1<<n;
}
rtc_get_datetime_struct( &to );
dump( "n=7;", &from, &to );
}
(株)ピーデー 川俣 晶 (http://www.autumn.org/ mailto:autumn@piedey.co.jp)
ML Archives