python+jpype+linux出现内存溢出问题解决方案
1.环境介绍:
python:Python 3.7.0 (default, Jan 15 2022, 11:08:54)
# 操作命令
[root@usercentertesttools-master-test-0001-5f4d55d75-vvzhb business]# python -V
Python 3.7.0 (default, Jan 15 2022, 11:08:54)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)]
JPype1:1.3.0
# 查询已安装模块的版本
[root@usercentertesttools-master-test-0001-5f4d55d75-vvzhb business]# pip list
Package Version
---------------------- ---------
bcrypt 3.2.0
certifi 2020.6.20
cffi 1.14.3
chardet 3.0.4
cryptography 3.1.1
idna 2.10
invoke 1.4.1
JPype1 1.3.0
mysql 0.0.2
mysql-connector-python 8.0.21
mysqlclient 2.0.1
paramiko 2.7.2
pip 21.3.1
protobuf 3.13.0
pycparser 2.20
PyMySQL 1.0.2
PyNaCl 1.4.0
redis 3.5.3
redis-py-cluster 2.1.3
requests 2.24.0
setuptools 39.0.1
six 1.15.0
tornado 6.0.4
typing_extensions 4.0.1
urllib3 1.25.10
JPype1 · PyPIA Python to Java bridge.https://pypi.org/project/JPype1/参考文档:了解jpype1的使用的满足条件
Linux:centos7 64位
[root@usercentertesttools-master-test-0001-5f4d55d75-vvzhb business]# uname -a
Linux usercentertesttools-master-test-0001-5f4d55d75-vvzhb 4.14.105-19-0020.1 #1 SMP Fri Apr 23 10:22:59 CST 2021 x86_64 x86_64 x86_64 GNU/Linux
2.问题
测试代码
import jpype
import pdbjava_path = ''
pdb.set_trace()
jpype.startJVM(jpype.getDefaultJVMPath(), '-ea', '-Djava.class.path={}'.format(java_path))
测试结果
[root@usercentertesttools-master-test-0001-5f4d55d75-vvzhb business]# python abc.py
> /code/www/utils/tools/business/abc.py(6)<module>()
-> jpype.startJVM(jpype.getDefaultJVMPath(), '-ea', '-Djava.class.path={}'.format(java_path))
(Pdb) n
Error occurred during initialization of VM
java.lang.StackOverflowErrorat java.lang.Object.<clinit>(Object.java:41)
3.解决方案
1)启动vm失败,原因是stackoverflowerror
查看java参数,其中-Xss<size> set java thread stack size
[root@usercentertesttools-master-test-0001-5f4d55d75-vvzhb business]# java -x
Unrecognized option: -x
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
[root@usercentertesttools-master-test-0001-5f4d55d75-vvzhb business]# java -X-Xmixed mixed mode execution (default)-Xint interpreted mode execution only-Xbootclasspath:<directories and zip/jar files separated by :>set search path for bootstrap classes and resources-Xbootclasspath/a:<directories and zip/jar files separated by :>append to end of bootstrap class path-Xbootclasspath/p:<directories and zip/jar files separated by :>prepend in front of bootstrap class path-Xdiag show additional diagnostic messages-Xnoclassgc disable class garbage collection-Xincgc enable incremental garbage collection-Xloggc:<file> log GC status to a file with time stamps-Xbatch disable background compilation-Xms<size> set initial Java heap size-Xmx<size> set maximum Java heap size-Xss<size> set java thread stack size-Xprof output cpu profiling data-Xfuture enable strictest checks, anticipating future default-Xrs reduce use of OS signals by Java/VM (see documentation)-Xcheck:jni perform additional checks for JNI functions-Xshare:off do not attempt to use shared class data-Xshare:auto use shared class data if possible (default)-Xshare:on require using shared class data, otherwise fail.-XshowSettings show all settings and continue-XshowSettings:allshow all settings and continue-XshowSettings:vmshow all vm related settings and continue-XshowSettings:system(Linux Only) show host system or containerconfiguration and continue-XshowSettings:propertiesshow all property settings and continue-XshowSettings:localeshow all locale related settings and continueThe -X options are non-standard and subject to change without notice.
2)在原有的启动的代码基础上加上
jpype.startJVM(jpype.getDefaultJVMPath(), '-ea', '-Djava.class.path={}'.format(java_path),'-Xss10240K')
3)在此执行时,运行成功。
附上在服务器上,python的debug命令
常用命令说明:
l #查看运行到哪行代码
n #单步运行,跳过函数
s #单步运行,可进入函数
p 变量 #b值
b 行号 #断点设置到第几行
b #显示所有断点列表
cl 断点号 #删除某个断点
cl #删除所有断点
c #跳到下一个断点
r #return当前函数
exit #退出
python+jpype+linux出现内存溢出问题解决方案相关推荐
- python会不会出现内存泄露_Python内存泄漏和内存溢出的解决方案
一.内存泄漏 像Java程序一样,虽然Python本身也有垃圾回收的功能,但是同样也会产生内存泄漏的问题. 对于一个用 python 实现的,长期运行的后台服务进程来说,如果内存持续增长,那么很可能是 ...
- python 内存溢出能捕获吗_Python内存泄漏和内存溢出的解决方案
一.内存泄漏 像Java程序一样,虽然Python本身也有垃圾回收的功能,但是同样也会产生内存泄漏的问题. 对于一个用 python 实现的,长期运行的后台服务进程来说,如果内存持续增长,那么很可能是 ...
- python内存泄漏解决方案_Python内存泄漏和内存溢出的解决方案
一.内存泄漏 像Java程序一样,虽然Python本身也有垃圾回收的功能,但是同样也会产生内存泄漏的问题. 对于一个用 python 实现的,长期运行的后台服务进程来说,如果内存持续增长,那么很可能是 ...
- python多线程内存溢出_Python内存泄漏和内存溢出的解决方案
一.内存泄漏 像Java程序一样,虽然Python本身也有垃圾回收的功能,但是同样也会产生内存泄漏的问题. 对于一个用 python 实现的,长期运行的后台服务进程来说,如果内存持续增长,那么很可能是 ...
- 转:记一次linux oom内存溢出排查过程
@转:记一次linux oom内存溢出排查过程 记一次linux oom内存溢出排查过程 2018年08月16日 14:13:49 enchanterblue 阅读数 4099更多 分类专栏: --- ...
- Java常见内存溢出(OOM)解决方案
Java 常见内存溢出(OOM)解决方案 一,jvm内存区域 1, 程序计数器 一块很小的内存空间,作用是当前线程所执行的字节码的行号指示器. 2, java栈 与 ...
- 位图引起的内存溢出OutOfMemory解决方案
位图引起的内存溢出OutOfMemory解决方案 作者:老帅 一.问题描述:Android下的相机在独自使用时,拍照没有问题,通过我们的代码调用时,也正常,但是更换了不同厂商的平板,ROM由Andro ...
- matlab memorySian,matlab内存溢出的解决方案
matlab内存溢出的解决方案(整理) 1)增加虚拟内存的方法是不可行的 2)使用PACK:PACK可以将matlab中的变量导出到磁盘中,以增加可用内存 3)减少变量的内存开销 4)64位架构:采用 ...
- linux weblogic 内存溢出,weblogic10内存溢出解决方法
在开发过程中经常会遇到weblogic内存溢出问题,用下面的办法解决了. 找到domain/bin下的setDomainEnv.cmd文件,里面可以找到以下四行代码,将值该打一倍,重启服务. set ...
- 连接oracle内存溢出,Linux主机内存溢出导致oracle的SYS用户无法正常登陆
一般情况下,ORACLE DBA看到如下情况的第一反应是,数据库实例没有启动或者是数据库环境变量没有设置正确,今天遇到的情况均不是以上两种情况,有点特别,且来看看为哪般. oracle@POC-SV1 ...
最新文章
- Android:你好,androidX!再见,android.support
- 如何从失焦的图像中恢复景深并将图像变清晰?
- Tungsten Fabric SDN — Service Chain — HA/LB
- 更改数据库对象所有者
- javascript的缓动效果
- Atom 相关配置备份
- 无人化运维离我们有多远?阿里智能化运帷平台深度揭秘
- 用C语言实现数组反序
- post postman 传递数组对象_如何使用postman做接口测试
- python解释器、pycharm安装及环境变量配置
- iphone pageController 的实现
- 【硬刚Hive】MYSQL/HIVESQL笔试题(七):HIVESQL(七)
- web前端数据可视化框架汇总
- 十一、看门狗定时器实现1秒定时
- [源码阅读]解析Anime(JS动画库)核心(1)
- 看看乔帮主留下的世界
- html视频怎么改大小,视频画面尺寸重置-视频画面大小调整的方法哪个好,视频尺寸怎么修改...
- 【软件安全:软件安全技术课后习题及答案】
- 控制儿童在什么时段使用计算机,win10系统设置控制孩子用电脑的时间的图文步骤...
- Genexus 15 安卓SDK配置项
热门文章
- 恒德可视化指挥调度解决方案
- QListView text动态显示
- y = mapminmax(‘apply‘,x,ps)与mapminmax(‘reverse‘,y,ps)
- Js封装组件 + Slots插槽
- 分布式架构网络通信——netty
- 用于 3d 渲染应用程序的常见物体 IOR(折射率)值
- 【040】翼辉信息与中国通号集团战略合作签约仪式圆满举行
- OpenCV 直方图均衡化
- PC防光护眼专家Iris Pro绿色特别版 傻瓜式软件
- CUDA各版本官方下载地址