跳至正文

技术

论抽象还得是C++

最近刷leetcode挺多的,在学算法的同时,还通过其他人的代码学了不少C++新标准的东西。
今天看到Split和Join,轮抽象还得是C++啊。
实现Split是很多语言都有的基础功能,C++迟迟没有推出,是因为有杠精觉得为什么一定要用std::vector呢?不能用std::list吗?
然后这[……]

继续阅读

游戏中AOI的思考

  • 技术

AOI的概念

AOI(Area Of Interest),通常是指服务端对玩家感兴趣领域的划分的技术。
这个技术的应用场景是服务端存在非常多的单位,客户端不需要渲染所有的单位,服务端也可以避免将所有单位的信息广播,所以其目的是降低客户端的渲染压力、减小服务端的带宽压力。

这个问题的指导思想就是:世界[……]

继续阅读

修复了虚幻旋转的bug

  • 技术

昨天通宵定位修复了之前demo移动有问题的bug,还挺开心的,一个可能是因为误差导致的悬空,另外一个是官方的bug,也是我改了bug的同事还给官方提供了一个request,希望能过。

[……]

继续阅读

了解一下boost的fiber

fiber是纤程,用户级纤程,在用户层提供调度管理器,可以在系统线程上切换纤程,它主要的好处:

  • 切换非常快,按照boost的数据,快100倍[1]
  • 纤程访问父线程的数据不需要加锁,因为不具备竞争;
  • 基于完全同步的写法来实现的fiber阻塞和切换;

引用

  1. https://www.boost.o[……]

    继续阅读

文件系统对比 btrfs vs zfs

btrfs vs zfs

btrfs是一个支持写时复制的文件系统,同时zfs是另外一个也被广泛使用的文件系统。

btrfs使用红黑树,zfs使用另外一套技术,zfs在大型机器上似乎是被广泛使用,处理大型文件的性能上优于btrfs,并且存储文件没有上限,btrfs文件数量上有上限,同时处理小文件更快。[……]

继续阅读

python 源码路径组织

python源码路径组织:

  • Include: 包含了python提供的头文件,如果需要自己编写扩展python,需要用到这里的头文件;
  • Lib: 包含python自带的标准库,都是用python写的。
  • Modules: 包含所有C语言编写的模块,都是对速度要求比较高的模块。
  • Parser: 包含解[……]

    继续阅读

C++ 继承和虚拟继承的内存分布

  • 技术

菱形继承

菱形继承:菱形继承的问题在于数据冗余和二义性。

将子类转化成爷爷类的时候会报错,因为不知道要转化到哪个类上去,这里需要加入static_cast才行。爷爷类会在两个父类中都被定义,解决的办法是:虚拟继承。

虚拟继承让被菱形继承的父类只会存在一份,消除数据冗余,那这里就得问一下,内存是如何布[……]

继续阅读