2012-05-08 46 views
0

說明:節省CPU週期(提高性能)字符數組的複製過程中串

我分析我的應用程序,以提高整體性能,以及不同的瓶頸中我已經確定,主要的一個排除性能的區域似乎來自_wordcopy_fwd_dest_aligned指令/功能。

以下爲問題的簡短描述 -

  • 函數得到的緩衝流 - 包含長度和長度 - 值格式的字符流。
  • 閱讀len(一些代碼檢查機器對齊等)。
  • 讀取字符數組並將其分配給字符串。

PusedoCode
的pusedo代碼看起來如下

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

現在,當CPU週期從Quantify的報告檢查,我看到_wordcopy_fwd_dest_aligned沉重的利用率。同樣來自諸如 - Improve CPU Cycles for performance的報告,我看到這個想法是通過使用任何替代方法來減少這種情況。

問題

  1. 是否有上述代碼中,這減少/消除了_wordcopy_fwd_dest_aligned用法從而贏得我的性能(即使在存儲器的成本)一個簡單的替代。
  2. 如果上述不起作用,上述代碼的任何建議工作區域?但最後的o/p需要在字符串本身。

PS:
一個。由於代碼需要在分佈式環境中工作,因此需要處理字對齊等問題,因此對「問題」列表中的選項(2)猶豫不決。 b。我們正在使用stlport庫,所以這需要任何調整/這可能導致問題? std::string v.assign(...)的簡單代碼沒有顯示_wordcopy_fwd_dest_aligned

+0

什麼架構?什麼樣的CPU型號?它是否需要在多個CPU模型上運行? –

回答

4

這是優化的複印程序。爲了獲得更多性能,您可能必須消除副本,否則會犧牲與某些處理器型號的兼容性。

+1

+1。爲了複製(或運行任何其他代碼),不要執行它。 –