一、背景 公司有一个中间的系统A可以对接多个后端业务系统B,一个业务系统以一个Namespace代表, Namespace中包含多 ...
关于 Unity 项目中的 Mono 堆内存泄露 题记:这是补一篇应该在将近一年前就应该写的记录,今天终于补上。 内存泄露是一个老话题了,之前我专门写过一篇 排查 Lua 虚拟机内存泄露 的文章,并且附带了一个工具来查找 Lua 中具体的内存泄露。但是这只是整个 Unity 项目中内存泄漏的一小部分,C 代码中一般内存泄露可能会更加严重。 我们之前发现无论在 Profiler 还是工具测试,随着战 ...
2017-09-20 21:05 0 2382 推荐指数:
一、背景 公司有一个中间的系统A可以对接多个后端业务系统B,一个业务系统以一个Namespace代表, Namespace中包含多 ...
最近研究了下Unity对Dll的调用。查了一些资料,总结如下。 为什么要用DLL? 答: 1:你选择用来开发的编程语言并不被Unity支持(如 F#),这个时候你就可以考虑把这样的代码编译成DLL文件。 2:你并不想让代码公开,只是想提供调用接口,那么DLL是一个很好的选择 ...
unity中减少堆内存分配以减少垃圾回收处理:只有局部变量且为值类值的变量是从stack栈中分配内存,其它所有情况都是从heap堆中分配内在。* 缓存获取到的数据。* 频繁被调用的函数中尽量少的分配空间。如Update函数,缓存变量或者增加时间判断每延迟多少时间后再执行一次而没必要每帧执行 ...
导读 Netty 是一个异步事件驱动的网络通信层框架,用于快速开发高可用高性能的服务端网络框架与客户端程序,它极大地简化了 TCP 和 UDP 套接字服务器等网络编程。 Netty 底层基于 JD ...
Native Memory Tracking (NMT) 是Hotspot VM用来分析VM内部内存使用情况的一个功能。我们可以利用jcmd(jdk自带)这个工具来访问NMT的数据。 NMT介绍 工欲善其事必先利其器,我们先把相关需要的配置和工具介绍清楚,再通过例子来看看具体如何使用 ...
一、Mono原理 此处简单介绍下Mono这个奇葩,主要通过Mono可以轻松实现跨平台,目前使用Unity开发手游Android平台大多使用Mono实现,但是诛仙手游使用il2cpp技术。具体il2cpp知识大家可以度娘。 二、内存分配机制 上图为内存分配策略,但是在此结合 ...
前几天看到开源工具MLeaksFinder,决定用在公司的项目中试一下,效果很不错,用法也很简单,直接把项目文件夹拖到项目中就可以了,依靠这个项目,我发现公司项目中有不少内存泄露的地方,在此总结一下: 1、block中用引用外界对象一定要先__weak,否则容易引起循环引用 ...
内存泄漏 内存泄漏是指程序在申请内存后,无法释放已申请的内存空间,无用对象(不再使用的对象)持续占有内存或无用对象的内存得不到及时释放,从而造成内存空间的浪费。内存泄漏最终会导致OOM。 造成内存泄漏典型场景: 1. 单例模式的不正确使用单例对象在初始化后将在JVM的整个生命周期中以静态 ...