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

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

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

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

2020/07/16 10:27
943
Lite2D的渲染线程尝试

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

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

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

Lua
2016/09/14 12:35
1.6K
asio多线程环境 io_service和strand搭配使用

一个io_service对象可以通过多个线程调用io_service.run进行事件处理器的并发。分发到不同的线程上执行的策略可以认为是随机的。 strand是线程安全的任务队列的封装,具体执行还是会调用io_...

2021/04/24 18:59
345
linux下编译mono

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

C#和C/C++混合编程系列5-内存管理之GC协同

32132133 3123213 TODO

c++
2020/08/13 10:57
3.3K
StickEngine-架构12-通信协议

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

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

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

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

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

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

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

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

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

2020/05/09 10:16
352
LiteHttpServer 2.0 Feature

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

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

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

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

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

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

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

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

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

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

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

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

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

2018/09/03 21:43
557
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
667

没有更多内容

加载失败,请刷新页面

返回顶部
顶部
返回顶部
顶部