【发布时间】: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,但您没有说明如何调用它,例如使用参数类型或字符串转换)。