- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Java 1.8.0_05,Java HotSpot(TM) 64 位服务器虚拟机我在 tomcat 8.0.43 上运行一个 java web 应用程序
我最近部署了我的 .war
文件,方法是将它放到 webapps 文件夹中。
这导致记录了以下消息:
Java HotSpot(TM) 64-Bit Server VM warning: CodeCache is full. Compiler has been disabled. Java HotSpot(TM) 64-Bit Server VM warning: Try increasing the code cache size using -XX:ReservedCodeCacheSize= CodeCache: size=245760Kb used=244058Kb max_used=244079Kb free=1701Kb bounds [...] total_blobs=48344 nmethods=47669 adapters=584 compilation: disabled (not enough contiguous free space left)
我如何检查编译器的当前状态,看看它是否仍处于禁用状态?
如何启用编译器?我可以简单地重启 tomcat 吗?
我的应用程序的运行方式似乎没有任何明显的不同(例如:在速度方面)。
有趣的是,在将相同的应用程序部署到相同的服务器时,我没有收到此消息。这就是为什么我想首先重新打开编译器,而不是按照消息的建议更改设置(例如:ReservedCodeCacheSize)。
然后,如果问题仍然存在,我可以查看需要更改哪些设置。
最佳答案
解决您的个人问题 + 1 条建议:
最简单的做法是启动一个 jvisualvm(已随 JDK 一起提供),然后检查使用的代码缓存空间。如果您的 CodeCache 已满,JIT 编译器将保持禁用状态。检查代码缓存内存空间:
这会让您大致了解自己的位置。
是的,重启肯定会重置缓存的状态。重启编译器的唯一其他方法是,如果您已经使用正确的参数启动了 JVM。 (启用UseCodeCacheFlushing
)
JIT 优化您的代码,但根据您的应用程序和使用方式,您可能看不到任何明显的差异。假设您运行一个 Web 应用程序(因为 Tomcat),网络传输速度或您的浏览器渲染页面可能比 JIT 在核心 Java 速度方面为您带来的速度慢几个数量级。
JIT 编译取决于当时正在执行的代码。在 JIT 工作的级别上,相同的应用程序可能在底层运行完全不同。对于低级函数,您使用的第 3 方库越多,您就越不能确定在您无法控制的所有线程上发生的事情。
请升级该 Java 版本。在如此早的 JDK8 版本上使用是非常罕见的 (u_05),而且非常危险。 Java8 刚问世时并不是最稳定的版本,即使在以后的版本中也很容易重现错误。 There have been over 1000 bugs在 JDK8 中修复。其中许多直接解决了 JIT 问题。如果您对正在与之交谈的环境有任何控制权,请对其进行升级。如果不这样做,请通知负责人。
关于java - 如何启用 java HotSpot VM 编译器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52741761/
我正在研究调试应用程序中的“OutOfMemoryError: Metaspace”错误。就在 OOME 之前,我在 gc 日志中看到以下内容: {Heap before GC invocations
我目前正在使用 SmoothDivScroll 来实现图像的滚动流。但是,左边的 Hotspot 太快了,而 Right Hotspot 似乎 react 不正常。 我设置了一个 fiddle 来展示
是否有命令行参数来增加 Hotspot 将编译的 Java 方法的最大大小(从 8000 个字节码开始)? 最佳答案 您可能需要下载 sources并为此使用调试标志构建(我不确定)。 java -X
我正在尝试处理一个 excel 文件。但是我遇到了以下问题 An unexpected error has been detected by HotSpot Virtual Machine: SIGS
有些人使用NetBeans 来跟踪和调试JDK9。但是,由于我使用 ssh 访问服务器上的源代码,所以我必须使用 GDB 来跟踪源代码并查看 JDK/Hotspot 代码的控制流,而我不能使用 GUI
Pure methods是那些没有副作用的:它们的唯一作用是返回一个值,该值是其参数的函数。 使用相同的参数对同一个纯方法的两次调用将返回相同的值。那么,假设两次调用具有相同参数的纯方法,HotSpo
假设您有一个“简单的”枚举: public enum Day { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATUR
众所周知,HotSpot 分析运行时使用模式和性能特征,然后在 Java 应用程序运行时基于该分析优化 JIT 流程。因此,在尝试对 Java 应用程序进行基准测试时,通常建议谨慎行事,以便允许在进行
为了简化问题,我们假设在我们的 JRE 中,我们有一个不使用 JIT 的 Hotspot JVM 实现。这意味着我们不会预编译机器代码。 我想理解,JVM在遇到字节码时,解释器是否使用Hotspot编
观看Towards a Universal VM演示文稿中,我研究了这张幻灯片,其中列出了 HotSpot JIT 所做的所有优化: 在特定于语言的技术部分中存在反反射。我试图在互联网上查找有关它的一
我要为 Java 社区做出贡献,并且我对 JVM 很感兴趣。 现在我想下载最新的 JVM Hotspot 源代码并跟踪更新。 首先,我转到http://openjdk.java.net/ . 在其左侧
好吧,我对这个问题很困惑。我正在尝试运行一些似乎适用于一个人但不适用于另外两个人的专有软件。软件抛出此异常: Exception in thread "AWT-EventQueue-1" java.l
HotSpot 虚拟机检测到意外错误: EXCEPTION_ACCESS_VIOLATION (0xc0000005),位于 pc=0x6d6cf45b、pid=1800、tid=2824 Java
据我了解 modulus operation可以使用一些& 明智的魔法进行优化,其中除数是 2 的幂... 这可能是 JIT 编译器进行的优化? 最佳答案 我在这个问题上花了一些时间,写了这个 blo
我正在阅读 HotSpot VM 应用的优化技术,并发现 this presentation by Oracle其中列出了 HotSpot VM 尝试内联方法调用时的三种可能条件: Devirtual
我正在寻找一个开源 JavaScript 库/插件,它可以让我实现一个自定义函数: 允许特权用户在图像上的任意位置放置一个或多个图形图标(例如,类似 Google 的图钉),并将超链接、评论或其他属性
关于 HotSpot JVM 垃圾收集的一些问题。 我们有一个正在运行的 java 进程,选项是: -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateSt
了解 Java HotSpot VM 的最佳方式是什么?如果我想修改源代码并添加自己的功能,最好的开发环境是什么(ctags 是否可以很好地与大型代码库配合使用,或者我是否需要一个成熟的 IDE)?
这是一个长时间运行的服务器应用程序,它会产生大量短暂的垃圾,并且在启动后几乎没有任何东西。大多数时候年轻一代收集速度很快,即使是 10 GB 也很快,因为它几乎都是垃圾,但我们偶尔会看到残酷的异常值。
当我在 Java Hotspot 客户端中运行计时测试程序时,我得到了一致的行为。然而,当我在 Hotspot 服务器上运行它时,我得到了意想不到的结果。本质上,在我尝试过的某些情况下,多态性的成本高
我是一名优秀的程序员,十分优秀!