delphi – 使用const参数和序数类型有什么优点吗?

我知道标记字符串参数为const可以产生巨大的性能差异,但是序数类型呢?我通过使它们const获得任何东西?

我在处理字符串时总是使用const参数,但从来没有使用Integer,Pointer,类实例等。

当使用const时,我经常需要创建额外的临时变量,替换现在写保护的参数,所以我想知道:我从标记序数参数const获得任何东西吗?

解决方法

你需要了解原因,避免“货币编程”。将字符串标记为const会导致性能差异,因为您不再需要对字符串使用引用计数的互锁递增和递减,这种操作实际上变得越来越昂贵,而不是越来越少,随着时间的推移,因为更多的核心意味着更多的工作以保持原子操作同步。这是安全的,因为编译器强制执行“这个变量不会改变”约束。

对于序数,通常是4字节或更少,没有性能增益。使用const作为优化仅在您使用大于4个字节的值类型(例如数组或记录)或引用计数类型(如字符串和接口)时有效。

但是,还有另一个重要的优点:代码可读性。如果你传递的东西为const,它对编译器没有什么区别,它仍然可以对你有所帮助,因为你可以阅读的代码,看到它的意图是让这个不被修改。这可能是重要的,如果你没有看到的代码之前(别人写它),或者如果你回来了很长时间,并不记得你在想什么,当你最初写它。

相关文章

 从网上看到《Delphi API HOOK完全说明》这篇文章,基本上都...
  从网上看到《Delphi API HOOK完全说明》这篇文章,基本上...
ffmpeg 是一套强大的开源的多媒体库 一般都是用 c/c+&#x...
32位CPU所含有的寄存器有:4个数据寄存器(EAX、EBX、ECX和ED...
1 mov dst, src dst是目的操作数,src是源操作数,指令实现的...