Unity 游戏的 string interning 优化

Unity 游戏的 string interning 优化

问题描述

在开始之前,先说一下这个问题为什么很容易被忽视吧。

通常情况下,我们难以注意到运行着的 Unity 程序内 string 的实例化情况。这些字符串的创建,销毁的时机是否合理,是否存在有重复 (相同内容的字符串),冗余 (存有已不再有意义的垃圾字符),低效 (capacity 远大于 length),以及泄漏 (没有在期望的时机及时销毁) 的情况就更容易被忽视了。由于 string 没法随时像普通的 Unity 对象那样通过调用 Object.GetInstanceID() 来查看实例id,我们不太容易感知字符串......

秒打时间戳 (日常生活中有哪些十分钟就能学会并可以终生受用的技能?)

题图引自 timestamp.io

上周在知乎上答了一题:

日常生活中有哪些十分钟就能学会并可以终生受用的技能?

说一个微不足道只要 1 分钟就能 get 的小玩意,但是没想到真正改变了我的工作习惯,每天都要用到数十次。

我有一个开机启动的 AutoHotkey 脚本,里面设置了一些常用的环境配置,这样每到新的机器上直接把这个文件拖过来双击一下就是自己熟悉的环境了。

这个脚本里其他的就不说了,下面三个快捷输入的使用频率最高:

::[d::

FormatTime, DateString, , [yyyy-MM-dd]

SendInput %Da......

CppCon 2014-2016 选荐合辑

用了两个周末,快速过了一遍 CppCon 2016 的 112 个演讲,筛出了下面我觉得最有价值的 18 个 (其中有八个 must-reads 标注了星号)。

文档的实际链接地址是:

https://github.com/mc-gulu/dev-awesomenesses/blob/master/awesome-cppcon.md

为了方便查看,这里直接使用该页面的截图 (如无意外不会更新)。在 awesome-cppcon 页面中,也包含了 CppCon 2014 时我挑出的 10 个值得一看的演讲及其它的相关信息。后续的更新和问题修复也都会出现在那里。

......

我的时间分配变迁记 (原问题:程序员工作中占时间最长的是哪个步骤?)

本文是前天晚上的一个答案,稍作修订,放到这里。

程序员工作中占时间最长的是哪个步骤?

下面的图表是我个人工作十年以来各项时间占用的大致变化情况。需要说明的是,这不是由精确的统计汇总而来,而只是大致估算;不是我认为理想的情况,而只是此期间实际发生的情况。

(__设计和实现__) 长期来看,你愿意花在设计和实现的时间,基本上取决于你对这项工作的热爱程度。我见过一些进入管理岗位的同事,这两项迅速地滑落至接近 0 的;也见过始终对编码本身情有独钟的——这并没有对错,只是不同个体的兴趣,权衡和选择。

(__测试和调试__) 总得来说,随着工程能力的提高,程序员的......

(Unity) 为动态加载的 C# DLL 添加调试支持

昨天遇到了一个 C# DLL 动态载入后调试信息缺失的问题,今天上午解决后记录一下,以便遇到这个问题的同学可以参考。

(注)此文中的截图内文字偏小,可以 Ctrl + 鼠标滚轮放大查看。

问题描述

我们知道,Unity 中的 Debug.Log() 系列函数不仅能输出用户内容,而且能通过类似 StackTraceUtility.ExtractStackTrace() 这样的机制把该输出对应的堆栈打出来;当用户代码出现未捕获异常时,Unity 也会利用该机制输出异常及相关的完整堆栈信息。

如这个函数:

void PrintStacktraceOrdinary()......

知识共享许可协议
本作品由Gu Lu创作,采用知识共享Attribution-NonCommercial-NoDerivatives 4.0 国际许可协议进行许可。