Delphi函数调用效率测试

Delphi在给函数传参的时候,可以在参数前加上var、const、out做修饰,或者也可以使用指针参数。这几种方式的应用场景都很清晰了,但是他们的执行效率有什么差别呢?为此我做了一个测试,定义一个整数数组aInts: Array[0..10000] of Integer;并将其作为参数传给一个空函数。循环调用这个函数十万次。消耗时间如下:

参数类型 

var类型参数

out类型参数

const类型参数

指针类型参数

无修饰参数

消耗时间

0

0

0

0

590ms

而且前四个都是按地址传递的,即子函数与父函数都指向同一个变量。因此效率很快,而第五种情况则进行了拷贝,浪费了时间。对于频繁调用的函数来说,不建议使用无修饰参数类型,尤其是大数组或大结构体。

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页