我们正在使用 Delphi 7 开发控制台软件。
为简化起见,该软件使用嵌入式 TCP 服务器来响应来自 CGI 的外部请求。这些答案包含生成的带有 Techart 图表的 HTML 页面,以及使用 DbExpress 从数据库中提取的数据。
在 Windows 7 和 Windows 2008 R2 服务器上,我们注意到我们的软件运行时间显着增加 - 是 Windows XP 或 Windows Server 2003 上原始处理时间的 2 或 3 倍 - 在标准执行环境中:作为服务启动的软件系统用户帐户。
但是,当我们的软件以简单用户身份、从命令提示符或直接从 IDE(调试模式)启动时,问题就消失了。
我的第一个问题是:有人已经注意到这个问题了吗?
使用 ProcessExplorer,我们还注意到当软件作为服务启动时,没有创建 GDI 句柄,也没有创建用户句柄。但是当使用用户帐户启动软件时,会创建其中一些句柄。在 Windows XP 和 Windows Server 2003 中,无论是软件作为服务启动还是使用简单的用户帐户启动,这些句柄总是被创建。
这个观察可以与我们的问题联系起来吗?
如果您已经注意到这些行为,您是如何解决问题的?