以前に strcpy
より memcpy
を使うとパフォーマンスの改善に繋がると
紹介したが、さらに strcat, strncat
(文字列の結合) よりは
memcpy
を使ったほうが圧倒的に速いことが、わかった。
strncat(m_XML, asc_xml, len)
を
memcpy(&m_XML[m_XML_byte], asc_xml, len); m_XML_byte += len;
のように変更すると劇的な速さの向上が見られた。
先の strncat
の演算では 5分以上かかっていた処理が
memcpy
に変えるだけで 1〜2秒で終了してしまうほどになったのである。
これは strcat
や strncat
の結合先の変数: m_XML
が数千バイトあると
繰り返し、数千バイトを最後まで loop して読み取っているのではないかと思われる。
そのため処理が非常に遅くなるのである。
ほんの少し意識するだけで劇的な効果をもたらすことができたのである。