【问题标题】:Strange performance problem奇怪的性能问题
【发布时间】:2010-09-20 08:49:54
【问题描述】:

我正在(Delphi 2010)中重新编译旧的 Delphi 程序(来自 Delphi 2007)。代码完全没有改变,并且编译得很好。该程序的关键部分是使用 CopyFileExW 复制一些文件。一切正常,Dandy,但是,有一些奇怪的性能问题,我不明白它们来自哪里。

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

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

  • 使用 Delphi 2010 编译的版本

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

我可以理解,2008服务器和W7之间可能存在问题,例如远程差分压缩等(BTW被禁用),但是为什么用2007编译的版本没有同样的问题?有什么猜测吗?

【问题讨论】:

  • 你试过分析它吗?任何体面的分析器都应该能够将问题定位到有问题的设置的特定过程。如果没有分析,就无法确定它是否与 CopyFileExW 相关。
  • 可能是杀毒软件考虑到 D2010 编译版本可疑并监控所有磁盘写入?尝试暂时禁用您的防病毒软件。
  • 您能否提供一些有关如何复制文件的示例代码? (是的,您指定了CopyFileExW,但您没有说明如何调用它,例如使用参数类型或字符串转换)。

标签: delphi winapi


【解决方案1】:

可能原因的一些想法:

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

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

【讨论】:

  • 就是这样。赛门铁克 AV。排除目的地就像一个魅力。
【解决方案2】:

由于您刚刚更新程序以在 Delphi 2010 上运行,您可能应该去 Delphi XE 并开始在那里解决问题。它带有一个内置的分析器,您可以使用最新的东西。

【讨论】:

  • 请注意,XE 中的内置分析器是“轻量级”版本,AFAIK 不会分析到特定的源代码行号。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-26
  • 2012-02-28
  • 2011-07-18
相关资源
最近更新 更多