麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Delphi > 正文

Delphi語言優化

2019-11-18 18:46:35
字體:
來源:轉載
供稿:網友

Delphi語言優化

1)記錄或數組類型的返回值
C++程序員不會這樣做,因為返回值會被壓入堆棧,導致時間效率和空間效率都降低。Delphi無此問題,返回值相當于Out參數,由調用者傳遞內存單元指針。所以可以使用記錄或數組返回值,以增將可讀性和書寫表達式的方便性。

2)公共表達式
Delphi只在一個語句行內提取公共表達式。如果公共表達式包含函數調用或屬性訪問,則不被提取,即要重復計算,因為提取可能導致改變語義。

3)const參數
當函數參量不被改變時,如果參量長度超過4字節或是接口、字符串、動態數組類型,使用const參數,可以使編譯器以地址方式傳遞,并且不對引用技術做修改。

4)緊縮
Delphi分配存儲單元時會分配盡量小的空間。如果足夠小且可放入寄存器內,則一般會使用寄存器直接操作。例如長度為4字節的記錄或數祖賦值時,編譯器會自動按DWord用32位寄存器處理。

5)算符
整除2或4會優化成右移位,乘2或4會優化成左移位,所以不需特意用移位運算,可以寫出更可讀的代碼。但乘除8和其他2的倍數不會有此優化。
i := i + 1; 和 Inc(i); 一般產生的代碼相同。

6)浮點
Delphi不對浮點計算做優化,即使加零運算也不會被優化掉,而且會添加很多FWAIT指令。所以寫關鍵的浮點運算時要自己優化好表達式,自己提取公共表達式。盡量少用中間變量,因為浮點變量不會被優化掉,即使后面沒有使用也會寫回內存。必要時用匯編,或者考慮用C。雖然如此,一般情況下,等價的Delphi和C的浮點程序性能差別不大。

7)with語句
with可以生成隱式中間變量,避免重復計算

8)集合
i in [0..31] 比 (i >= 0) and (i <= 31) 快

9)位寬
在不使用緊縮時,用integer和cardinal,因為字節對齊時SmallInt, ShortInt, Byte等也會占用4或8字節,計算時仍為32位,而且要先擴展到32位。


上一篇:delphi里播放flash

下一篇:用Delphi處理公歷到農歷的轉換

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: av电影在线观看网站 | 黄色7777 | 精品视频在线免费看 | 免费放黄网站在线播放 | 成人午夜亚洲 | 97中文| 色视频欧美 | 欧美aaa| www.99热精品 | 国产九九九九 | 91久久线看在观草草青青 | 久久精品国产99久久久古代 | 国产成人综合在线视频 | 黄色二区三区 | 毛片免 | 在线成人一区二区 | 91羞羞 | 亚洲福利在线免费观看 | 成人黄色短视频在线观看 | 久久91精品视频 | 日本在线不卡一区二区三区 | 中文字幕在线观看视频www | 黄网免费看 | 嗯~啊~弄嗯~啊h高潮视频 | 美女视频黄视大全视频免费网址 | 久久久久九九九女人毛片 | 美国av免费看| 国产精品久久国产精麻豆96堂 | 天天干导航 | 中国国语毛片免费观看视频 | 成年免费视频黄网站在线观看 | 毛片免费视频观看 | 国产青草网 | 久久久涩| 国产成人精品一区二区三区电影 | 在线成人毛片 | 欧美自拍三区 | 精品久久久久久综合日本 | 国产精品久久久久久久久久尿 | 日本在线播放一区 | 午夜久|