这个问题通常是由于Java使用了错误的内存布局算法和错误的对象对齐方式导致的。在aarch64架构下,Java对象对齐需要8字节的倍数(而不是4字节,这是x86架构的默认值)。因此,当Java进程在aarch64架构上运行时,需要在启动参数中添加选项“-XX:ObjectAlignmentInBytes=8”,以确保正确的对象对齐方式。例如:
java -XX:ObjectAlignmentInBytes=8 -jar your_app.jar
在大多数情况下,这应该能够解决aarch64上Java进程内存使用过高的问题。