微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

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

解决方法

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

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

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

原文地址:https://www.jb51.cc/delphi/103719.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐