[Armadillo:03689] Armadillo-500でsprintfの処理時間が10msかかることがある

matsumoto email@hidden
2008年 11月 23日 (日) 15:37:00 JST


松本と申します。

質問です。

Armadillo-500で下記のようなプログラムを走らせると、sprintfの処理時間が
10ms(0.010s)かかることがあります。
回数は、30回前後で、走らすごとに回数は多少異なります。

また、sprintfをコメントアウトして、プログラムを走らすと、0〜4回ぐらい処
理時間が10msかかることがあります。
処理時間をはかっている間に、なにもしていないのにです。

ちなみにARM-VFP用の開発環境を使用しています。

どちらさまか、原因が分かる方がいましたらよろしくおねがいします。

#include <stdio.h>
#include <stdlib.h>

#include <time.h>
#include <sys/time.h>
#include <sys/resource.h>

double getrusage_sec()
{
struct rusage t;
struct timeval tv;
getrusage(RUSAGE_SELF, &t);
tv = t.ru_utime;
return tv.tv_sec + (double)tv.tv_usec*1e-6;
}

double t1;
double t2;
double t3;

int x;
int y;
int z;

int i;
int j;

char buf[3];

int scanNum;
int stepNum;

int main(int argc, char **argv) {

x = 0;
y = 0;
z = 0;

scanNum = 100;
stepNum = 440;

for (i = 0; i < scanNum; i++) {
for (j = 0; j < stepNum; j++) {

t1 = getrusage_sec();

sprintf(buf, "%d%d%d", x, y, z);

t2 = getrusage_sec();
t3 = t2 - t1;
if (t3 > 0) {
printf("time = %5.3f\n", t3);
}

}
}

return 0;
}

-- 
***************************************
松本 光広
筑波大学大学院
システム情報工学研究科 博士後期課程1年 
知能ロボット研究室所属
email@hidden
***************************************





armadillo メーリングリストの案内