Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

haitor888/il2cppMemoryProfiler

Repository files navigation

Unity MemPerf

UnityMemperf是一款专为Unity引擎安卓平台IL2CPP运行时打造的高性能内存分析、泄露检查、快照对比工具

参考PerfAssist进行功能开发,通过安卓注入技术,实现了连接USB即可实时抓取内存快照的功能

目前支持Windows7/10与MacOSX(Mojave+),Windows需提供Python2.7

目前测试过的支持的安卓版本为:7,8,9

目前测试过支持的Unity为:5.6.6f2,2018年3月13日f1,2019年2月9日f1

注意:请关闭AndroidStudio、UE4等可能占用ADB的程序再使用本程序!

程序下载使用手册

注意:此程序仍处于初级研发阶段

特性

  • 可以Profile安卓平台Debuggable的Unity程序
    • 已验证版本:Unity5.6.6f2,Unity2018.3.13f1
  • 操作简单:只需连接手机,选择并开启程序即可开始抓取内存快照
  • 实现了大部分PerfAssist的交互功能
    • 记录选择操作历史,方便回看
    • 展示Managed对象字段数据,引用数据等底层信息
    • 可对不同内存快照进行Diff操作,方便检查Managed内存泄露
  • 从手机端实时获取内存快照数据(仅含IL2CPP运行时,不包含UnityNative信息)
  • 网络包使用LZ4压缩以加快收发速度
  • 运行流畅(使用C++与QT开发)
  • 同时支持Windows 10与Mac OSX(Mojave+)操作系统

计划

短期计划

  • 验证并支持更多版本的Unity引擎
  • 发现并优化用户体验相关问题
  • 计划中 ...

技术选择

我通过JDWP( Java Debug Wire Protocol)技术进行对Unity安卓程序的动态库注入

在动态库的 JNI_OnLoad 中对 Profile 程序进行初始化(开启 TCP Server,开启检测线程等)

在JNI_OnLoad函数中,通过dlopen与dlsym可以获取到 il2cpp_capture_memory_snapshot 函数接口,通过此接口即可实现远程操控的内存快照截取操作

编译

环境

  • QT 5 或更高
  • QT Creater 4.8 或更高
  • C++11 编译器
  • Android NDK r16b 或更高(如需自行编译安卓插件)

链接

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /