redapple2008 发表于 2011-8-10 14:17:08

不是吧?这么好的软件。下来看看了

redapple2008 发表于 2011-8-10 14:17:53

给个下载地址。学习一下了

powerofos 发表于 2011-8-10 14:17:54

回复游戏

au3里用Fox循环是慢,但换成别的,就快多了,如下面的两个循环,do循环明显比For快太多了
...
happytc 发表于 2011-8-10 13:50 http://www.autoitx.com/images/common/back.gif


我一直觉得我有点“资源控”,“效率控”,开编写过程中,若在资源,效率方面有优势的方法,我都立马采用,纵使有些方法并不太完善...

看到你的例子,我才知道,for循环中,即使步进为1,不填上步进值会比填上步进运行的效率高...

qqmmcc 发表于 2011-8-10 14:53:29

了解底层,就知道FOR循环是比WHILE循环慢的

游戏 发表于 2011-8-10 15:09:40

本帖最后由 游戏 于 2011-8-10 15:27 编辑

回复 15# happytc


AAuto 在我的破电脑上,执行同样的代码,只要0-16毫秒,平均比au3快300倍


var a,i,j = 0,1,1;
do{
    do{
      a += 29;
      a -= 28;
      j += 1;
    }while(j<100001)
    i += 1
}while(i<101)

游戏 发表于 2011-8-10 15:36:40

回复 15# happytc

并不是au3的do循环更快,而是你的代码写错了.
你的$j在内部循环中没有初始化,所以执行完第一轮循环以后,后面的循环根本没有执行,一个是千万次,一个是十万零一百次,当然你测出来是do循环快了

txhr1spa 发表于 2011-8-10 17:33:27

http://www.aau.cn/
AU3阵容强大,快手更是后起之秀。各有优劣。各取所爱。

taliove 发表于 2011-8-10 18:14:52

听起来很不错哟,特别是中文 方面 ,因为是国人所做哈哈。AU3详细点的文档,都是英文的。看着头晕啊。

pusofalse 发表于 2011-8-10 18:20:51

回复 19# qqmmcc

为何FOR比WHILE慢? 两者转成汇编语言后 使用了哪些指令?

pusofalse 发表于 2011-8-10 18:32:03

回复 15# happytc


    FOR怎么会比DO/While慢,第3个DO循环,你根本没有为 $j 赋初值,后一次的循环 $j 仍旧是上次的值,你给出的 FOR和DO的测试例子,两者的循环次数根本不一样。

3mile 发表于 2011-8-10 18:38:48

回复 15# happytc
逻辑错误,鉴定完毕

dafei2599 发表于 2011-8-10 20:17:23

我大致试用过,就是开发工具有些不稳定,经常自动退出~别的还是不错的

happytc 发表于 2011-8-10 20:24:07

回复 21# 游戏


    嗯,忘了在第一层循环对$j=1了

不过,这点要承认,aauto这方面比au3快很多。

我的机子上的测试结果跟下面帖的差不多
http://hi.baidu.com/luac/blog/item/fa2feefcf94ef949d7887d5f.html

wa18239 发表于 2011-8-10 20:32:23

回复 15# happytc

怎么我测的FOR 比 DO 还快呢?帮忙看代码,看下那里错了,如下:



#include <Array.au3>
Dim $sArray=[["For...To...Step...Next "],["For...To...Next "],["For...In...Next "],["While...WEnd"],["Do...Until"]] ;数组初始化
Local $a = 0 ,$list =0 ,$i = 0, $j = 0
Local $begin = TimerInit()

For $i = 1 To 100 Step 1
      For $j = 1 To 10000 Step 1
               _add($a)
      Next
Next
_list()

$begin = TimerInit()

For $i = 1 To 100
      For $j = 1 To 10000
                        _add($a)
      Next
Next
_list()

Local $ii, $jj
$begin = TimerInit()
   For $iIn $ii
      For $j In $jj
               _add($a)
                           $j += 1
                   Next
                $i += 1
                $j = 0
        Next
_list()

$begin = TimerInit()
Local$i = 0, $j = 0
While $i <= 100
       While $j <= 10000
               _add($a)
               $j += 1
       WEnd
       $i += 1
       $j = 0
WEnd
_list()


Local $i = 0, $j = 0
$begin = TimerInit()
Do
      Do
               _add($a)
                $j += 1
      Until $j > 10000
      $i += 1
        $j = 0
Until $i > 100
_list()       

Func _list()
        $sArray[$list] = TimerDiff($begin)
        $list += 1
        EndFunc

Func _add($a)
        $a += 29
        $a -= 28
        EndFunc
                               
_ArrayDisplay($sArray)

wa18239 发表于 2011-8-10 20:36:09

回复 28# happytc
你给的链接打不开。。能否转一下
页: 1 [2] 3 4 5 6
查看完整版本: 看了下国人写的类au3 的AAuto,推荐下[已解决]