0%

proxy库是微软推出的一个非继承式的多态实现。无论从性能来看还是侵入性来看,proxy 都是一个对api设计比较友好的库。
proxy在3.0版本中更新了使用方式,改进了之前写法过于难懂(丑)的问题。因此如果在业务中有需求的还是可以一试。

阅读全文 »

一般游戏引擎都是使用c++实现逻辑,再通过一个虚拟机实现用脚本语言维护业务逻辑。因此在安卓下进行一层包装是十分必要的,使得引擎能够和安卓接口交互,也能正确地管理生命周期。

阅读全文 »

Cap’n Proto是一个高性能的数据交换格式,而且还附带了一套性能优良的RPC框架实现。是Protobuf2的作者Kenton Varda于 2013 年 4 月开源发布的,开源10年之后也在23年发布了第一个稳定支持版本1.0。
Cap’n Proto号称编解码接近0开销,比protobuf快无数倍。当然我们想想也知道这是个不现实的事情,但是能这么说肯定是它在速度上有两把刷子,因此本文我们就来分析看看它的编码格式究竟是什么样的,以及实际使用上会有什么优缺点。

阅读全文 »

C++中,我们使用atomic时会发现相关操作都有一个可选的参数std::memory_order,本文就分析以下这几种memory_order的用法,以方便大家写出更加高效的多线程代码。

阅读全文 »

在日常工作中,我们经常会遇到使用静态变量来保存唯一实例,例如著名的Meyer单例模式,可以在c++11的下不经过加锁就能实现线程安全的单例模式。但是静态变量如果在析构函数中也引用到了其他静态变量(最常见的就是Logger实例是一个静态变量时,在析构函数中记录了日志)。
本文中我们探讨了如何使用placement new绕开静态变量生命周期的问题。

阅读全文 »

在云原生的开发下,POD一般都需要自动扩缩容以适应业务的开发环境(否则不如直接部署在VPS上了)。传统的HPA会使用CPU或者内存来扩缩容,但是对于某些特殊业务,我们会根据自定义指标(例如qps,特殊资源的使用情况)来决定是否需要扩容。

阅读全文 »

由于redis cluster不支持事务,在一些原子性的操作时无法使用Multi。因此lua脚本成了最合适的选择,但是由于rediscluster下多个slot的问题,使用lua稍不注意会导致很多问题。

阅读全文 »