如果只在jvm参数中加入-XX:+PrintAssembly参数,运行报错:
- Improperly specified VM option 'PrintAssembly'
- Error: Could not create the Java Virtual Machine.
- Error: A fatal exception has occurred. Program will exit.
同时加上-XX:+UnlockDiagnosticVMOptions则可以打印编译信息,并且这个参数必须放在PrintAssembly前面才行。不过MacOSX上加了之后又遇到了新的错误:
- VM warning: PrintAssembly is enabled; turning on DebugNonSafepoints to gain additional output
- Could not load hsdis-amd64.dylib; library not loadable; PrintAssembly is disabled
按照这里去下载hsdis-am64.dylib,放到你自己的目录下,如/xxx/yyy/zzz/,并chmod 设置当前用户可执行,然后在~/.bash_profile加上一行:
- #这里只能设置到目录一级,不能设置到dylib文件
- export LD_LIBRARY_PATH=/xxx/yyy/zzz/
注销重新登陆,重新运行程序,汇编信息就打印出来了。
enjoy it!
http://yueyemaitian.iteye.com/blog/2042772
相关推荐
6. 运行时常量池:是方法区的一部分,包含编译期生成的常量和符号引用,也支持运行时动态生成常量(如String的intern()方法)。 二、垃圾收集 垃圾收集主要关注堆和方法区。程序计数器、虚拟机栈和本地方法栈由于...
3. 注解实践:编写带有注解的类或方法,自定义注解处理器,实现编译期或运行期的逻辑。 4. 自动装箱/拆箱:通过实例演示基本类型与包装类型的自动转换,比较手工转换和自动转换的差异。 5. 可变参数应用:编写函数...
第11章 晚期(运行期)优化 11.1 概述 11.2 HotSpot虚拟机内的即时编译器 11.2.1 解释器与编译器 11.2.2 编译对象与触发条件 11.2.3 编译过程 11.2.4 查看及分析即时编译结果 11.3 编译优化技术 11.3.1 ...
Java程序被编译成字节码后,可以在任何安装了JVM的平台上运行,实现了“一次编写,到处运行”。 - **1.4 Java语言环境搭建** - **JDK、JRE与JVM关系**:JDK(Java Development Kit)是Java开发工具包,包含了编译...
* 跨平台性:Java语言的编译器将源代码编译成字节码,可以在任何支持Java虚拟机(JVM)的平台上运行,实现了跨平台性。 * 面向对象:Java语言是一种纯面向对象的编程语言,支持封装、继承和多态等面向对象特性。 * ...
6. **.NET与JVM**:这两个平台分别支持.NET Framework和Java应用程序的运行,它们提供了各自独特的特性和优势。 7. **语言功能上的差别**:不同的编程语言提供了不同的特性和功能,如垃圾回收、类型检查等。 8. **...