相关疑难解决方法(0)

Java人体工程学:如何计算默认值?

我正在关注这个问题并发现所有信息都已过时.

最新的指南似乎是关于GC调整的文档.在其中,Oracle定义了他们愚蠢的术语人体工程学,我认为这只是合理("舒适")默认值.在该文件中,提到了该文件,该文件在上述SO问题中被大量引用.

它声称最大堆大小计算如下:

较小的物理内存的1/4或1GB.在J2SE 5.0之前,默认的最大堆大小为64MB.您可以使用-Xmx命令行选项覆盖此默认值.

这显然是假的,因为我有一台我测试过的机器有12 GB的RAM和4096 MB,经过验证java -XX:+PrintFlagsFinal -version | grep HeapSize.但需要注意的是:

注意:为堆大小指定的边界和分数对于J2SE 5.0是正确的.随着计算机变得越来越强大,它们在后续版本中可能会有所不同.

哪个好极了!除了我找不到任何关于此的最新文档.我验证了我在运行这个问题的服务器类.为什么这很重要?因为我的12 GB服务器类机器默认为170 MB.一切都打破了.是的,我知道我可以覆盖它.我宁愿不必在我运行的每个应用程序中复制该覆盖,我宁愿不将其硬编码到pom文件中.更重要的是,这个数字在我的机器上以某种方式随机改变,我需要了解它是如何被碰撞的.

这是我的java版本:

$ java -version
java version "1.7.0_04"
Java(TM) SE Runtime Environment (build 1.7.0_04-b21)
Java HotSpot(TM) 64-Bit Server VM (build 23.0-b21, mixed mode)
Run Code Online (Sandbox Code Playgroud)

我在Mac OS X 10.9.2上.

java memory garbage-collection heap-size

5
推荐指数
1
解决办法
491
查看次数

当在具有更大ram的机器上运行时,java将使用更多内存

如果我有一个较小的ram机器和一个较大的ram机器.我在它们上运行相同的java代码.jvm会在更大的ram机器上更懒惰地进行垃圾收集吗?

我试图解决的问题是内存不足问题.人们报告他们在小型ram机器上有内存不足的问题.我想测试一下,但我现在唯一拥有的机器比他们的机器大得多.我想知道我是否在这个更大的ram机器上进行测试并跟踪内存使用情况,在小型ram机器上内存使用量是否相同,或者它将使用更少的内存?

谢谢!厄尔本

java memory garbage-collection memory-management out-of-memory

4
推荐指数
1
解决办法
1551
查看次数

sc.textfile与sc.wholeTextFiles + flatMapValues的内存使用情况

我有一组日志文件,我想读入RDD.这些日志文件都是压缩的gzip文件,文件名是日期戳.

我一直在sc.wholeTextFiles()阅读文件,似乎我一直在遇到Java堆内存问题.为了隔离问题,我决定在一台机器上针对单个文件运行它作为测试用例.

我从这里获得了这个文件:

http://dumps.wikimedia.org/other/pagecounts-raw/

以下是文件的大小,包括压缩和未压缩版本:

 myuser@fembuntu$ ls -ltr pagecounts-20090505-180000*
 -rw-rw-r-- 1 myuser myuser  65170192 Sep 20  2009 pagecounts-20090505-180000.gz
-rw-rw-r-- 1 myuser myuser 233007266 Jan 22 00:23 pagecounts-20090505-180000.txt
Run Code Online (Sandbox Code Playgroud)

并且机器上的可用内存如下:

myuser@fembuntu:~$ free -tm

       total       used       free     shared    buffers     cached
Mem:    4856       3018       1838        123         27        407
-/+ buffers/cache: 2583       2273
 Swap:  5080        849       4231
Total:  9937       3867       6069
Run Code Online (Sandbox Code Playgroud)

所以我启动了spark-shell,给执行程序2G内存:

$ spark-shell --executor-memory 2G

scala> val pc_loc = "file:///home/myuser/data/pagecounts"
scala> val filename="/pagecounts-20090505-180000.gz"
filename: String = /pagecounts-20090505-180000.gz
Run Code Online (Sandbox Code Playgroud)

在这里,我通过数据读取sc.textFile()并显示前2行:

scala>  var …
Run Code Online (Sandbox Code Playgroud)

apache-spark

4
推荐指数
1
解决办法
4454
查看次数

App Engine 上的 Java 11 应用程序的推荐 JVM 参数是什么?

多个来源展示了如何在 app.yaml entryPoint 命令中设置 JVM 参数(例如 -Xmx):

https://cloud.google.com/appengine/docs/standard/java11/building-app/writing-web-service https://github.com/GoogleCloudPlatform/java-docs-samples/blob/master/appengine-java11 /kotlin-ktor/app.yaml

但是,我没有看到任何有关推荐设置或是否需要良好性能的文档。如果我们不指定内存值,会使用什么设置?内存设置是否会随着机器类型的变化而自动调整?

java google-app-engine java-11

3
推荐指数
1
解决办法
3343
查看次数

Maven失败,错误为“进程退出,代码137”

Maven失败,并在日志中出现稀缺的“进程退出,代码137”。
错误的可能原因是什么?解决方法是什么?

java maven

2
推荐指数
2
解决办法
9129
查看次数

JVM MaxHeapSize := 0 - 这是什么意思?

我在这里看到了其他问题,例如:默认的最大 Java 堆大小是如何确定的?理解java堆

我运行命令以查看我的堆大小,java -XX:+PrintFlagsFinal -version并获得 MaxHeapSize 的输出:

uintx MaxHeapSize := 0 {product}

这是什么意思?

java jvm

2
推荐指数
1
解决办法
590
查看次数

什么是我的JVM堆大小?

如何确定JVM堆大小的默认值?

请注意,在运行我的应用程序之前/期间,我对设置或修改其初始,最小或最大大小不感兴趣.如果我什么都不做的话,我只想知道给定机器上的是什么!

java jvm heap-memory heap-size

1
推荐指数
1
解决办法
2041
查看次数

番石榴缓存可以使用的最大优选大小是多少?

番石榴缓存可以使用的最大优选大小是多少?我的系统有 8 GB RAM,因此在不降低系统和其他应用程序性能的情况下,我可以使用多少 MB?当 RAM 存储不可用时,Guava 缓存是否也使用硬盘存储?

java caching guava google-guava-cache

1
推荐指数
1
解决办法
5011
查看次数