【发布时间】:2011-09-16 08:28:15
【问题描述】:
对于不需要 Unicode 的项目,我主要使用 Delphi 2007。
最近我一直想知道 Delphi XE 因为
- 每个人都在称赞它;
- 内置 SVN 支持
不过,我想知道,编译器中是否有任何增强功能可以使 Delphi XE 生成比 Delphi 2007 更快的代码,我说的是:
- 更好地消除死代码(delphi 2007 还不错,但不能 100% 消除死代码)
- 循环展开(ala C 的 O3 优化级别)
- 自动内联短例程
- 减少多线程代码的开销。
编辑
在这个页面上:http://www.embarcadero.com/products/delphi/whats-new
列出:Improved compiler performance
那么具体改进了什么?
【问题讨论】:
-
在 XE 中重建的可执行文件应该更快的原因之一是它使用了 Unicode API,因为本机内部 API 是 Unicode(在基于 NT 的 Windows 和更高版本上)。 D2007 调用 Ansi API,每个带有字符串参数的调用都可能导致内部与 Unicode 之间的潜在转换。
-
Win32 字符串 API 调用很少会成为瓶颈。
-
我最近在 Delphi 中进行了一些数字运算,编写
gold版本作为 CUDA 代码的基准。恐怕没有太多的unicode:-)。你提出了一个很好的观点,虽然我总是认为 ansistring 更快,因为它使用更少的内存,但忘记了翻译问题。 -
@David 当然,性能差异取决于您实际调用它们的次数。有些应用程序可能会做很多事情,而有些则不会。我只是觉得值得一提。
-
@all,非常感谢您提供了一系列内容丰富的答案
标签: delphi optimization delphi-xe