加载中
Lite2D的渲染线程尝试

项目地址 https://github.com/dreamyouxi/Lite2D 注意: 1.GL只能和一个线程相关,所以纹理产生,初始化等都要放到渲染线程。 2.双缓冲默认是垂直同步的 可用 glfwSwapInterval; 来设置 GL A...

2016/10/17 21:04
69
asio::async_write 的坑

同一个socket 的async_write操作内部是调用async_write_some 去执行的,在WriteDone之前,如果再次调用async_write 会导致 发送的stream顺序错乱, 典型复现是, boost::asio::async_write(s...

09/27 10:41
91
asio下的C++多线程模型

分为2大块,网络 和 逻辑 网络多线程话其实是很容易的,包含了协议解析加密压缩socket等常规操作。 设计难点在于游戏逻辑的多线程处理,满足 易用 和 高性能(尽可能避免可避免的锁) TODO...

09/03 21:43
52
io_service线程安全队列效率

boost::asio::io_service 的本质是一个消费者模型 多线程环境下 效率测试 空转的话效率大概是150W QPS, 模拟find操作的话是80W QPS, std::map<int, int> _x; int QPS_WRITE = 0; io_service...

08/30 10:58
52
Redis cluster eval的使用

对于eval 有一个很大的约束在集群模式下,即lua所用到的key必须在该节点上 因此可以借助solt来发送到指定的key存在的节点上 因此需要redis-client 正确处理 key 方法1: 通过client显示指定k...

lua cjson数字问题

在cjson的lua5.3版本中,对于数字 都是按照double来处理的 需要修改一下源代码 来正确处理 integer 还是double 添加类型 T_INT 表示 整数 static void json_next_number_token(json_parse_t ...

07/23 16:54
77
编译cjson到dll

https://blog.csdn.net/mengzhisuoliu/article/details/52203724 编译完成后 是纯lua实现的json decode 的10倍以上 Unity客户端是10倍 服务器是18倍......

07/21 17:17
61
unordered_map 随机元素

对于hash的结构来说 思路1:直接随机内部list 即可,但是数据量大的话 iter 要定位起来是个很麻烦的事情 思路2:先随机到一个可用bucket 然后再里面随机一个元素即可 这样存在一个问题,就是...

07/17 14:44
83
全局静态变量析构和线程结束先后顺序问题

主线程main退出后 全局变量mutex 没有在 子线程销毁后销毁(析构) 问题:主线程main退出后 detach后的子线程(C RT托管)和 全局静态变量(生命周期CRT托管)析构 的先后问题。 翻了一遍CRT源码...

04/06 15:00
52
模板内部模板的初始化

对于局部静态的初始化很容易,如果是全局变量的内部模板类的初始化就是一个问题了 老是编译不过 比如 就会编译错误 改为 编译通过 但是 还是没有初始化ctor 引用还会导致编译错误 未找到符号...

04/06 10:07
9
C++对象池以及shared_ptr的支持

对象池 和 支持对象池的shared_ptr 性能测试 数字的单位是微妙 分配5万个 1kb的object 10 kb 100kb 500b 128b 因此 只考虑对象分配速度问题的话 大于 512的对象推荐使用pool版本 第一个是:自...

04/04 20:38
40
io_service 多线程化

由于单线程设计一台8核机器 15个进程 浪费了15个端口 考虑 合并到一个进程里面以共享端口,但是设计和代码书写方式还是按照单线程来设计 一个io_service hold 了一个GameApp对象 操作该app对...

03/30 18:20
6
环形无锁队列-版本1

环形无锁队列,某些情况下又叫做 ring buffer 在底层代码的消息收发过程中一般收和发 也就是读写分开处理的,即一个读线程,一个写线程,这种类似于逻辑上的读写2线程操作,情况下的线程安全...

2017/10/06 17:46
65
sigbus内存错误

编写跨平台代码时,ARM不支持非对齐的内存访问,x86支持,跨平台C++代码容易出现以下问题 sigbus意思是该地址有效,但是总线不能读取,具体错误信息有以下三种 BUS_ADRALN 未对齐的内存 BUS_...

2017/05/13 19:10
414
Redis Asio异步

https://github.com/jinq0123/hiredis-boostasio-adapter

2017/02/13 15:26
38
笔记1

1.模板的实现可以用另外一个文件来实现,h文件中include既可以了,文件名随意(实现分离思想) 2.#define NAME(WHAT) #WHAT 这个宏可以吧名字变为const char* 3.std::enable_shared_from_thi...

2017/01/10 17:53
12
全局变量栈内存分布

class AA{ public: int a; AA(){ cout << __FUNCTION__ << endl; } }; class BB{ public: char a; BB(){ cout << __FUNCTION__ << endl; } }; class CC{ public: int a; CC(){ cout << __FUN...

2016/09/26 16:21
12
C++位域内存分布

传送门 https://msdn.microsoft.com/zh-cn/library/ewwyfdbe.aspx

2016/09/26 14:08
21
小大端

intel x86是小端(高位存放在高地址,和我们逻辑是一样的),网路字节是大端(低位放在高地址) bool isBigEndian() { unsigned int x = 0x01020304; // 低字节0x04 return *((unsigned ch...

2016/09/22 21:55
19
栈变化

栈增长地址由高往低,堆由低往高 不仅struct 要对齐,之前就觉得奇怪,struct对齐的好处,栈这些怎么就没有,现在验证了,的确也有,不过对齐规则不太一样,栈临时变量也要对齐 在关闭RTC 检...

2016/09/22 20:54
17

没有更多内容

加载失败,请刷新页面

返回顶部
顶部