【发布时间】:2011-09-03 07:55:38
【问题描述】:
我使用的是 64 位 JVM (Oracle),当我尝试分配大于 256 MB 的缓冲区大小时,它会抱怨并抛出“分段错误”错误。我使用 java NIO 分配直接内存缓冲区,并在同一台机器(Linux 64 位)上与 RMI 客户端程序传输和接收这些对象。
有什么想法吗?
【问题讨论】:
-
你能贴一点代码吗?
-
你的最大堆设置是多少?
-
只有在 JNI 库或 JVM 中存在错误时才会发生分段错误。我会尝试的第一件事是确保您拥有 Java 6 update 25 或最新版本。
-
我使用的是 JDK 1.6 update 25(64 位)JVM,最大堆大小设置为 8000MB,而 DireactMemorySize (-XX:MaxDirectMemorySize=3000M) 设置为 3000MB。我正在使用 jog-amp JOCL(Java-OpenCL 绑定来使用我的分布式(基于 RMI)框架创建所需大小的缓冲区
-
这可能与我提交的错误报告有关:bugs.sun.com/bugdatabase/view_bug.do?bug_id=7027845
标签: java segmentation-fault nio