推荐一个不是Github,在Bitbucket上开源的官方项目Unity Memory Profiler
Unity-Technologies / MemoryProfiler - Bitbucket
用起来是长这样的:
和这样的:
上图的都是每个内存对象。
不同颜色是不同类型的资源,比如贴图、声音。
相同颜色下是不同大小的矩形排布。非常直观能看出哪里占用内存多,点进去能看到谁在占用。
开发者可以通过抓取两次快照进行对比,很清楚发现哪里有内存泄露,多引用了哪张个字库,某张贴图开销有多大等等。
比如在我最近的项目当中就很轻松地用它发现了冗余的字库引用、音频流内存泄露(语音功能,挂机一晚上能达到2GB),瞬间内存占用就小了20%,只花了我5分钟的事情。。必须赞一个
<hr/>12.22更新:
还蛮多人阅读,在NEXT Studio工作的那段时间里,我几乎看遍了所有Unity能用的免费/收费的工具。
那我再多提一个推荐的项目吧:
Tayx94/graphy用起来是这样的
和这样的
无法测量就无法做好,所以一个易用的测量工具本身就能让性能优化事半功倍。
Graphy的功能就是将程序运行关键统计信息可视化,而且也很容易改造成自己想要的样子,工具还提供了一个换皮功能- -!
比如第一张图是我做的游戏里面的截图,在最下面增加了RTT延迟和每秒的逻辑流量、语音流量统计。
可视的网络统计数据让我很容易地考虑:是否应该做下流量压缩、同步预测效果出问题是什么导致、需要什么样的统计环境下可以重现问题。
12.27更新:
最后分享一个我常用的好工具:clumsy
clumsy, an utility for simulating broken network for Windows Vista界面如图
类似的网络工具:
Mac也有一个network link conditioner,但是功能比较有限,无法模拟延迟抖动。
Win10以下的话可以用Network Emulator for Windows Toolkit。鹅厂手游就是用这个工具模拟弱网络测试。可惜不支持Win10。
clumsy是一个网络测试工具,可以很方便地模拟延迟、网络抖动、乱序、复制等等问题,
这些问题往往需要你等到上线才发现,这时候就到了后期,常常解决起来要么很困难找到原因并且重现,要么就是解决成本很高。有这个工具的话,就可以本地测试,在早期就解决于萌芽当中。
还有最常用的用法就是测试同步效果,比如怎么的同步策略,既能做到平滑(对抗抖动)又能做到及时(低延迟),而且碰撞效果好(一致性)。有网络抖动开关就非常方便地查看效果。
-End- |