C++程式設計中的一些效率問題

來源:互聯網
上載者:User

1、STL模板效率問題

 

一般使用STL模板會使得程式啟動並執行效率減慢,因為STL模板的一些標準的資料結構都需要分配比較多的記憶體空間以及環境切換的開銷,有時像vector等容器在程式運行過程中,如果發生容量不足時,它需要重複分配更大的記憶體,並把原來的內容拷貝過去,這一點是非常耗時的。

另外一點,如果使用STL模板盡量使得某個資料結構全域共用,否則的話,每次定義一個局部的資料結構,都要重新分配記憶體,非常耗時。

本質上是這樣的概念,盡量在程式運行之前先申請好記憶體空間,不要在程式運行過程中不斷申請,這樣系統需要不斷地進行環境切換的開銷。另外對於像vector這樣動態分配儲存空間的容器,如果問題允許的額話,就直接預定義它的空間大小。

 

2、輸入輸出效率問題

 

當存在大量輸入輸出時,不要使用流輸入輸出,否則程式執行的速度很受牽制。
可以使用使用C語言中的輸入輸出操作。(我在一個有較大輸入和輸出的程式中對比了一下兩種輸入輸出方式,發現使用C語言的輸出輸入函數使得程式執行速度提高了將近800MS)

 

有空整理一下:

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.