誰能超越我的整數到 std::string 轉換程式碼的效能?
問題:
高效轉換將整數轉換為 std::string 是一個挑戰,引發了各種方法的創建。本文探討了不同的方法並邀請提交來比較其性能。
方法:
常見方法包括:
-
「C 方式」:使用stringstream。
-
sprintf:通常建議提高效能。
-
Boost 的 lexical_cast:有自己的實現,不依賴 stringstream。
-
Ben 的演算法:針對兩個桌面進行了最佳化和嵌入式系統。
-
ltoa(非標準):廣泛可用,但其使用可能受到限制。
規則:
提交內容應遵守特定要求指南:
- 將有符號和無符號32 位元整數轉換為小數。
- 以 std::string 形式產生輸出。
- 確保與執行緒和訊號的相容性.
- 假設一個 ASCII 字元集。
- 處理在二進位補碼機器上正確顯示 INT_MIN。
- 輸出應與使用字串流的規格 C 版本相同。
- 在 VC 2010 和 g 上編譯並執行。
結果:
獲勝者提交的內容顯示出顯著的效能改進:
- Eugene Smith 的程式碼:比g 上的sprintf 快8 倍(http://ideone.com/0uhhX)
- Timo 的程式碼:比g 上的sprintf 快8 倍
Timo 的程式碼:比Visual C 上的sprintf (http:// ideone.com/VpKO3)
以上是您能勝過這個整數到字串的轉換程式碼嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!