説明:
私は全体的なパフォーマンスを改善するためにアプリケーションを分析しています。私が特定したさまざまなボトルネックの中で、パフォーマンスを低下させている主要な領域の1つは、_wordcopy_fwd_dest_aligned
命令/機能に由来するようです。
以下は問題の簡単な説明です-
- 関数は、長さと文字ストリームを長さ値形式で含むバッファーストリームを取得します。
- len(マシンのアライメントなどをチェックするためのコード)を読みます。
- 文字配列を読み取り、文字列に割り当てます。
PusedoCodepusedo
コードは次のようになります
read_buf(max_len)
v.assign((char*)pdata,max_len)
さて、定量化レポートからCPUサイクルをチェックすると、で使用率が高いことがわかります_wordcopy_fwd_dest_aligned
。また、次のようなレポートから、パフォーマンスのためにCPUサイクルを改善するというアイデアは、代替アプローチを使用してこれを減らすことになると思います。
質問
- 上記のコードの簡単な代替手段はありますか?これは、
_wordcopy_fwd_dest_aligned
使用量を削減/排除して、パフォーマンスを向上させます(メモリを犠牲にしても)。 - 上記が機能しない場合、上記のコードの回避策として提案されている領域はありますか?ただし、最後のo/pは文字列自体である必要があります。
PS:
a。コードは分散環境で動作する必要があるため、単語の配置などを処理する必要があります。そのため、質問リストのオプション(2)については少し躊躇します。
b。stlportライブラリを使用しているので、これには微調整が必要ですか/これにより問題が発生する可能性がありますか?の単純なコードstd::string v.assign(...)
は表示されませんでした_wordcopy_fwd_dest_aligned
。