有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (5) 个答案

  1. # 1 楼答案

    我使用64位。Net系统,通常使用9-12GB,有时甚至高达20GB。即使在垃圾收集时,我也没有看到任何性能问题,我一直在努力寻找,因为我不希望它工作得这么好

    早期版本对某些对象的挂起时间过长,导致偶尔出现释放3GB+的GCs。即使在那时,对性能也没有明显的影响。该系统运行在一台16核服务器上,内存为32GB,这可能有助于

  2. # 2 楼答案

    我目前有一个6 GB内存的生产应用程序。您还需要一个64位的框,JVM才能解决这个问题。 垃圾收集器是唯一一个性能会随着大小而下降的东西(到目前为止,我已经发现了),而且只有在手动启动系统的情况下。GC,它迫使JVM在遍历6gb的对象时将所有内容急停。也需要20秒的时间。默认的GC行为不能做到这一点,顺便说一句,您必须足够愚蠢才能让它做到这一点。同样值得研究这种规模的JVM调优

    您还可以找到分布式和集群JVM之类的东西,抱歉,没有任何好的参考,因为我没有仔细研究这个选项,尽管我确实找到了对更大安装的参考

  3. # 3 楼答案

    我在java中使用了从2GB到5GB的内存,但通常当我达到2GB以上时,我会开始考虑内存优化。收益递减可能会有所不同,从因为内存太多而在必要时不进行优化,到没有可用于操作系统/磁盘缓存的内存(这有助于应用程序的整体性能)

    对于Java,我建议随时间观察每一代的内存使用情况。您是否创建了大量临时对象,或者具有消耗大量内存的持久对象?当知道这些事情时,可以对内存进行大量优化

  4. # 4 楼答案

    我不确定你说的堆是什么意思,但如果你说的是内存使用,我已经使用了相当多的内存,2GB+。我有一个做图像处理的web应用程序,它需要将2个大的扫描文件加载到内存中进行分析

    存在性能问题。Windows会调出大量ram,然后会产生大量页面错误。因为所有请求都是针对这些图像的,所以一次不需要超过2个图像(我一次只允许每个图像集有1个会话)

    例如,为初始查看设置文件大约需要5秒钟。在内存中进行简单的分析和缩放会非常快,大约为0.1到0.5秒

    我仍然需要进行优化,所以我最终准备了文件并切碎成更小的PEICE,只处理用户当时需要的PEICE

  5. # 5 楼答案

    在。Net,在Windows 32位上,在事情开始变得非常糟糕(内存不足异常)之前,您只能真正使用大约1.4 GB的内存。这是由于32位窗口中的一个限制,即单个进程使用超过2GB的RAM。有一个/3GB的开关,你可以把你的启动。但这只会让你走得更远一点。如果你想使用大量的内存,你应该认真考虑在64位版本的Windows上运行。p>