陈松的技术博客

阅读使人充实,会谈使人敏捷,写作使人精确

德州扑克和短牌的算法分析

算法分析

前言 最近由于公司的业务的扩展 增加短牌玩法, 这个短牌算法我在github上找很长时间都没有找到开源了。 最后我只能自己写短牌的算法,说的挺哄人的其实我也是有参考德州扑克的算法的。 正文 一, 分析扑克数据 1, 一张牌在内存怎么存放的 红桃A是放在int类型中 int是32字节内存存放 高16存放牌的大小 |颜色|牌的值|低8位存放牌映射数的大小 0000 0000 00...

突破FD_SETSIZE限制的连接数

boost库的asio的中fd_set的适配器的设计

前言 这个也我在公司的使用自己写库clib中在win上连接服务器时中只能连接63个的客户端,这个我一开始还以为是自己的配置文件中配置问题呢 就没有注意这个问题。 直到最近自己服务器上业务写完了, 需要压力测试时, 这个问题我可查有几天, 一开始我以为是自己编码中写死了呢, 为什么这样说呢! 在我的知识体系中select最大连接数是1024, 我找很长时间 最后在发现在win 上 FD_...

redis源码分析之跳跃表

skiplist

===================================================== redis源码学习系列文章: redis源码分析之sha1算法分析 redis源码分析之字典源码分析 redis源码分析之内存编码分析intset, ziplist编码分析 redis源码分析之跳跃表 redis源码分析之内存淘汰策略的原理分析 redis源码分析之对...

redis源码之内存管理源码分析

动态字符串sds分析

前言 redis源码只有23000行代码, 可以说压缩的代码非常经典, 以最少代码写出存储管理 正文 一, redis 中内存管理 redis中提供接口有 void *zmalloc(size_t size); void *zcalloc(size_t size); void *zrealloc(void *ptr, size_t size); void zfree(void *p...

socket选项

boost库的socket选项设置

前言 socket选项 正文 一, sockopt参数 设置socket的参数的函数 #include <sys/types.h> /* See NOTES */ #include <sys/socket.h> int getsockopt(int sockfd, int level, int optname, ...

boost库asio源码分析之io_service

任务队列的的调度 计时器epoll

前言 任务队列的的调度的使用 正文 一, boost库asio io_service 的介绍 io_servie是接口类,为实现跨平台,采用了策略模式,所有接口均有impl_type实现。根据平台不同impl_type分为 win_iocp_io_service Win版本的实现,这里主要分析Linux版本。 task_io_service 非win平台下的实现,其代码结构为...

boost库asio源码分析之数据结构

分析连接, 发送, 接受数据的流程

前言 源码之前,了无秘密。 ——侯捷 Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一。Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容。在C++社区中影响甚大,是不折不扣的“准”标准库。...

内存池的设计

内存池的设计原理分析

前言 默认内存管理函数的不足 利用默认的内存管理操作符new/delete和函数malloc()/free()在堆上分配和释放内存会有一些额外的开销。 系统在接收到分配一定大小内存的请求时,首先查找内部维护的内存空闲块表,并且需要根据一定的算法(例如分配最先找到的不小于申请大小的内存块给请求者,或者分配最适于申请大小的内存块,或者分配最大空闲的内存块等)找到合适大小的空闲内存块。如果该...

游戏中商店的设计

商店活动

前言 商店在我们生活当中很常见的 维基百科 给商店定义: 泛指售卖商品或服务的地方,有零售、批发二类。商店包括有地铺、楼上铺和商场店子、百货公司、专门店等。它们可能是个体户或者连锁式经营。 生活中如果我们开店时需要以下商店的信息分为: 取名 类型 图片 地铺 商店类型 注释 相关 游戏中的商店和我们平常生活中的商店是一样的功能 正文 一, 商店的...

游戏任务成就体系

业务分析及技术架构

前言 任务和成就在游戏中非常常见,基本上是游戏的必备功能,其功能意义个人认为包含以下几点: 增加用户粘性,让用户有事可做,有目标可做. 增加用户在游戏中的成就感和投入感,降低用户流失. 体贴的游戏商可以根据成就任务活动之间的攀比排名来激发用户的消费欲望 正文 一, 游戏任务成就体系的业务分析及技术架构 1. 任务: 业务形式描述:一定时间内,呈现给用户的...