jvm相关内容

什么是invokedynamic,我该如何使用它?

我不断听到有关添加到 JVM 的所有新酷特性,其中一个很酷的特性是 invokedynamic.我想知道它是什么以及它如何使 Java 中的反射式编程更容易或更好? 解决方案 这是一个新的 JVM 指令,它允许编译器生成调用具有比以前更宽松的规范的方法的代码——如果你知道“这里是一篇非常精彩的博文,提供了很多细节.p> ..
发布时间:2022-01-16 12:10:57 Java开发

跟踪 java 字节码流

我想查看它正在执行的 JVM 的当前(字节码)指令流.经过一番谷歌搜索,我发现 jvm 调试版本提供了 -XX:+TraceBytecodes 选项(参见 这里).但是,提到的热点 JVM 调试构建链接已失效,我无法在线找到调试构建:/ 是否有另一种方法可以跟踪 jvm 字节码流,或者有人可以指出我正确的方向吗?我正在运行 64 位 ubuntu 16.04. P.S:我知道,打印出完 ..
发布时间:2022-01-16 12:10:02 Java开发

用于从正在运行的 JVM 收集统计信息的 API

对于一个类项目,我想实现一个 Java 应用程序,它连接到本地 JVM 并收集诸如堆使用情况、线程数、加载的类等统计信息.我在网上搜索了一个 API,第三方内置的,可以让我这样做,但到目前为止我还没有成功. 有谁知道可以让我连接到正在运行的 JVM 并收集统计数据的 API? 解决方案 以下类演示了如何连接到正在运行的 JVM 并建立 JMX 连接,并在必要时加载 JMX 代理.它将 ..
发布时间:2022-01-16 12:09:51 Java开发

如何在Java中拦截低于用户类级别的对象创建

我正在寻找一种方法,通过使用 Java 代理或检测类(最好是比用户类更低级别的东西)来拦截 JVM 中的所有对象创建(new 或任何其他创建对象的方法),有一个 类似问题 不关注 Java代理或低于检测用户类的东西 解决方案 Java 对象可以通过多种不同的方式创建. 从 Java 代码,当解释或编译的 Java 方法执行以下字节码指令之一时:新, newarray, anewarr ..
发布时间:2022-01-16 12:09:35 Java开发

使用反射改变字符串的效果

众所周知,String 在 java 中是不可变的.但是,可以通过获取字段并设置访问级别来使用反射来更改它.(我知道这是不明智的,我不打算这样做,这个问题是纯理论的). 我的问题:假设我知道自己在做什么(并根据需要修改所有字段),程序会正常运行吗?或者 jvm 是否进行了一些依赖于 String 不可变的优化?我会遭受性能损失吗?如果是这样,它做了什么假设?程序会出什么问题 附言Str ..
发布时间:2022-01-16 12:09:26 Java开发

Lambda 表达式如何在 Java 字节码中翻译

我正在尝试在 java 中使用 lambda 表达式创建一个示例,并且我使用的是官方 JDK8.我的示例运行成功.但是当我试图检查编译器如何将 lambda 表达式转换为字节码时,这让我有些困惑.以下是我的示例代码:- 公共类 LambdaTest {公共整数 lambdaBinaryOperator(BinaryOperator binaryOperator) {返回 binaryOperat ..
发布时间:2022-01-16 12:09:15 Java开发

Windows Mobile 上的 JVM 选择

Windows Mobile 上可用的 JVM 实现有哪些? Esmertec JBed 是我 WinMo 手机上的那个. 想知道这个区域中有多少其他 JVM 供应商.是否有可用的比较或基准数据? 解决方案 一般 Windows CE 的 JVM 选择(包括 Pocket PC 和 Windows Mobile): CrE-ME Mysaifu Skelmir CEE ..
发布时间:2022-01-16 12:09:10 其他开发

JVM 压缩 Oops 背后的技巧

所以我知道 HotSpot VM 现在默认启用压缩 oops.从 Java SE 6u23 开始,它通过 VM 选项 -XX:+UseCompressedOops 对此提供了支持.我知道它允许有效地利用 CPU 缓存,因为 CPU 缓存可以容纳更多的引用,而不是它们必须处理 64 位大小的引用.但我不明白的是,仅使用 32 位 JVM 可以寻址多达 264 个地址. 为了简化问题,我们如何仅 ..
发布时间:2022-01-16 12:08:23 Java开发

java.net.SocketException:没有可用的缓冲区空间(达到最大连接数?):JVM_Bind

Tomcat 在 Windows 下运行 webapp.几天后(在非常低的负载下),标题中提到的异常开始出现在日志中,从此无法建立新的连接,唯一的解决方法是重新启动服务器. 环境: 最新的 Tomcat 6 Windows Server 2008 R2 JDK 6 更新 30 SQL Server 2008 Kerberos 身份验证 目前收集的证据: netsta ..
发布时间:2022-01-16 12:08:17 服务器开发

Oop Maps 在 Hotspot VM 中的确切含义是什么

我从一些文档中了解到,Hotspot VM 利用称为 Oop Maps 的数据结构来管理 VM 中的所有 OOP.我的问题是,这个 Oop Map 数据结构是什么时候生成的?在编译时还是运行时?任何有关此的详细文件都将受到欢迎.谢谢各位. 解决方案 OopMap 是一种记录对象引用 (OOP) 在 Java 堆栈上的位置的结构.它的主要目的是在 Java 堆栈上查找 GC 根,并在对象在堆 ..
发布时间:2022-01-16 12:08:00 Java开发

减小 JRE 的大小

我们将 Java 6 JRE 与我们的应用程序安装程序捆绑在一起,以便它可以在任何机器上运行,但这会使应用程序更重一些.所以我们计划减小 JRE 的大小.如果有人做过此类任务,您能否提供指导以推进此任务? 解决方案 查看JRE目录下的README文件.如果您将 Oracle/Sun JRE 与应用程序打包在一起,则“可选文件和目录"部分列出了可以从 Oracle/Sun JRE 中删除的一 ..
发布时间:2022-01-16 12:07:38 Java开发

在 Dalvik VM(Android 的 VM)上,您不能在 Sun VM 中做什么?

我知道你可以在 Dalvik 的 VM 中运行几乎所有的 Java,而你可以在 Java 的 VM 中运行,但是限制不是很清楚.有没有人遇到任何主要的绊脚石?有什么大图书馆有问题吗?任何编译成 Java 字节码的语言(Scala、Jython 等)都不能按预期工作? 解决方案 Dalvik 不会处理或不会以与标准 Java 字节码完全相同的方式处理许多事情,尽管其中大多数都非常先进. ..
发布时间:2022-01-16 12:06:47 Java开发

CATALINA_OPTS 与 JAVA_OPTS - 有什么区别?

我试图找出 Apache Tomcat 变量之间的区别 - SO 惊讶地发现这里还没有发布任何问题/答案.所以我想在发现差异后在这里分享它(有答案).检查下面的答案/差异. 注意:在发布本文时,我们在 CentOS5 64 位架构上运行 Apache Tomcat v6.0.10 和 JDK 6u32. 解决方案 有两个环境变量 - CATALINA_OPTS 和 JAVA_OPTS ..
发布时间:2022-01-16 12:06:39 Java开发

JVM 是编译器还是解释器?

我有一个关于 JVM 的非常基本的问题:它是编译器还是解释器? 如果是解释器,那么JVM内部存在的JIT编译器呢? 如果两者都不是,那么 JVM 到底是什么?(我不想要将字节码转换为机器特定代码等的JVM的基本定义.) 解决方案 首先,让我们对以下术语有一个清晰的认识 Javac 是 Java Compiler -- 将你的 Java 代码编译成 Bytecode JV ..
发布时间:2022-01-16 12:06:24 Java开发

分析 volatile 上下文中 JIT 生成的 x86 输出

我写这篇文章是为了深入理解Java中的volatile 公共类 Main {私人int x;私人易失性int g;公共无效actor1(){x = 1;g = 1;}公共无效actor2(){put_on_screen_without_sync(g);put_on_screen_without_sync(x);}} 现在,我正在分析 JIT 为上述代码生成的内容.根据我们在上一篇文章中的讨论, ..
发布时间:2022-01-16 12:06:16 Java开发

以编程方式设置最大 Java 堆大小

有没有办法以编程方式设置最大 java 堆大小而不是作为 vm 参数? 类似: System.getProperties().put("", "1000m"); 解决方案 不适用于任何 Hotspot JVM.JVM 堆参数只能在命令行中指定,然后在 JVM 的生命周期内固定. 使用 Hotspot Java 实现,“更改"应用程序的堆大小的唯一方法是在具有不同命令行参数的新 J ..
发布时间:2022-01-16 12:06:08 Java开发

JVM_FindSignal 函数不断分配本机内存

我在 linux 机器上的 tomcat8 中部署的 java web 应用程序一直在泄漏本机内存,我尝试通过使用 jemalloc 分析来检测泄漏源,如下所述:https://github.com/jeffgriffith/native-jvm-leaks在服务器上运行超过 24 小时的带有堆转储的分析工具的输出: 总计:794708494 B789734456 99.4% 99.4% 78 ..
发布时间:2022-01-16 12:06:00 Java开发

java.lang.NoSuchFieldError: DEF_CONTENT_CHARSET

我正在尝试运行 java 程序,但出现以下运行时错误.错误如下所示. 线程“main"中的异常 java.lang.NoSuchFieldError: DEF_CONTENT_CHARSET在 org.apache.http.impl.client.DefaultHttpClient.setDefaultHttpParams(DefaultHttpClient.java:175)在 org.ap ..
发布时间:2022-01-16 12:05:50 Java开发