問題タブ [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.
c++ - 文字列連結関数の実行時間が予想外に遅い
次の文字列連結関数 ( join
) を作成して、割り当ての数を減らし、最終的な文字列の構築に費やす時間を削減しました。また、使いやすい追加機能 (可能であればワンライナー) も書きたいと思いました。
かなり大量の文字列に対して、クラスのおよびjoin
を使用して、典型的な組み込みの C++ 連結機能に対してメソッドをテストしました。プレーンまたはアプローチと比較して、実行時間の点で私の方法がどのように、そしてなぜ悪い結果をもたらすのですか?operator+=
operator+
std::string
operator+=
operator+
次のクラスを使用して時間を測定しています。
私は次の方法で比較しています:
私の結果は次のとおりです。
- 実行時間: 11552 ns (
join
アプローチ)。 - 実行時間: 3701 ns (
operator+=()
アプローチ)。 - 実行時間: 5898 ns (
operator+()
アプローチ)。
私はコンパイルしています:g++ efficient_string_concatenation.cpp -std=c++11 -O3