找回密码
 加入
搜索
查看: 2184|回复: 1

[效率算法] About AutoIt Effective[已解决]

[复制链接]
发表于 2012-11-6 23:57:38 | 显示全部楼层 |阅读模式
本帖最后由 edisonx 于 2012-11-9 18:34 编辑

Hi , 各位先進好
小弟對於 AU 之記憶體 (memory) 管理與計算效能上有些存疑,
故拿最經典的測試例子做為測試範例。

大型矩陣相乘。

小弟分別以 C 與 AutoIt 撰之,發現效能上差異實在是有點吃驚,
在前半段產生亂數塞入矩陣 (matrix) 效能便差了數 10 倍,
而當計算 1000 x 1000 矩陣 (matrix) 相乘時,
C 跑了 2 秒左右, AutoIt 跑了 半小時還沒跑完  ( 所以就關了 )。


有興趣可下載以下附件 ( 含 C 與 AU3 之 source code、執行檔 )

稍說明,裡面 NRMat.au3 是 Matrix UDFs,
但由於自己在測 Matrix Multiple 時發現效能和 C 實在差太多,
所以停住不打算繼續開發。

MatMulAU3.exe --> 以 AU3 寫的 1000 * 1000 矩陣相乘,有兩個測時點,第一個測時點為配置記憶體、塞亂數所花時間;第二個測時點為計算 塞亂數 + Matrix Multiple 時間,以 MsgBox 方式顯示。
MatMulC.exe ---> 以 C 寫之 1000 x 1000 矩陣相乘,編譯參數沒加任何優化,最後結果輸出於 MatMulC.txt,發現普遍都是 2 秒左右完成。

想請教,是否為我於程式碼寫得不好才導致這情況?
又或許只是更確定一件事: AU 開發方便,但卻著實犧牲了許多效能?
謝謝各位先進不吝賜教,感激不盡。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2012-11-9 01:30:08 | 显示全部楼层
纯个人理解,其实原因是多方面的,作为脚本语言与编译语言在效率上肯定有差距,其次是算法上,另外如果使用内嵌asm的话或许会快些,具体算法可能需要自己想办法了

评分

参与人数 1金钱 +20 收起 理由
edisonx + 20 謝謝不吝指導。

查看全部评分

您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-29 19:18 , Processed in 0.119357 second(s), 28 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表