Delphi 奇怪的性能问题

Delphi 奇怪的性能问题,delphi,winapi,Delphi,Winapi,我正在(Delphi 2010)中重新编译一个旧的Delphi程序(来自Delphi 2007)。代码是绝对不变的,并且编译得很好。该程序的关键部分是使用CopyFileExW复制一些文件。一切正常,但是,有一些奇怪的性能问题,我无法理解它们是从哪里来的 从客户端计算机复制到Windows服务器时,会发生以下情况: 用D2007编译的版本 从XP到Windows Server 2003,复制性能正常 从XP到Windows Server 2008复制性能正常 从Windows 7到Window

我正在(Delphi 2010)中重新编译一个旧的Delphi程序(来自Delphi 2007)。代码是绝对不变的,并且编译得很好。该程序的关键部分是使用CopyFileExW复制一些文件。一切正常,但是,有一些奇怪的性能问题,我无法理解它们是从哪里来的

从客户端计算机复制到Windows服务器时,会发生以下情况:

  • 用D2007编译的版本
  • 从XP到Windows Server 2003,复制性能正常
  • 从XP到Windows Server 2008复制性能正常
  • 从Windows 7到Windows Server 2003,复制性能正常
  • 从Windows 7到Windows server 2008复制性能正常

  • 用Delphi2010编译的版本

  • 从XP到Windows Server 2003,复制性能正常
  • 从XP到Windows Server 2008复制性能正常
  • 从Windows 7到Windows Server 2003,复制性能正常
  • 从Windows 7到Windows server 2008复制性能极低

我可以理解2008服务器和W7之间可能存在问题,比如远程差分压缩之类的(顺便说一句,禁用了哪个),但是为什么用2007编译的版本没有同样的问题呢?有什么猜测吗?

因为您刚刚更新了一个在Delphi 2010上运行的程序,所以您可能应该转到Delphi XE并开始在那里解决问题。它内置了一个剖析器,您可以使用最新的东西。

一些可能原因的想法:

  • WS2008端的防病毒软件认为传输可疑并进行验证(如评论中所述)

  • 可能是一些隐式字符串转换妨碍了


您是否尝试过对其进行分析?任何合适的探查器都应该能够针对有问题的设置将问题精确定位到特定的程序中。如果不进行分析,就无法确定它是否真的与CopyFileExW相关。考虑到D2010编译版本可疑并监视所有磁盘写入,这可能是反病毒软件?尝试暂时禁用您的防病毒软件。您能否提供一些有关如何复制文件的示例代码?(是的,您指定了
CopyFileExW
,但您没有指明如何调用它,例如使用参数或字符串转换的类型)。请注意,XE中的内置探查器是一个“轻”版本,而AFAIK并没有剖析到特定的源代码行号。就是这样。赛门铁克AV。把目的地排除在外,效果很好。