Origin of Ray

一起探索互联网的秘密

我们在将Unity打包成il2cpp+release模式的apk的之后,内部的代码是会被打包成so文件的,这个东西其实是linux的动态链接库的格式,对应的就是windows的dll或者Mac的dylib之类的东西。在android这边也可以叫做符号表,因为它内部会保存虚拟内存地址与汇编代码的的对应关系。

这样打包以后,会降低我们的包体积,而且有助于我们的代码保护不被抄袭,但是同时也会导致我们开发者看不懂报错信息,因为这些报错信息都是些虚拟内存地址,而不是函数的名字,那么对于线上发生的报错信息,我们怎么去阅读呢?

阅读全文 »

最近发现Unity项目在运行过程中消耗了很多的内存,而且会出现的很频繁的GC导致游戏的CPU过热。于是去阅读了一下官方的最佳实践文档,了解了一些Unity的内存管理的知识,稍微总结一下。

阅读全文 »

随着使用的逐渐增多,慢慢受不了在对这些概念的模糊的情况下使用了,所以找了些官方文档来学习一下C#中的这些概念,主要是为了区分委托(Delegate),事件(Event)。

其实我个人在读文档之前一直是对这些概念很模糊的,甚至一度被网上的各种博客绕晕了,甚至把Action,Func和委托都混淆了。

终于在我去读了官方的文档之后,我才对这些概念有了一些认知。

首先抛出最重要的结论,委托和事件都是为了提供后处理函数的方式,事件其实也是基于委托的多播的,而每次使用委托都要定义一个新的委托类型不方便,所以又提供了两种强类型的委托,就是Action和Func。

阅读全文 »

需求背景

游戏房间上限最大可以有count个人,当用户进入房间后,需要去远程服务器获取这count个人物的服装配置, 获取成功以后进行逐个加载。
目前的方案是一次性获取所有人物的配置,然后以一种几乎同时加载的方式去做。
这种方案最坏的情况下会同时有count个换装的任务在运行,导致count个任务之间抢占CPU,结果就是看起来卡顿。
为了使游戏的表现更加流畅,需要设计一种方案进行有优先级的批量加载。

阅读全文 »

我们都知道,计算机的核心是CPU,而CPU就是运算器和控制器,其作用就是进行数学运算。

想要理解CPU工作的原理,就要从两方面着手,一方面是计算机中的数据是如何表示的,另一方面就是在这种表示方式下,它的运算规则又是怎样的,计算机如何用电路去表示这种运算。

阅读全文 »

这周在尝试对一个场景进行烘焙是,在引入了两个超大的地形之后,重新烘焙,遇到了两个问题,第一个问题,地形的某些地方出现了大量的黑斑,第二个问题,我的光照贴图数量飙升,从3个升到了16个。

询问了一下其他大佬的的意见,是因为地形过大的原因。

阅读全文 »

计算机系统性能的好坏,很大程度上是由软件的效率和作用来表征的,而软件性能的发挥又离不开硬件的支持。对于某一个功能,其既可以用软件实现,又可以用硬件实现,这叫做软硬件在逻辑上是等效的。在设计计算机系统时,要进行软硬件的功能分配。通常来说,如果一个功能使用较为频繁而且用硬件实现的成本较为理想,应该采用硬件来实现,因为硬件实现的效率一般比较高。

阅读全文 »
0%