C400

25. C/400 での実行速度を向上させる memcpy

C/400はRPGに比べて実行速度も速いことは既に良く知られているが更にC/400での

実行速度を速くするためのテクニックをひとつ紹介する。

C/400の解説にはメモリーの動的な割り振りの繰り返しを避けるなどの説明があるが

通常良く使われる処理として

strcpy

ではなく,できるだけ

memcpy

を使用することである。

memset(buff, 0, sizeof(buff));
strcpy(buff, str);

と記述するよりは

memcpy(buff, str, 10);
buff[10] = 0x00;

と記述したほうが圧倒的に処理速度は向上する。

コピー命令が繰り返し行われる場合はこの効果は顕著である。

PC上でのVisualC++ ではよほどの大量処理でないと速度差は目立たないが

iSeries400上では大量の処理が行われるのでこのような配慮も必要となる。

これは解説書にも書かれていない。