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上では大量の処理が行われるのでこのような配慮も必要となる。
これは解説書にも書かれていない。