自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(141)
  • 收藏
  • 关注

转载 wc

linux下统计代码行数wc命令用来计算数字。利用wc指令我们可以计算文件的Byte数、字数或是列数,若不指定文件名称,或是所给予的文件名为“-”,则wc指令会从标准输入设备读取数据。参数:-c或--bytes或——chars:只显示Bytes数;-l或——lines:只显示列数;-w或——words:只显示字数。例子:查看cpp文件和h文件行数find ...

2019-05-16 10:43:00 274

转载 grep

如果你想在当前目录下 查找"hello,world!"字符串,可以这样:grep -rn "hello,world!" *转载于:https://www.cnblogs.com/losophy/p/10874143.html

2019-05-16 10:41:00 193

转载 gdb

先输入GDB然后输入file yourpram1、程序运行参数。set args 可指定运行时参数。(如:set args 10 20 30 40 50)show args 命令可以查看设置好的运行参数。2断点可以对某一行进行打断点 例:对程序的第三行进行打断点 b 3如果是多个文件,可以对某个文件的某一行打断点, 例:对gdb_test.c的第三行打断点 ...

2019-05-16 09:55:00 205

转载 c++协程

Boost.context:基于汇编代码的上下文切换https://blog.csdn.net/qq_25424545/article/details/81529717转载于:https://www.cnblogs.com/losophy/p/10854982.html

2019-05-13 09:44:00 158

转载 lua源码:Tvalue

typedef TValue *StkId; /* 堆栈中的元素 */typedef struct lua_TValue TValue;struct lua_TValue { TValuefields; /* 堆栈中的元素 */};// 定义了双精度浮点或者通用类型定义#define TValuefields \ union { struct { Value v__;...

2019-04-09 09:37:00 138

转载 lua:协程

协同程序与线程差不多,也就是一条执行序列,拥有自己独立的栈、局部变量和指令指针,同时又与其他协同程序共享全局变量和其他大部分东西。一个具有多个协同程序的程序在任意时刻只能运行一个协同程序。lua将所有关于协同程序的函数放置在一个名为“coroutine”的table中。一个协同程序可以处于4种不同的状态:挂起、运行、死亡和正常。程序初创建:挂起程序运行:运...

2019-04-08 11:04:00 108

转载 lua:函数与Closure

在lua中,函数是一种“第一类值,它们具有特定的词法域。第一类值:lua当中函数是一个值,他可以存在变量中(无论全局变量还是局部变量)或table中,可以作为函数参数,可以作为返回值。词法域:当一个函数内嵌套另一个函数的时候,内函数可以访问外部函数的局部变量。这也意味着lua完全可以包含“λ演算(Lambda Calculus)”在lua中,函数可以看作一个“值”...

2019-04-03 22:00:00 104

转载 写出高质量的代码

高内聚低耦合McCabe 复杂度gdb dump可以先大致看看源代码的文件结构做个模块划分猜测,然后随便挑选一个模块,找到关联的部分再顺藤摸瓜。对于需要构建的项目,摸清程序脉络的时间甚至可以在第一次等待编译构建的时间同步完成,而不需要等待构建完毕在一步步跟踪运行,甚至不需要下载代码到本地,github 这种友好的 web 界面已经可以舒适的在浏览器里阅读了,有个 ipad 就可以舒服...

2019-04-02 13:01:00 85

转载 一些数据库的坑

Redis上踩过的一些坑https://blog.csdn.net/chenleixing/article/details/50530419mysql常见故障诊断https://blog.csdn.net/u010230971/article/details/80335578MySQL 故障排查https://blog.51cto.com/13630803...

2019-03-28 10:58:00 109

转载 网络游戏的邮件系统设计

https://www.cnblogs.com/kevonyang/p/5927995.htmlhttps://blog.csdn.net/qq_31766907/article/details/83782192转载于:https://www.cnblogs.com/losophy/p/10613371.html

2019-03-28 10:35:00 6179

转载 游戏中抽奖的算法

https://www.cnblogs.com/sybboy/p/5754096.htmlhttps://www.cnblogs.com/zhoug2020/p/6396194.htmlhttps://www.cnblogs.com/index-html/p/trusted-lottery-algorithm.html转载于:https://www.cnblogs...

2019-03-28 10:17:00 1475

转载 c++11:lambda表达式

先看看lambda表达式变量截取的方式[] 不截取任何变量[&] 截取外部作用域中所有变量,并作为引用在函数体中使用[=] 截取外部作用域中所有变量,并拷贝一份在函数体中使用[=, &foo] 截取外部作用域中所有变量,并拷贝一份在函数体中使用,但是对foo变量使用引用[bar] 截取bar变量并且拷贝一份在函数体重使用,同时不截取其他变量[this] 截取当前类中的th...

2019-03-26 16:54:00 92

转载 c++11:模板

c++11中Universal Reference类型的模板参数的推导规则?Universal References in C++11简单来说就是type&& + syntax + type deduction,即可以引用左值,也可以引用右值。template<typename T>void f(T&& param); /...

2019-03-26 12:51:00 104

转载 c++11:左值、右值

一个最为典型的判别方法就是,在赋值表达式中,出现在等号左边的就是“左值”,而在等号右边的,则称为“右值”。还有一个说法,就是可以取地址的、有名字的就是左传,反之,不能取地址的、没有名字的就是右值。右值又分将亡值(xvalue),纯右值。用右值引用变量声明,就会少一次对象的析构及一次对象的构造。避免无谓的复制,提高程序性能。引用类型本身自己并不拥有所绑定对象的内...

2019-03-26 00:08:00 113

转载 游戏服务器语言之争

开发语言的选择业界主要的是c/c++ +Python/lua模式做游戏服务器。c/c++做网络通讯数据传输,python/lua做业务逻辑。这样既保持了网络传输的效率(c++),又提升开发效率(Python/lua),同时也支持热更新。当然,也有其他服务器开发语言,erlang(页游公司用的多),node.js(少量游戏用的,还有一个node.js写的引擎叫pemolo)...

2019-03-25 11:48:00 511

转载 游戏AI

现在比较流行的游戏角色AI开发方法,无外乎“状态机”和“行为树”两种,而这两种在数据结构上,是可以无损转换的,也就是说本质上是一样。这两个技术,都是为了帮游戏开发者,更准确、更完整的表述AI逻辑判断的数据结构。而机器学习的程序,就好像录像机一样,可以通过记录我们操控的角色的行为,去学习如何模仿我们的操控。当我们表演的足够丰富后,机器学习就可以完全取代人工的操控,做出一些和预设相...

2019-03-24 18:38:00 115

转载 断线重连总结

0.gateserver负责所有与客户端的直接连接m_conns[10000]也就是一个gateserver最多可以维持10000条socket连接,蓝月采用的是tcp行走各种消息都是tcp,不存在丢包一说,只会延迟每个客户端点击登录时会做以下事情建立socket tcp连接,向gateserver 的ip port发送请求,gateserver收到后,建立连接,这时候客户...

2019-03-23 17:04:00 526

转载 host文件

本机ip、127.0.0.1和0.0.0.0区别IP地址的记法:IP地址由四个字节构成,为了方便阅读和书写,每个字节用0-255的数字表示,字节之间用’.'分割,如:10.10.152.235有时候我们会看到这样的IP:10.10.152.235/24,后面的/24表示子网掩码,24表示子网掩码上有24个1,等价于255.255.255.0 。IP地址和子网掩...

2019-03-23 14:26:00 108

转载 数据包分析:抓包

Wireshark(windows)Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。tcpdump(linux)TcpDump可以将网络中传送的数据包完全截获下来提供分析。它支持针对网络层、协议、主机、网...

2019-03-22 22:57:00 1566

转载 http:get、put、post、delete含义与区别

1、GET请求会向数据库发索取数据的请求,从而来获取信息,该请求就像数据库的select操作一样,只是用来查询一下数据,不会修改、增加数据,不会影响资源的内容,即该请求不会产生副作用。无论进行多少次操作,结果都是一样的。2、与GET不同的是,PUT请求是向服务器端发送数据的,从而改变信息,该请求就像数据库的update操作一样,用来修改数据的内容,但是不会增加数据的种类等,也就是说无...

2019-03-22 22:56:00 110

转载 tcp重传机制

对端滑动窗口一直为0时如何处理?接收端通告的窗口大小变成0,发送端会发一个1字节的段(就是下一字节的数据,没新的数据段发送的时候发一个ack)(TCP零窗口探测),强制接收端重新宣告下一个期望的字节和窗口大小。如果接收方回复窗口大小仍然为零,则发送方的探测定时器加倍。没有收到ACK时,发送探测包的最大次数之后连接超时。TCP超时重传原理是在发送某一个数据以后就开...

2019-03-22 22:54:00 336

转载 网络游戏的状态同步设计策略

光速:3×10^8m/s,300000km/s中国东西约5200公里,南北约5500公里(玩家最大相距按5000km计算)16 ms 只够光信号在 2500 km 的距离上跑一个来回状态同步(Server同步)服务器负责计算全部的游戏逻辑,并且广播这些计算的结果,客户端仅仅负责发送玩家的操作,以及表现收到的游戏结果。一般来说,玩家发送一个操作到服务器上,服务器根据玩...

2019-03-22 19:30:00 361

转载 排序:内排、外排

内排外排外部排序指的是大文件的排序,即待排序的记录存储在外存储器上,待排序的文件无法一次装入内存,需要在内存和外部存储器之间进行多次数据交换,以达到排序整个文件的目的。游戏中排行榜算法实现https://blog.csdn.net/boshuzhang/article/details/51538000转载于:https://www.cnblogs.com/...

2019-03-22 15:55:00 428

转载 c++好习惯

RAII(Resource Acquisition Is Initialization)“资源获取就是初始化”,简单的说,RAII 的做法是使用一个对象,在其构造时获取资源,在对象生命期控制对资源的访问使之始终保持有效,最后在对象析构的时候释放资源。转载于:https://www.cnblogs.com/losophy/p/10572621.html...

2019-03-21 16:39:00 100

转载 mysql:表

从InnoDB存储引擎的逻辑存储结构看,所有数据都被逻辑地存放在一个空间中,称之为表空间(tablespace)。表空间又由段(segment)、区(extent)、页(page)组成。页在一些文档中有时也称为块(block)。InnoDB存储引擎的逻辑存储结构表空间表空间可以看做是InnoDB存储引擎逻辑结构的最高层,所有的数据都存放在表空间中。段因...

2019-03-16 17:23:00 103

转载 负载均衡

引用:高性能mysql转载于:https://www.cnblogs.com/losophy/p/10527150.html

2019-03-13 22:33:00 61

转载 KBEngine:架构

KBEngine调研报告转载于:https://www.cnblogs.com/losophy/p/10522861.html

2019-03-13 14:27:00 671

转载 skynet的一些运维数据

skynet线上使用的数据,解答性能问题记录一下MMZB的运维运营数据陌陌争霸已经运行9个多月,记录一下现在的运维运营数据:总用户460万,集群服务器共30台,其中Game Server9台,redis集群内存占用接近900G,mongo集群磁盘占用接近5T(定时删除旧数据,所以增长速度趋缓了)。redis集群内存每周增长20G,很快突破1T。后期会上线lev...

2019-03-13 13:54:00 428

转载 Linux学习—LVM快照功能

Linux学习—LVM快照功能转载于:https://www.cnblogs.com/losophy/p/10517605.html

2019-03-12 16:29:00 84

转载 跳跃表

跳跃表是一种有序数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。跳跃表支持平均O(logN)、最坏O(N)复杂度的节点查找,还可以通过顺序性操作来批量处理节点。在大部分情况下,跳跃表的效率可以和平衡树相媲美,并且因为跳跃表的实现比平衡树要来得更为简单,所以有不少程序都使用跳跃表来代替平衡树。redis使用跳跃表作为有序集合键的底层实现...

2019-03-12 16:01:00 97

转载 TCP通信丢包原因总结

今天在公司问老大,公司的项目底层,是使用的TCP,因为可靠,自动断线重连,在底层都实现了,但是我记得TCP也会有掉包的问题,所以这文章就诞生了——关于TCP掉包的问题,TCP是基于不可靠的网络实现可靠的传输,肯定也会存在掉包的情况。 如果通信中发现缺少数据或者丢包,那么,最大的可能在于程序发送的过程或者接收的过程出现问题。 例如服务器给客户端发大量数据,Send的频率...

2019-03-12 10:09:00 982

转载 根据日志查看QPS

背景:线上有一个推荐服务,日志量比较大,想确认下是不是qps过高问题:如何根据日志查看一个服务的qpstail -f XXX.log,可以发现日志格式如下:[8708-10 14:51:44 638 INFO ] [async task worker[61]] recommend.components.KeywordService[87] - cateid=252 pag...

2019-03-11 13:55:00 793

转载 mysql:备份、复制

将指定数据库备份到某dump文件(转储文件)中:mysqldump -uroot -p123 test > test.dump从备份文件恢复数据库:mysql -uroot -p123 test < test.dump复制:mysql支持两种复制方式:基于行的复制和基于语句的复制。基于语句的复制(也称为逻辑复制)。这两种方式都是通过在...

2019-03-10 22:00:00 91

转载 集群

redis为什么要集群https://blog.csdn.net/shenjianxz/article/details/59775212为什么要实现服务器集群https://www.jianshu.com/p/7b5c1e413874将应用部署到AzureService Fabric 团队提供了免费限时的环境让大家体验,称之为 Party Cluster,...

2019-03-09 23:34:00 77

转载 redis性能提升

众所周知redis是单进程单线程模型(不完全是单进程单线程,还有若干后端线程主要做刷脏数据,关闭文件描述符等后台清理工作)。redis中负责主要工作的是主线程,主线程的工作包括但不限:接收客户端连接,处理连接读写事件,解析请求,处理命令,处理定时器事件,数据同步等相关工作。单进程单线程只能跑满一个CPU核,在小包场景下,单个redis server的QPS在8~10万级别。如果QPS超过...

2019-03-08 11:27:00 201

转载 redis源码——多机数据库的实现

主从复制2.8版本之前是主发送rdb文件给从实现复制的。效率较低。重连后同步,耗时。新版本分完整同步和部分同步。完整同步和旧版一样,而部分同步则处理断线后重复制情况。分部同步由三部分组成:offset偏移量复制积压缓冲区服务器运行idstruct redisServer { char runid[REDIS_RUN_ID_SIZE+1]; //...

2019-03-07 14:27:00 65

转载 redis源码——单机数据库的实现

redis服务器将所有数据库都保存在服务器状态db数组中。dbnum由conf文件database选项决定。struct redisServer { char *configfile; // 配置文件的绝对路径 int hz; // serverCron() 每秒调用的次数 re...

2019-03-07 14:26:00 125

转载 redis 设置过期Key 的 maxmemory-policy 六种方式

redis.conf中的默认的过期策略是 volatile-lrumaxmemory-policy 六种方式1、volatile-lru:只对设置了过期时间的key进行LRU(默认值)2、allkeys-lru:删除lru算法的key 3、volatile-random:随机删除即将过期key 4、allkeys-random:随机删除5、vo...

2019-03-06 14:49:00 6396

转载 字符处理

https://www.cnblogs.com/bluestorm/p/3168720.html转载于:https://www.cnblogs.com/losophy/p/10096346.html

2018-12-10 14:36:00 60

转载 贝塞尔曲线

绘制曲线​ 相对于直线而言,曲线的绘制与坐标关系更难理解一些。由于LayaAir引擎绘制的是贝塞尔曲线,所以本文中先针对贝塞尔曲线的基础进行说明,然后再结合引擎的API进行讲解。一、贝塞尔曲线的基础​ 贝塞尔曲线在港澳台等地称为貝茲曲線,新加坡马来西亚等地称为贝济埃曲线。一般的矢量图形软件通过它来精确画出曲线,贝塞尔曲线由线段与节点组成,节点是可拖动的支点,线段像可伸缩的皮筋...

2018-11-05 14:26:00 108

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除