0

説明:

私は全体的なパフォーマンスを改善するためにアプリケーションを分析しています。私が特定したさまざまなボトルネックの中で、パフォーマンスを低下させている主要な領域の1つは、_wordcopy_fwd_dest_aligned命令/機能に由来するようです。

以下は問題の簡単な説明です-

  • 関数は、長さと文字ストリームを長さ値形式で含むバッファーストリームを取得します。
  • len(マシンのアライメントなどをチェックするためのコード)を読みます。
  • 文字配列を読み取り、文字列に割り当てます。

PusedoCodepusedo
コードは次のようになります

read_buf(max_len)  
v.assign((char*)pdata,max_len)  

さて、定量化レポートからCPUサイクルをチェックすると、で使用率が高いことがわかります_wordcopy_fwd_dest_aligned。また、次のようなレポートから、パフォーマンスのためにCPUサイクルを改善するというアイデアは、代替アプローチを使用してこれを減らすことになると思います。

質問

  1. 上記のコードの簡単な代替手段はありますか?これは、_wordcopy_fwd_dest_aligned使用量を削減/排除して、パフォーマンスを向上させます(メモリを犠牲にしても)。
  2. 上記が機能しない場合、上記のコードの回避策として提案されている領域はありますか?ただし、最後のo/pは文字列自体である必要があります。

PS:
a。コードは分散環境で動作する必要があるため、単語の配置などを処理する必要があります。そのため、質問リストのオプション(2)については少し躊躇します。
b。stlportライブラリを使用しているので、これには微調整が必​​要ですか/これにより問題が発生する可能性がありますか?の単純なコードstd::string v.assign(...)は表示されませんでした_wordcopy_fwd_dest_aligned

4

1 に答える 1

4

それが最適化されたコピールーチンです。パフォーマンスを向上させるには、コピーを削除するか、一部のプロセッサモデルとの互換性を犠牲にする必要があります。

于 2012-05-08T04:32:02.763 に答える