加载中
!!停止维护!开源中国博客搬迁至个人网站!!

新博客地址 : http://dreamyouxi.com/blog 个人网站 : http://dreamyouxi.com/ 以前从个人网站搬迁至开源中国,现在又搬迁回去 =,=...

07/21 20:14
250
C#和C/C++混合编程系列1-概述

引入C#主要是为了降低开发难度,特别是战斗服部分,相比使用lua具有高性能,双端开发等优势。 引擎主体还是C/C++实现。这一点和Unity就很像了,引入C#主要应用场景是游戏逻辑开发(主要是战斗...

Lite2D的渲染线程尝试

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

2016/10/17 21:04
302
Http服务器-第五步加入lua来编写动态网页

原打算加入php支持,遇到了点小问题,因此打算用lua来编写动态网页 基本原理:通过分析url请求,吧请求参数传递给lua处理,lua返回处理后的数据,然后C++端返回给浏览器 ScriptCore.cpp #in...

Lua
2016/09/14 12:35
853
linux下编译mono

先把mono的静态库和动态库编译出来,下载源代码。本文编译的版本为mono-6.8.0.123 注意:源码要从 https://download.mono-project.com/sources/mono/ 这里下载。github上面下载会缺失文件 先...

StickEngine-架构12-通信协议

分析 pb json 自定义二进制 各自适用场景 和自定义二进制和pb深度性能分析和挖掘(内存解析速度带宽等) TODO

08/04 10:20
1.2K
StickEngine-架构11-消息队列(MessageQueue)

整体概述是 https://my.oschina.net/kkkkkkkkkkkkk/blog/3190865 这里的 消息队列(MessageQueue) 和广义的概念有点区别,这里是为了解决服务器点对点通信中的多信道。 常规IPC方案之一是服务...

08/02 11:03
1.2K
C#和C/C++混合编程系列4-调试C#代码

先阐述mono生成的exe如何进行调试,再说明混合编程下如何对C#代码进行调试。 调试工具是vscode的SDB mono debug 扩展 1.打开vscode 安装mono debug扩展。 2.mcs命令行编译下图代码 mcs -deb...

07/30 14:08
1.4K
Http服务器-第十步加入基于Mono平台的C#脚本支持

该篇是Http服务器系列博文的第十篇。对应项目是LiteHttp具体可访问 http://dreamyouxi.com/litehttp.html 。 Unity引擎中C#脚本运行环境是Mono平台,而非微软的net,Unity引擎大部分是c++编写...

06/25 13:21
50
论野指针BUG查找方法

一般raw指针的使用才会容易出现这类问题,使用了指针管理的一般不容易出现因此这里不阐述(shared_ptr unique_ptr)等。 在展开叙述前,我们先看看下面的实现原理和方案: 1.在Unity引擎中G...

05/09 10:16
120
LiteHttpServer 2.0 Feature

占坑,2.0版本 应该 具备一下特性: 1.引入高性能异步io 2.Lua高并发支持 3.引入http解析库,更完整的支持http协议 4.更智能的文件缓存策略 5.引入redis的支持 6.更强大的高性能异步策略 7....

03/05 12:23
171
c++实现go关键字defer

go的defer关键字 ,更像是RAII思想的延续,只不过执行的是用户代码 其中风格3 说明了为什么采用acquire_defer 方式来处理 风格1: class Defer { public: ~Defer() { _cb(); } std::functio...

Go
2019/11/05 21:16
213
Crash dump进程信息

linux下 比较简单,这里不在说明, windows下 相对复杂一点 SEH,用SetUnhandledExceptionFilter 来捕获 MiniDumpWriteDump 来写dmp文件,这种方法还不够完全,一些错误 一样无法捕获 比如 ...

2019/03/03 16:35
141
网络库性能对比

TCP ping-pong 测试 go 收发7W1 QPS 单线程/多线程 boost::asio 收发 9W2 QPS 单线程 / 多线程 ae(Redis网络库) 收发7W5 QPS 单线程 libuv(Node-js网络库) 收发 6W9 QPS 单线程 大量链接时 ...

2019/02/05 19:53
463
Cache满载的LRU置换2

https://my.oschina.net/kkkkkkkkkkkkk/blog/710261 是这篇的改进型,时间复杂度修改为了O(1) 双向链表和 hash实现 hash实现的话 不利于大量存储,大量的话需要修改为std::map 时间复杂度就变...

2019/01/25 09:06
191
asio::async_write 的坑

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

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

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

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

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

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

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

没有更多内容

加载失败,请刷新页面

返回顶部
顶部