l4ever 发表于 2014-3-27 14:06:26

_Array2D_Add执行效率太低怎么办

本帖最后由 l4ever 于 2014-3-27 14:07 编辑

写了执行mysql的函数,测试了一下,2500条数据需要8秒才能跑完
去掉_Array2D_Add,把结果写到文本里面会快很多.最多两秒搞定.......
有什么更好的方法呢?

Func _MysqlQuery($sql,$type ="0")
Local $hTimer = TimerInit()
_Writelog("信息", "Mysql查询开始")
If Not _EzMySql_Query($sql) Then
                _Writelog("错误", "#" & @error & " 详情:" & _EzMySql_ErrMsg())
        Return
EndIf

$rows = _EzMySql_Rows()
$Cols = _EzMySql_Columns()
$ColName = _EzMySql_FetchNames()

if $type = 0 Then
        return $rows
Else
        Local $dataArr[$Cols]
        For $i= 1 To $rows
                $data = _EzMySql_FetchData()
                _Array2D_Add($dataArr, $data)               
        Next
        msgbox(32,"", "Mysql查询完毕,耗时:" & Round(TimerDiff($hTimer)/1000,2)& "秒")
        _Array2D_Delete($dataArr,0)
        return $dataArr
EndIf
EndFunc

skyfree 发表于 2014-3-28 22:19:03

既然已经知道二维数组的第一维和第二维的大小了,为什么还要使用这类动态创建数组的方法?直接先创建好数组,再写数据试一试。

提醒一句,通用函数普遍效率不高,这很正常。

l4ever 发表于 2014-4-1 00:08:03

回复 2# skyfree


我测试    array2d_push更慢
追加还快点
页: [1]
查看完整版本: _Array2D_Add执行效率太低怎么办