學習C 語言的各種C 使用者喜歡繼續使用printf / scanf 系列函數,即使在使用C 語言進行編碼時也是如此,因為其易於存取的介面和本地化能力。然而,當將其與 C 的 ifstream 進行比較時,可能會出現效能問題。值得注意的是,據觀察,fscanf 的表現始終優於 ifstream。
要增強IOStreams 效能,請考慮以下技術:
增加緩衝區大小可減少緩衝區大小可以減少HDD命中和系統調用,從而提高效能。透過使用 pubsetbuf() 存取 Streambuf 實作來設定緩衝區。
由於字元轉換和複雜的系統調用,區域設定可能會影響效能。選擇預設的 C 語言環境,該語言環境針對機器之間的最小轉換和一致性進行了最佳化,以避免這種開銷。
在我們的測試中,此參數沒有表現出顯著的性能改進.
我們使用簡單的測試程式進行的基準測試揭示了不同平台和編譯器之間的不同結果。結果顯示 IOStreams 的效能取決於實作。
以下是各種基準測試的結果:
g 4.7.2-2ubuntu1, -O3, Ubuntu 11.10 x86_64
g 4.4.5,-O3,Ubuntu Linux 10.10 x86_64
g i686-apple-darwin10-g -4.2.1 (GCC) 4.2.1、mac mini、4GB 內存
clang 3.8.0-2ubuntu4、Kubuntu 16.04 Linux 4.8-rc3
C 速度快66%C 速度快66%C 速度快66%結果強調了IOStreams 效能優化中實作品質的重要性。以上是C `ifstream` 總是比 `fscanf` 慢嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!