Board logo

標題: EXcel VBA 執行環境 與 速度 [打印本頁]

作者: alumi    時間: 2012-12-8 11:09     標題: EXcel VBA 執行環境 與 速度



目前還是使用 XP  & Excel 2010 的環境.

請問,若作業系統使用 Win 7 64bits & Excel 2010 64 bits 版本,
在 Excel VBA 的舊有程式碼,是否會因 提升至 64 bits 的環境下,而讓 VBA 程式的執行速度,
能有 20% 以上的提升?


作者: c_c_lai    時間: 2012-12-9 10:01

回復 1# alumi
真有那麼神奇?
我的電腦環境與你所描素的雷同,
我的是旗艦版本*(64 bit), 使用到
目前為止 如果有快到超過 10%, 那
就阿彌陀佛了!
作者: kimbal    時間: 2012-12-9 21:26

理論上是會快的, 但實際上有人試過分別不大.
比較有效的方法:
硬件:多加些內存,
代碼:看看有沒有改善的空間
作者: mark15jill    時間: 2012-12-10 11:42

本帖最後由 mark15jill 於 2012-12-10 11:43 編輯

回復 1# alumi


1.若軟體版本、原程式 與 作業系統環境(扣除 32bit 與 64bit 的影響 )相同 ,理論上,執行速度會快一倍。<請看參考資料一>
2.若原程式之運行方式複雜性高且不良,那不管是 32 bit 或 64 bit 似乎無法去做有效的效率增幅。換句話說,若原程式設計不良或已陷入無盡迴圈,那怎提升還是一樣沒用。


<參考資料一、[擷取 basuya noacaciana 大大 之 Windows 中 32bit(x86) 和 64bit(x64) 的解釋 一文]
[參考網址: http://basuya.blogspot.tw/2012/0 ... itx86-64bitx64.html

Windows 中 32bit(x86) 和 64bit(x64) 的解釋

3、運算速度不同。
64 bit CPU GPRs(General-Purpose Registers,通用暫存器)的資料寬度為64 bit,64 bit 指令集可以運行 64 bit 資料指令,也就是說處理器一次可提取 64 bit 資料(只要兩個指令,一次提取8個 byte 的 資料),比32bit(需要四個指令,一次提取4個byte的資料)提高了一倍,理論上性能會相應提升1倍。

4、尋址能力不同。64bit處理器的優勢還體現在系統對記憶體的控制上。由於位址使用的是特殊的整數,因此一個ALU(算術邏輯運算器)和寄存器可以處理更大的整數,也就是更大的位址。比如,Windows Vista x64 Edition支持多達128 GB的記憶體和多達16 TB的虛擬記憶體,而32bitCPU和操作系統最大隻可支持 4G記憶體。>
作者: stillfish00    時間: 2012-12-10 15:43

4#
說的比較像是32-bit和64-bit CPU處理速度的比較 , 這個理論上兩倍我還比較能接受.
但是同樣的VBA code 放在32位元作業系統和64位元作業系統 , 完全是兩個概念
作者: mark15jill    時間: 2012-12-10 15:56

回復 5# stillfish00

是以 Vba Code 打個比方而已
作者: alumi    時間: 2012-12-13 00:21

本帖最後由 alumi 於 2012-12-13 00:24 編輯




可能我的問題,沒有說明清楚.
程式碼沒有任何問題,己最佳化.
相同的 VBA Code ,
在 Win7 64bit & Excel 2010 64 bit 版 是否能夠比 Win7 32bit & Excel 2010 32 bit 版 的環境下,
程式執行速度是否會有 20% 以上的提升?
--------------------------------------------




作者: alumi    時間: 2012-12-13 19:25

感謝樓上高手的回答,
小弟做個小結:
1.VBA 是依附 在 Office 系列平台,才能執行
2.VBA 不能像專業的程式語言開發環境,除了細節的調校,更無法編譯成執行檔.
3.就算是使用VSTO ,也是一樣.
4.VBA 與 Office 元件,有歷史的包袱.
作者: mark15jill    時間: 2012-12-13 20:37

感謝樓上高手的回答,
小弟做個小結:
1.VBA 是依附 在 Office 系列平台,才能執行
2.VBA 不能像專業 ...
alumi 發表於 2012-12-13 19:25


基本上,VBA畢竟只是一個附屬的套件,並不是像 其他程式編譯軟體可直接編譯成執行檔案。
    這也知所以現今很多人都只是把EXCEL 當成是簡易的統計分析軟體 一樣意思。
作者: 藍天麗池    時間: 2012-12-14 15:46

換版本速度會變快嗎??




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)