問題タブ [coding-efficiency]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
105 参照

c++ - 文字列連結関数の実行時間が予想外に遅い

次の文字列連結関数 ( join) を作成して、割り当ての数を減らし、最終的な文字列の構築に費やす時間を削減しました。また、使いやすい追加機能 (可能であればワンライナー) も書きたいと思いました。

かなり大量の文字列に対して、クラスのおよびjoinを使用して、典型的な組み込みの C++ 連結機能に対してメソッドをテストしました。プレーンまたはアプローチと比較して、実行時間の点で私の方法がどのように、そしてなぜ悪い結果をもたらすのですか?operator+=operator+std::stringoperator+=operator+

次のクラスを使用して時間を測定しています。

私は次の方法で比較しています:

私の結果は次のとおりです。

  • 実行時間: 11552 ns (joinアプローチ)。
  • 実行時間: 3701 ns (operator+=()アプローチ)。
  • 実行時間: 5898 ns (operator+()アプローチ)。

私はコンパイルしています:g++ efficient_string_concatenation.cpp -std=c++11 -O3