【问题标题】:Delphi Win32 and JAVA? [closed]德尔福Win32和JAVA? [关闭]
【发布时间】:2012-11-27 00:50:36
【问题描述】:

想知道您是否可以提供帮助。我们使用名为 Nethelpdesk 的产品。据说它是用 Delphi Win32 编写的。 (我是系统管理员,对代码工作知之甚少)基本上开发人员无法帮助我们解决问题,我们正在寻找其他人是否有任何线索。

在运行他们的应用程序 (nethelpdesk = nhd) 时,如果 Java 是打开的,他们的应用程序就会很慢。这适用于任何机器,包括我的 i7 \ SSD \ 16GB ram,以 5GB 使用率和 8% 处理器平均运行。

关闭 NHD,我可以打开 15 个 Java 应用程序以及 12 个其他软件,然后机器就飞起来了。

重新打开他们的应用程序,系统突然停止。 Windows 卡顿,流式传输时声音可能会中断,并且 NHD 应用程序的响应可能需要 30 秒或更长时间才能击中每个按钮。

关闭 JAVA 和 NHD 加速。

在打开 NHD 之前,所有机器都运行良好,打开了大量应用程序。

如果 JAVA 关闭 NHD 运行良好。

开发人员帮不上忙,我们只是希望被指向任何方向。

【问题讨论】:

  • Delphi 生成本地 Win32 应用程序,它可能对 Java 应用程序产生的唯一影响是过多的 RAM、磁盘 I/O 或 CPU 使用。由于我们看不到源或您可以访问的任何监控工具来调查可能是哪些工具,因此这里的任何人都无法帮助您。开发人员应该知道他们的应用程序在做什么,并且能够判断问题可能是什么,然后能够进行调查(或者至少指导您检查什么)。抱歉,但投票结束是题外话(可能应该是“过于本地化”)。
  • 你有这个应用源代码吗?我能说的最好的是它与 Delphi 本身无关。只有有权访问源代码的开发人员才能查看和搜索您遇到问题的原因。
  • 也许它使用 CPU 挤压自旋锁而不是基于计时器的 Sleep(...) ?

标签: java delphi winapi


【解决方案1】:

曾几何时,我是一名 Delphi 开发人员。当时我注意到,当我使用调试器单步执行代码时,运行 Outlook 会导致严重的性能问题。这种行为类似于您所描述的:在它们并发之前,任何一个进程都很好。最终我发现这与处理 OLE 消息的方式有关。两个进程都倾向于使消息队列停滞,因此它们在反馈循环中彼此减慢。

我怀疑这些方面的互动是您问题的根源。这本身并不能帮助您,但它可能会给您的开发人员一些洞察力。

【讨论】:

    【解决方案2】:

    使用 procmon 监视并检查应用程序正在做什么或正在访问什么。我猜是 GDI(图形子系统)……但它可以是其他任何东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多