陈松的技术博客

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

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. 任务: 业务形式描述:一定时间内,呈现给用户的...

3,优化程序的性能

高质量的代码是有思考深度的优化

前言 优化你的代码, 有时要在深度思考问题, 编译器的角度看待你的程序的效率 正文 一, 优化你的代码 jle 汇编语言中的条件转移指令。小于或等于,或者不大于则转移。 typedef long data_t; // create abstract data type for vector typedef struct { long len; data_t *data;...

背包模块的设计

日常任务模块, 武器排行榜, 战术, 英雄战斗力, 活动模块

前言 游戏中背包模块设置关系到游戏整体设置, 一个背包模块设置好的 可以给玩家好体验, 在玩家可以清楚知道自己的物品的数据, 选择什么样的成长方式 正文 思维导图 一, 功能分类 1, 英雄的战斗力的计算 2, 日常任务模块 3, 排行榜 ①, 武器排行榜 4, 物品的分类 ①, 大的类别 消耗品 碎片 .合成材料 杂项 武器 情报 工具 ...