gpt4 book ai didi

java - 当前的 Java/Tomcat 6 应用程序能否利用 64 位 Windows 平台在性能和内存使用方面的优势

转载 作者:行者123 更新时间:2023-12-01 17:37:59 25 4
gpt4 key购买 nike

目前我们已经开发了基于Windows 32位(双核和3G RAM)的Java 6应用程序。如果我们安装到64位Windows操作系统中,它是否会因为64位(相同操作系统差异位)中的资源优势而表现更好? 64位机器有四核处理器和4g以上的内存。 32 位与 64 位之间的 JVM 有什么不同吗?

预先感谢您的反馈。

额外信息

我正在做安全信息事件管理系统(SIEM) - 日志管理。我们有 4 个重要部分,

  • 收集器 - 从设备/系统收集日志,
  • 聚合器 - 将系统日志聚合为元数据以进行报告,
  • 实时监控 - 显示必须每秒运行的实时分析报告/图表和仪表板
  • GUI - Struts2 应用程序。运行 Web GUI、日志分析、备份和其他功能

到目前为止,占用cpu和内存资源最多的是1-Collector、2-RealTime、3-Aggregator。目前在 32 位中,收集器每秒最多可以接收 2000 个日志。如果超过这个数,它将崩溃到内存堆。所以我们使用 tanuki 软件来自动重启收集器服务。我们使用Tanuki来分割内存使用并在检测到内存堆后自动重启。

我们的目标是通过利用 64 位优势,将每秒事件数从 2000 个日志增加到最大值。对于GC我们让Java自动处理,更重要的是我们可以在1秒内处理更多的日志而没有任何问题。

最佳答案

切换到 64 位 JVM 并不能保证任何性能差异。然而,您会发现可分配的 RAM 量存在巨大差异。在 32 位 Windows 上,可以为堆分配的最大 RAM 量约为 1.6 GB。

如果您发现 32 位计算机上的应用程序需要进行大量交换,那么切换到 64 位计算机并添加足够的 RAM 可能会提高您的性能。您还可以做出有利于速度更快但内存消耗更大的算法(如果存在此类选择)的设计选择。

在撰写本文时,您可能不会发现在完全相同的硬件上在 32 位 JVM 和 64 位 JVM 上运行应用程序之间存在显着差异。最终,对 32 位操作系统和 JVM 的支持可能会停止,但这与性能不同。

我强烈建议您首先分析您的应用程序,看看您的性能热点在哪里。

一种常见的误解是,64 位自动意味着比 32 位更好的性能。参见例如this JVM faqthis MS Windows 7 FAQ .

关于java - 当前的 Java/Tomcat 6 应用程序能否利用 64 位 Windows 平台在性能和内存使用方面的优势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4320687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com