我们经常在
DELPHI
中用
const
来定义常量,用
const
来保护函数参数,其实在用
const
保护函数参数还有另一个更为重要的作用,提高应用程序的执行效率,尤其是在多线程多核下效果更明显。原因是:普通的函数参数如
Add(AValue: string)
,编译器在传入参数的时候先把变量复制一份,然后当成
AValue
传入
Add
,函数结束的时候进行销毁,你在参数上加了
const
,编译器在传入参数的时候不会进行复制,而是直接传地址,并在编译期间检查不能修改
AValue
值,我们知道
DELPHI
的内存管理在申请内存的时候是会加锁的,因此如果调用函数频繁,而且没有加
const
,这样会造成线程排队等候,性能会不如单线程,
const
只是对
string
、结构体等非基本类型有提高效率的作用,对
Integer
等基本类型(栈变量)不起作用。
DELPHI内存详解(5)-用const来提高应用程序在多核多线程下的性能
最新推荐文章于 2020-09-03 08:41:51 发布