jvm相关内容

Java VM - 释放的内存是否返回到操作系统?

在 Java 运行时,如果我的应用程序释放内存,运行时是否会将内存释放回操作系统?还是回到我的流程? 解决方案 这取决于JVM实现,规范中没有指定. Sun JVM 将保留它作为第一步.一旦分配的内存的某个(可配置)百分比未使用,它会将其中的一部分返回给操作系统(该行为受 MinHeapFreeRatio 和 MaxHeapFreeRatio 设置). ..
发布时间:2022-01-16 12:30:20 Java开发

Safepoint+stats 日志,输出 JDK12 中没有 vmop 操作

我在 JDK12 上使用 -Xlog:safepoint+stats=debug:file=safepoint.log vm 参数运行应用程序来记录安全点操作并使用 ZGC 运行.我有问题理解日志输出: [1408.417s][debug][safepoint,stats] vmop [threads: totalinitial_running wait_to_block][time: spin ..
发布时间:2022-01-16 12:30:11 Java开发

空闲时的JVM锯齿模式?JVM 在此期间做了什么?

我想知道.我有一个带有 servlet 的简单 Java Web 项目.当没有用户使用它时(我在 GlassFish 上本地托管它),我仍然在进程的内存使用中看到锯齿模式.我似乎无法理解 JVM 在做什么?我了解JVM使用的内存的正常流动.堆中充满了应用程序正在创建的对象.在某个点,堆到达垃圾收集器进入的点,它将删除所有不再使用的“缓存"对象,以便可以创建新对象并可以填充堆大小. 我想知道的 ..
发布时间:2022-01-16 12:30:05 Java开发

java“虚拟机线程"是什么意思?做?

我使用 jstack 来输出线程信息.还有一个线程:“VM 线程"prio=10 tid=0x0878b400 nid=0x760a 可运行 这个线程是用来做什么的?它占用 50% 的 CPU 使用率和大部分 CPU 时间 解决方案 VM线程定义这里 作为: 该线程等待需要 JVM 到达安全点的操作出现.这些操作必须在单独的线程上发生的原因是因为它们都要求 JVM 处于不能对堆 ..
发布时间:2022-01-16 12:29:42 Java开发

Clojure 中的(布尔值.假)

根据 http://hyperpolyglot.org/lisp,Clojure 中唯一的谎言是 false 和 nil.确实,令人惊讶的是,(Boolean.false) 不是假的: 用户=>(如果(布尔值.假)1 2)1用户=>(不是(布尔值.假))错误的用户=>(假?(布尔值.假))错误的 另一方面,它以某种方式是错误的: 用户=>(类错误)java.lang.Boolean用户=>( ..
发布时间:2022-01-16 12:29:34 其他开发

java.util.Locale 有一个空的第一项

我正在尝试从 JVM 获取所有语言环境以填充 Country 下拉列表.第一项是空的非空对象.它不为空,因为我正在使用 TreeMap 集合来添加国家/地区缩写和(可显示)名称.看看下面的集合是什么. {=, AE=阿拉伯联合酋长国, AL=阿尔巴尼亚, AR=阿根廷, AT=奥地利, AU=澳大利亚, ​​BA=波斯尼亚和黑塞哥维那, BE=比利时, BG=保加利亚, BH=巴林, BO=玻利 ..
发布时间:2022-01-16 12:29:29 Java开发

Java中创建的OutOfMemoryError对象在哪里

OutOfMemoryError 当堆没有足够的内存来创建新对象时发生.如果堆没有足够的内存,OutOfMemoryError 对象在哪里创建.我正在努力理解这一点,请指教. 解决方案 当然,这是一个依赖于实现的行为.HotSpot 有一些普通分配无法访问的堆内存,JVM 可以用来构造一个 OutOfMemoryError .但是,由于 Java 允许任意数量的线程,任意数量的线程可能同时 ..
发布时间:2022-01-16 12:29:17 Java开发

以编程方式(或替代方法)设置 Djava.library.path?

我希望以编程方式设置 VM 参数 Djava.library.path.如果无法做到这一点,有什么替代方案(如果有的话)? 解决方案 看看这个 java doc http://docs.oracle.com/javase/6/docs/api/java/lang/System.html#setProperty(java.lang.String, java.lang.String) 你 ..
发布时间:2022-01-16 12:29:00 Java开发

Java 类存在于类路径中,但启动失败并出现错误:无法找到或加载主类

我有一个 jar 文件 foobar.jar 包含以下两个类: 公共类 Foo {公共静态无效主要(字符串[]参数){System.out.println("Foo");}} 另一个类是这样的: import javax.batch.api.chunk.ItemProcessor;公共类 Bar 实现 ItemProcessor {公共静态无效主要(字符串[]参数){System.out.p ..
发布时间:2022-01-16 12:28:53 Java开发

哪种方法在 java 中生成线程转储最不显眼?

我知道以下在 java 中生成线程转储的方法: 杀死 -3 jstack 来自 JVM 内部的 JMX JMX 远程 JPDA(远程) JVMTI (C API) 在这些方法中,哪种方法对 JVM 的性能影响最小? 解决方案 如果你只需要将所有堆栈跟踪转储到 stdout,kill -3 和 jstack 应该是最便宜的.该功能在 JVM 代码中本地实现.没有创建中间 ..
发布时间:2022-01-16 12:28:35 其他开发

Java 进程在 OutOfMemoryError 情况下的行为

Java 程序在获取 OutOfMemoryError.是否有任何定义的行为?进程会崩溃还是进入等待/睡眠状态? 更新:如果我没有在我的代码中处理它? 解决方案 并且 OutOfMemoryError 的处理方式与任何其他异常一样: 如果它被抓住了,就不会再发生任何事情了. 如果没有被捕获,那么 线程 或 线程组 未捕获的异常处理程序处理它.这几乎总是会导致线程被停止. 然 ..
发布时间:2022-01-16 12:28:15 Java开发

数组类在 Java 中是如何工作的?

在 Java 中,数组是一个类并扩展了 Object.我很想知道这个特殊的数组类.我在任何地方都找不到类定义.执行 getClass().getName() 会产生奇怪的结果. String[] array = new String[]{"one","two"};System.out.println(array.getClass().getName());//打印 [Ljava.lang.Str ..
发布时间:2022-01-16 12:28:05 Java开发

为特定方法/类禁用 Java JIT?

我在我的 Java 应用程序中遇到了 JIT 破坏代码的问题.如果我禁用 JIT,一切正常,但运行速度会慢 10-20 倍. 有什么方法可以禁用特定方法或类的 JIT? 编辑:我正在使用 Ubuntu 10.10,得到相同的结果: OpenJDK 运行时环境 (IcedTea6 1.9) (6b20-1.9-0ubuntu1)OpenJDK 64 位服务器 VM(内部版本 17.0- ..
发布时间:2022-01-16 12:27:57 Java开发

如何模拟内存不足:请求的数组大小超过 VM 限制

我使用了来自 sun 网站的 Out Of Memory 帮助.它被引用的地方 内存不足:请求的数组大小超过了 VM 限制 这表明应用程序试图分配一个大于堆大小的数组.为了例如,如果应用程序尝试分配一个 512MB 的数组,但最大堆大小为 256MB,那么这个错误将被抛出.在大多数情况下,问题可能是堆大小太大小或错误导致应用程序尝试创建一个数组,其大小计算为不正确. 我试图通过 ..
发布时间:2022-01-16 12:27:51 Java开发

Eclipse 在 Windows 7 中启动时的错误

美好的一天. 我决定学习 Java.我安装了 JDK 并为 windows 7 下载了 eclipse-java-helios-SR1-win32. 但我无法启动 eclipse,因为我总是收到消息: 错误:找不到 Java SE 运行时环境 我尝试重新安装 JDK,但安装程序给了我这样的消息: 错误 1723,此 Windows 安装程序包有问题.无法运行完成此安装所需的 DL ..
发布时间:2022-01-16 12:27:27 Java开发

JVM 终止.退出代码 = -1

我已经使用 Eclipse 有一段时间了,我没有遇到任何问题.但是,当我尝试生成一些 javadoc 时,我发现我没有安装 SDK.我安装了jdk 6u23,从此Eclipse就一直不工作了. 起初它告诉我找不到 JRE/SDK.将JRE复制并放入Eclipse文件夹后,错误变为: 我搜索了一些解决方案,发现了一些不同性质的解决方案.但是,它们似乎都不起作用.我试过清空我的 eclip ..
发布时间:2022-01-16 12:27:17 Java开发

Args 保证不为空?

在下面的程序中,如果执行(例如通过命令行),args JVM 是否独立保证不为空? 公共类测试{公共静态无效主要(字符串[]参数){}} 解决方案 简短回答:是的,它的长度可能为 0 但不会为空. ..
发布时间:2022-01-16 12:27:08 Java开发

多个 JVM 进程可以共享公共类的内存吗?

我想在我的 Web 服务器上运行多个 Java 进程,每个 Web 应用程序一个.我正在使用一个具有大量支持类和 jar 文件的 Web 框架(Play),并且 Java 进程使用大量内存.一个 Play 进程显示大约 225MB 的“驻留私有"内存.(我正在使用 Java 1.7.0_05 的 Mac OS X 上对此进行测试.)特定于应用程序的代码可能只有几 MB.我知道典型的 Java We ..
发布时间:2022-01-16 12:27:01 Java开发

Java 线程:是否可以从在同一 JVM 上运行的不同 Java 程序查看/暂停/杀死特定线程?

我有一个程序 'foo' 运行不同的线程,fooT1、fooT2、.. fooTn. 现在,如果我想编写另一个程序“bar",它可能会杀死线程 fooTr,这可能吗? 原因:线程 fooTr 跟踪产品许可证之一.如果这个线程被杀死;一个人可以无限期地运行这个产品.杀死 'foo' 本身是可以容忍的,因为这正是许可证到期时所做的事情. 系统:Linux 的 Fedora 发行版 ..
发布时间:2022-01-16 12:26:53 Java开发