两天时间“帮”同事解了一个多线程问题
下游就是这么苦,上游一句“我这没事啊”,问题就成了你的了。拼了老命、挠破头皮地搞了一天,发现实在是找不出问题,还得想尽办法把问题定位到上游的“黑盒盒”里,人家才会不疾不徐地开展工作。
遇到这种同事能怎么办?我只能在心里暗爽:嘿嘿,又“帮”儿子解决了一个 bug。
这次的故事是这样的。
下游就是这么苦,上游一句“我这没事啊”,问题就成了你的了。拼了老命、挠破头皮地搞了一天,发现实在是找不出问题,还得想尽办法把问题定位到上游的“黑盒盒”里,人家才会不疾不徐地开展工作。
遇到这种同事能怎么办?我只能在心里暗爽:嘿嘿,又“帮”儿子解决了一个 bug。
这次的故事是这样的。
最近在搞的一个 Unity 项目是以插件形式运行在服务端的,对内存碎片问题有比较高的要求,正好有机会深入学习了下 Unity 的 GC。这篇文章便是从 Unity 2019.4 官方文档 Garbage collection best practices 翻译、摘要而来。
自动内存管理让你写起代码时又快又简单,还能减少出错。但是这种便利有可能带来性能影响。为了优化代码以提高性能,你必须避免频繁触发 GC 的情形。
Unity 是微软旗下的跨平台游戏/应用开发工具,C# 自然成为其首推支持的前端开发语言。C# 虽是从 Java 脱胎而出,经过近二十年的独立发展,已经成长为一门明显优于 Java 的现代化语言(这当然是我个人的主观见解)。我也发愿以此项目为起点,重新掌握 C#/.NET 的技术体系。
开发阶段用的是 UnityEditor.EditorUtility.OpenFilePanel()
函数,简单易用。但是如其名所示,UnityEditor
只在 Unity 编辑器内可见,尝试 build 出 Windows 下 standalone 包时会报编译错误。
解决办法是用 mono 库下的相应功能实现打开文件。