我正在上一门有关Java性能优化的课程,并且试图下载所有必需的文件,以便可以构建此DLL hsdis-amd64.dll。本来应该允许我使用JITWatch并学习有关JIT的知识。
无论如何,说明here说要为您的确切JDK下载热点。 我的JDK是11版本11 + 28。
这是openJDK repository,其中
我看到由于许可证问题,无法预先构建DLL。知道人们如何在openJDK11中使用JITWatch吗?
答案 0 :(得分:0)
我最近根据这里的帖子构建了它:https://dropzone.nfshost.com/hsdis/
安装Cygwin。在“选择软件包”屏幕上,添加以下软件包(展开“所有/开发”类别,搜索软件包的名称,然后将其“新状态”从“跳过”更改为最新的非测试版本):
gcc核心 使 mingw64-i686-gcc-core(仅适用于hsdis-i386.dll) mingw64-x86_64-gcc-core(仅适用于hsdis-amd64.dll)
在终端外壳中运行Cygwin
将GNU binutils 2.32下载到您的Cygwin主目录中,并用tar xvf binutils-2.32.tar.xz将其解压缩到可以从cygwin路径轻松访问的位置。
更改为JDK / src / utils / hsdis目录
像这样构建64位Windows:
make OS = Linux MINGW = x86_64-w64-mingw32 BINUTILS = / cygdrive / c / cygwin / binutils-2.32
如果上述命令失败(某些未修补的JDK构建可能会失败),则带有:
compress.c :(。text + 0x5b):对'inflateInit_'的未定义引用
编辑Makefile,查找libiberty.a,然后将库列表更改为包含libz.a,如下所示:
LIBRARIES = $(TARGET_DIR)/bfd/libbfd.a \
$(TARGET_DIR)/opcodes/libopcodes.a \
$(TARGET_DIR)/libiberty/libiberty.a \
$(TARGET_DIR)/zlib/libz.a