Board logo

標題: [發問] 有關作業系統與程式執行效率的差距 [打印本頁]

作者: 小俠客    時間: 2017-3-21 09:38     標題: 有關作業系統與程式執行效率的差距

有關作業系統與程式執行效率的差距

大家好!小弟關於VBA執行效率的問題想向大家請教。我發現相同程式在不同的環境的執行速度有很大的差異,所以想知道是不是設定的問題。

因為程式已經很複雜,暫時無法放上來,但基本流程是:
1.        運用ADODB連結一Access資料庫(一人用),
2.        再用SQL抽取資料庫中4個TABLE的資料,
3.        放在EXCEL兩張SHEETS中,
4.        然後LOOP大約16-18次(分開抽取不同時段資料),
5.        再到網站抽取最新資料
6.        整理格式
7.        完成
整個VBA是在公司機的WIN 7 企業版 + OFFICE 2010 中文版寫的,並儲存為.XLSM格式。

A) 在公司機(Intel Core i5-4570S @ 2.90GHz、8GB RAM、WIN 7 企業版 + OFFICE 2010 中文版)中,扣除抽取網站資料遲緩的因素,每次執行大約要1.5秒至2秒

B) 在家中的9年前的舊筆電(FUJITSU LIFEBOOK LH530,INTEL I5 Core-Duo M460 2.5GHz、6GB RAM、WIN 7 直接保留舊資料下升級WIN 10+OFFICE 2010 中文版) ,扣除抽取網站資料遲緩的因素,每次執行大約要2秒至2.5秒

C) 最近在大賣場買了一部新筆電ASUS K401LB (Intel i5 5200U 2.2GHz、12GB RAM、WIN 10+OFFICE 2013中文版),在效能模式下,每次跑程式大約要6-10秒。

三個測試均是使用相同的檔案(EXCEL+ACCESS檔)

我沒想到最新的機種竟然會最慢,我明白這機的CPU不是很強,但應該比我8年前的舊筆電強吧!而且我這程式並沒有包含很多的運算,基本上只是搬運工,把ACCESS的資料放到EXCEL中,用不到很多CPU的資源,而且它的RAM是最多,實在不明白原因。

請問是不是EXCEL 2013的問題?我在網上找到有朋友提議可以「停用硬體圖形加速」,但效果不大。而且在EXCEL 2013中用鍵盤方向鍵移動SHEET中的儲存格是有一點LAG的感覺。請問是不是OFFICE 2013的問題?有辦法解決嗎?轉用OFFICE 2016會好一點嗎?謝謝大家。
作者: joey0415    時間: 2017-3-21 22:14

如果能用sql做出你要的加減乘除與組合,排列等,請用sql來做
若叫出來後,能放進陣列計算的,請放進陣列計算
最後才貼在表格上,在表格上計算

很多都是貼上基本語法的sql在表格上計算,量少沒差,量大就慢了些

以上是本人的小小經驗
作者: 小俠客    時間: 2017-3-22 15:22

如果能用sql做出你要的加減乘除與組合,排列等,請用sql來做
若叫出來後,能放進陣列計算的,請放進陣列計 ...
joey0415 發表於 2017-3-21 22:14


謝謝你的意見。
但我的情況是:在不同的環境下跑相同的程式,EXCEL 2013的運行速度明顯比EXCEL 2010慢了許多,不知道是否EXCEL 2013有特別的設定才能正常運行?還是EXCEL 2010寫的程式不能完全在EXCEL 2013的環境中運行?

我曾試用陣列,但在陣列中計算比較麻煩,結果就放棄了.....




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