もうひとつの効果的なパフォーマンス改善の方法は
ということである。
例えば
char tmpbuf[12800] memset(tmpbuf, 0, sizeof(tmpbuf));
という命令が繰り返し頻繁に行われる場合は この大きな変数 tmpbuf
に対する
memset
関数の実行による速度低下は影響が出てくる。
これを
tmpbuf[0] = 0x00;
とするだけで十分な場合が多い。
この後で
strcpy(tmpbuf, "ABC");
のような strcpy
があれば strcpy は最後の NULL
も併せてコピーするので
tmpbuf には正しい「ABC」という値が入る。
このように大量の memset を止めて 先頭バイトだけに 0x00 をセットするように
すれば大幅なパフォーマンス改善を行うことができるのである。