fenhanxue 发表于 2015-5-23 16:07:44

哪个代码的执行效率更高?

本帖最后由 fenhanxue 于 2015-5-23 16:15 编辑

Global $dll_file = 'A.dll';

;方案一
        $dll = DllOpen($dll_file)
        For $i = 1 To 1000000
                ;此处为一堆其他代码
                ;此处为一堆其他代码
                ;此处为一堆其他代码
                ;此处为一堆其他代码
                ;此处为一堆其他代码
                DllCall ( $dll, "返回值类型", "函数名称" [, 类型1, 参数1[, 类型n, 参数n]] )
                ;此处为一堆其他代码
                ;此处为一堆其他代码
                ;此处为一堆其他代码
                ;此处为一堆其他代码
                ;此处为一堆其他代码
        Next
        DllClose($dll)
        Exit



;方案二
       
        For $i = 1 To 1000000
                ;此处为一堆其他代码
                ;此处为一堆其他代码
                ;此处为一堆其他代码
                ;此处为一堆其他代码
                ;此处为一堆其他代码
                $dll = DllOpen($dll_file)
                DllCall ( $dll, "返回值类型", "函数名称" [, 类型1, 参数1[, 类型n, 参数n]] )
                DllClose($dll)
                ;此处为一堆其他代码
                ;此处为一堆其他代码
                ;此处为一堆其他代码
                ;此处为一堆其他代码
                ;此处为一堆其他代码
        Next
        Exit方案一和方案二,哪一个效率高?
两个方案的不同处,在于DllOpen($dll_file)和 DllClose($dll) 这两行代码的位置调整,其他地方都一样

xlj310 发表于 2015-5-23 16:28:02

不考虑其他因素的话,肯定是第一种效率高吧。至少执行代码的行数都不一样。

fenhanxue 发表于 2015-5-24 00:30:32

回复 4# netegg


    啊,那。。。

gto250 发表于 2015-5-24 20:33:46

具体问题具体分析,就这样说不清楚。
就你说的这代码,循环的效率不怎么高
页: [1]
查看完整版本: 哪个代码的执行效率更高?