小编Bri*_* HU的帖子

为什么JVM比指定的-Xms消耗更少的内存?

我的问题是标题,我通过搜索获得了一些知识:

  1. linux有共享内存 如何衡量应用程序或进程的实际内存使用情况?

  2. JVM将保留在Xms中设置的内存量 -Xms JVM在引用堆内存时的含义是什么?

但还是不知道为什么,有些可以提供一些帮助吗?

这是我在Ubuntu12.04(64位)上的测试运行 JDK 1.7.0_04.和顶部显示如下:

  PID USER      PR  NI  VIRT  RES       SHR S %CPU %MEM    TIME+  COMMAND
 4067 brian     20   0 5316m **262m** 7496 S    0  3.3   0:00.30 java -**Xms4096m** -Xmx4096m Test
 4066 brian     20   0 3182m **256m** 7496 S    0  3.3   0:00.30 java -**Xms2048m** -Xmx2048m Test
 4065 brian     20   0 2114m **252m** 7492 S    0  3.2   0:00.30 java -**Xms1024m** -Xmx1024m Test
 4064 brian     20   0 1314m  **76m** 7584 S    0  1.0   0:00.20 java -**Xms256m** …
Run Code Online (Sandbox Code Playgroud)

java linux garbage-collection jvm

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

手动删除后,文件内容仍然可以读出吗?

import java.io.FileReader;

public class SimpoTest {

    public static void main(String[] args) {
        FileReader fileReader = null;
        try {
            fileReader = new FileReader("/home/brian/Desktop/me");
            int read = fileReader.read();
            System.out.println((char) read);
        } catch (Exception e) {
            fileReader = null;
            e.printStackTrace();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

1 \ echo“ 1”> / home / brian / Desktop / me
2 \将断点设置为“ int read = fileReader.read();”
3 \开始调试
4 \ rm -f / home / brian / Desktop / me
5 \跳到结尾<========控制台上仍输出“ 1” ...

好吧...这对我来说真的很奇怪。因为我虽然应该抛出一个异常。谁能提供任何解释?任何意见或建议表示赞赏。

java file

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

为什么guava缓存只能在本地缓存中存储非null值以及如何绕过它

我正在使用谷歌的guava工具将本地缓存添加到我的服务器.

guava非常适合我的场景,除了它只能将"非null"值存储到其本地缓存中(com.google.common.cache.Cache和com.google.common.cache.LoadingCache都可以).

好吧,这不好.因为我的服务器可能无法从远程数据库获取值,因为时间用完或其他原因.如果我给guava一个默认值,它将被存储在本地缓存中,并且将始终存在,除非满足某些驱逐条件.但问题是我不能给番石榴合理的默认值.

谁能告诉我,为什么番石榴有这种约束,我怎么能绕过呢?ehcache可以更适合我的情况吗?

java caching ehcache guava

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

标签 统计

java ×3

caching ×1

ehcache ×1

file ×1

garbage-collection ×1

guava ×1

jvm ×1

linux ×1