当前位置: 首页 > article >正文

【java-ffmpeg】java 内存测试和集成

内存监控

最近在用javacpp 挂ffmpeg来用,写完代码想监控一下内存,发现jprofile的内存监控不到jni的内存。在linux上想了一个土方法,监控进程的内存。用脚本循环读取。这里不像C++进程只读取VmRSS,即驻留内存。在JNI里VmRSS应该是指JVM的内存,JNI的内存属于动态库的内存,算在了虚拟内存VmSize里,具体原因没有去探究。
脚本如下

#!/bin/bash

nohup java -jar xxx.jar > nohup.log 2>&1 &

pid=$!

# 检查进程是否存在
if ! ps -p $pid > /dev/null; then
    echo "进程ID $pid 不存在"
    exit 1
fi

# 循环读取并打印内存信息,直到进程结束
while true; do
    # 读取/proc/pid/status中的VmSize和VmRSS字段
    vm_size=$(cat "/proc/$pid/status" | grep VmSize | awk '{print $2}')
    vm_rss=$(cat "/proc/$pid/status" | grep VmRSS | awk '{print $2}')

    # 打印内存信息
    echo "进程ID: $pid"
    echo "虚拟内存大小 (VmSize): $vm_size kB"
    echo "实际使用的物理内存 (VmRSS): $vm_rss kB"

    # 检查进程是否还在运行
    if ! ps -p $pid > /dev/null; then
        echo "进程ID $pid 已经结束"
        break
    fi

    # 等待一秒
    sleep 1
done

这样编译一个循环执行任务的测试程序,长期执行看内存有没有增长。

编译目标

maven 里引入ffmpeg-platform会把所有平台的包都拖下来,打包出来260M+,
参照 https://github.com/bytedeco/javacpp-presets 的readme,里面有一个链接指向了 https://github.com/bytedeco/javacpp-presets/wiki/Reducing-the-Number-of-Dependencies
执行

mvn -Djavacpp.platform.custom -Djavacpp.platform.host -Djavacpp.platform.macosx-x86_64 -Djavacpp.platform.windows-x86_64 package

在idea里使用 Execute Maven Goal 热编译在这里插入图片描述![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/94f933d94889456c840d090e03789a81.png
在这里插入图片描述
选择了三个平台,打包出来减小到69M


http://www.kler.cn/a/401799.html

相关文章:

  • pytest结合allure做接口自动化
  • 【Pythonr入门第二讲】你好,世界
  • k8s上部署redis高可用集群
  • 【qt】控件3
  • ATmaga8单片机Pt100温度计源程序+Proteus仿真设计
  • 贪心算法入门(三)
  • 第二十五章 TCP 客户端 服务器通信 - TCP 设备的 READ 命令
  • 打开AI的黑盒子——机器学习可解释性!
  • 网络安全进阶
  • 【技术开发】接口管理平台要用什么技术栈?推荐:Java+Vue3+Docker+MySQL
  • 在MacOS中Finder中通过路径来导航
  • RabbitMQ高可用
  • 《Python浪漫的烟花表白特效》
  • 【动手做】安装Miniconda和jupyter notebook环境实现线性回归
  • Conda 安装纯净版ComfyUI
  • 使用EventLog Analyzer日志分析工具监测 Windows Server 安全威胁
  • 【WPF】Prism学习(五)
  • 无人机航测技术算法概述!
  • ubuntu20.04的arduino+MU编辑器安装教程
  • C++代码优化(五):虚函数的开销和优化方式
  • 初始Python篇(6)—— 字符串
  • 人工智能学习——前言
  • 2024年第十四届APMCM亚太杯数学建模A题B题C题思路+代码解析汇总
  • MATLAB用到的矩阵基础知识(矩阵的乘和矩阵的逆)
  • Axure9生成的阅览页面如何自动展开左侧页面导航?
  • CSS基础也要进行模电实验