finalshell 4.5.x在m1mac闪退

embedded/2024/10/21 15:31:35/

使用过程中会出现突然闪退,尤其在定位生产打开一堆窗口的情况下,绝绝子

闪退崩溃日志:

Thread 116 Crashed:: Java: pool-4-thread-28
0   libsystem_kernel.dylib        	       0x18e926600 __pthread_kill + 8
1   libsystem_pthread.dylib       	       0x18e95ef70 pthread_kill + 288
2   libsystem_c.dylib             	       0x18e86b908 abort + 128
3   libjvm.dylib                  	       0x1078e0140 os::abort(bool, void*, void const*) + 56
4   libjvm.dylib                  	       0x107aa6ef8 VMError::report_and_die(int, char const*, char const*, char*, Thread*, unsigned char*, void*, void*, char const*, int, unsigned long) + 2404
5   libjvm.dylib                  	       0x107aa6588 VMError::report_and_die(Thread*, unsigned int, unsigned char*, void*, void*, char const*, ...) + 72
6   libjvm.dylib                  	       0x107aa72a8 VMError::report_and_die(Thread*, unsigned int, unsigned char*, void*, void*) + 36
7   libsystem_platform.dylib      	       0x18e994184 _sigtramp + 56
8   libjvm.dylib                  	       0x107460ca0 BlockLocationPrinter<G1CollectedHeap>::base_oop_or_null(void*) + 236
9   libjvm.dylib                  	       0x107460ca0 BlockLocationPrinter<G1CollectedHeap>::base_oop_or_null(void*) + 236
10  libjvm.dylib                  	       0x10745e334 BlockLocationPrinter<G1CollectedHeap>::print_location(outputStream*, void*) + 64
11  libjvm.dylib                  	       0x1078d4914 os::print_location(outputStream*, long, bool) + 220
12  libjvm.dylib                  	       0x1078db71c os::print_register_info(outputStream*, void const*, int&) + 180
13  libjvm.dylib                  	       0x107aa56d0 VMError::report(outputStream*, bool) + 10472
14  libjvm.dylib                  	       0x107aa6a14 VMError::report_and_die(int, char const*, char const*, char*, Thread*, unsigned char*, void*, void*, char const*, int, unsigned long) + 1152
15  libjvm.dylib                  	       0x107aa6588 VMError::report_and_die(Thread*, unsigned int, unsigned char*, void*, void*, char const*, ...) + 72
16  libjvm.dylib                  	       0x107aa72a8 VMError::report_and_die(Thread*, unsigned int, unsigned char*, void*, void*) + 36
17  libsystem_platform.dylib      	       0x18e994184 _sigtramp + 56
18  libjvm.dylib                  	       0x107460ca0 BlockLocationPrinter<G1CollectedHeap>::base_oop_or_null(void*) + 236
19  libjvm.dylib                  	       0x107460ca0 BlockLocationPrinter<G1CollectedHeap>::base_oop_or_null(void*) + 236
20  libjvm.dylib                  	       0x10745e334 BlockLocationPrinter<G1CollectedHeap>::print_location(outputStream*, void*) + 64
21  libjvm.dylib                  	       0x1078d4914 os::print_location(outputStream*, long, bool) + 220
22  libjvm.dylib                  	       0x1078db71c os::print_register_info(outputStream*, void const*, int&) + 180
23  libjvm.dylib                  	       0x107aa40e8 VMError::report(outputStream*, bool) + 4864
24  libjvm.dylib                  	       0x107aa6a14 VMError::report_and_die(int, char const*, char const*, char*, Thread*, unsigned char*, void*, void*, char const*, int, unsigned long) + 1152
25  libjvm.dylib                  	       0x107aa6588 VMError::report_and_die(Thread*, unsigned int, unsigned char*, void*, void*, char const*, ...) + 72
26  libjvm.dylib                  	       0x107aa72a8 VMError::report_and_die(Thread*, unsigned int, unsigned char*, void*, void*) + 36
27  libjvm.dylib                  	       0x10797dc84 JVM_handle_bsd_signal + 424
28  libsystem_platform.dylib      	       0x18e994184 _sigtramp + 56
29  libjvm.dylib                  	       0x1075de84c jni_SetByteArrayRegion + 428
30  ???                           	       0x113d39e10 ???
31  ???                           	       0x1142ad018 ???
32  ???                           	      0x2e000409b0 ???

以下为gpt分析的结果
在这里插入图片描述
查看原始finalshell中配置的启动参数,投喂gpt给出了一些解决方案

在这里插入图片描述

当前配置选项解释

  1. -Djpackage.app-version=4.5.2

    • 设置应用程序的版本号为 4.5.2。
    • 优化建议:这个选项无须更改,因为它只是设置版本信息。
  2. -Dsun.java2d.opengl=true

    • 启用 OpenGL 硬件加速。
    • 优化建议:如果你的应用程序不依赖 OpenGL 硬件加速,或者 OpenGL 可能导致不稳定,可以尝试禁用此选项以排除它作为潜在问题的可能性。
  3. -XX:MinHeapFreeRatio=10

    • 设置 JVM 最小空闲堆内存比例为 10%。
    • 优化建议:这个值比较低,可以尝试增加这个值,例如 20%,以确保 JVM 有足够的空闲内存进行垃圾回收。
  4. -XX:MaxHeapFreeRatio=30

    • 设置 JVM 最大空闲堆内存比例为 30%。
    • 优化建议:这个值也比较低,可以尝试增加这个值,例如 40%,以确保 JVM 有足够的空闲内存进行垃圾回收。
  5. --add-exports=java.desktop/com.apple.eawt=ALL-UNNAMED

    • 允许未命名模块访问 java.desktop 模块中的 com.apple.eawt 包。
    • 优化建议:如果你的应用程序需要访问 com.apple.eawt 包,这个选项是必要的,无须更改。

其他优化建议

  1. 增加堆栈大小

    • 如果你的应用程序可能因为堆栈溢出而崩溃,可以增加 JVM 堆栈大小,例如:
      -Xss2m
      
    • 默认堆栈大小通常是 1MB,你可以尝试增加到 2MB 或更大。
  2. 启用详细的垃圾收集日志

    • 以便更好地监控垃圾收集情况和内存使用情况:
      -Xlog:gc*:file=gc.log:time,uptime:filecount=5,filesize=10m
      
  3. 启用崩溃日志

    • 以便在 JVM 崩溃时生成更多的调试信息:
      -XX:+CreateCoredumpOnCrash
      -XX:+HeapDumpOnOutOfMemoryError
      -XX:HeapDumpPath=/path/to/dump
      
  4. 增加初始堆内存和最大堆内存

    • 例如:
      -Xms512m
      -Xmx2g
      

最终优化后的内容,目前使用中暂时未遇到闪退
文件路径 /Applications/FinalShell.app/Contents/app/FinalShell.cfg

[Application]
app.classpath=$APPDIR/finalshell.jar
app.mainclass=st
app.classpath=$APPDIR/lib-run/bcprov.jar[JavaOptions]
java-options=-Djpackage.app-version=4.5.2
java-options=-Dsun.java2d.opengl=true
java-options=-XX:MinHeapFreeRatio=20
java-options=-XX:MaxHeapFreeRatio=40
java-options=--add-exports=java.desktop/com.apple.eawt=ALL-UNNAMED
java-options=-Xss2m
java-options=-Xms512m
java-options=-Xmx2g

http://www.ppmy.cn/embedded/108367.html

相关文章

【Dash】feffery_antd_componenet 中的 AntdSpace

一、feffery_antd_componenet 中的 AntdSpace feffery_antd_components&#xff08;简称fac&#xff09;中的AntdSpace组件是一个基于Ant Design的Dash第三方组件&#xff0c;它用于在水平或垂直方向上放置多个元素&#xff0c;并提供元素之间的间距。以下是AntdSpace组件的一…

C++常见异常汇总(二): undefined reference to

文章目录 1、undefined reference to A2、undefined reference to vtable2.1 模版函数定义方案1&#xff1a; 定义与实现均一起定义在头文件中2.2 模版函数定义方案2&#xff1a; 定义的同一个文件中&#xff0c;显示声明具体类型 3、multiple definition of 1、undefined refe…

Docker配置Redis持久化

场景 使用Docker拉取的Redis&#xff0c;从docker中启动redis容器&#xff0c;默认是没有配置文件的 持久化 RDB&#xff1a;按照一定的时间间隔定时以快照的形式保存&#xff0c;也可主动触发AOF&#xff1a;以记录日志的方式进行保存Redis持久化方式&#xff0c;目前有RDB…

云手机怎样简化海外社媒平台运营

随着越来越多的卖家希望拓展海外市场&#xff0c;运营TikTok、Facebook等社交媒体平台已经成为吸引流量和促进销售的重要手段。然而&#xff0c;在管理海外社媒账号的过程中&#xff0c;许多人会面临网络连接的问题。这时&#xff0c;使用一款高效便捷的云手机工具就显得尤为便…

CocosCreator中使用protobuf

(前提) 工欲善其事,必先利其器. 要想在CocosCreator中使用protobuf,我们首先要安装NodeJs.安装教程可参考Node.js安装及环境配置详细教程_nodejs安装及环境配置-CSDN博客,已经很详细了.NodeJs自带npm, 我们要用npm下载protobufjs.可能你会问npm是什么? npm是NodeJs自带的包管理…

机器学习(西瓜书)第 5 章 神经网络

5.1 神经网络模型 什么是神经网络&#xff1f; “简单单元”&#xff1a;神经元模型 神经网络中最基本的成分是神经元(neuron)模型&#xff0c;即上述定义中的“简单单元”.在生物神经网络中&#xff0c;每个神经元与其他神经元相连&#xff0c;当它“兴奋”时,就会向相连的神…

docker-compose安装mysql8集群

我这里一主两从mysql数据库集群,mysql镜像版本是8.0.39 如下 如下&#xff1a; [rootVM-20-8-centos mysqlData]# docker-compose ps NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS mysql-master …

标准库标头 <filesystem> (C++17)学习

此头文件是文件系统支持库的一部分。本篇介绍filesystem命名空间的一些函数。 函数 在命名空间 std::filesystem 定义 absolute (C17) 组成一个绝对路径 (函数) canonicalweakly_canonical (C17) 组成一个规范路径 (函数) relativeproximate (C17) 组成一个相对路径 (函数) c…