自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Vance的专栏

编码是一种修行

  • 博客(59)
  • 资源 (13)
  • 收藏
  • 关注

原创 CentOS Linux快速搭建SVN服务器

安装步骤如下:1、yum install subversion2、输入rpm -ql subversion查看安装位置,如下图:可以看到 svn在bin目录下生成了几个二进制文件。再输入/usr/bin/svnversion --version 就可以查看svn的版本,这样就说明svn安装成功,如下图:3、创建svn版本库目录  mkdir -p /var/svn/svnrepos4、创建版本库s...

2018-06-23 17:16:03 225

原创 一款经典的服务器架构设计

本人自15年下半年起从事某知名IP游戏的后端研发工作,于16年中这款架构承载着我们的产品得以上线,截至现在整个后台服务的主要框架如下图所示。我们的产品是横板格斗类动作游戏,目前持续稳定盈利中。写下此文,别无它意,仅作记录耳。 服务器类型主要业务备注SuperServerTCP服务负责所有world服的数据同步 WorldServerTCP服务负责world下全局数据同步,负责跨服匹配业务 Game...

2018-05-06 14:55:25 4843

原创 valgrind callgrind性能分析

1.请自行安装valgrind工具2.使用工具运行你的应用程序   valgrind --tool=callgrind ./sgzj-socialserver3.运行结束后,程序当前目录生成了一个文件callgrind.out.582374.python gprof2dot.py -f callgrind -n20 -s callgrind.out.58237 > valgri

2017-09-21 14:43:23 1264

转载 Linux无密码传输文件

在Linux环境下,两台主机之间传输文件一般使用scp命令,通常用scp命令通过ssh获取对方linux主机文件的时候都需要输入密码确认。不过通过建立信任关系,可以实现不输入密码。这里假设A的IP:192.168.10.1B的IP:192.168.10.2需要从A免密码输入复制文件至B。1. 在主机A上执行如下命令来生成配对密钥: ssh-keyge

2016-10-31 09:30:12 477

原创 如何统计一个新玩家在60天内的登录情况----std::bitset

业务需求:需要知道一个新建的账号在60天内登录的情况。机智的程序猿们都会想到用stl的各种关联容器去记录而后分析。经过仔细考量,本猿想到另外一种办法可以简单的实现该需求,并且可以使数据存储尽可能小。废话不多少,上代码:void Player::updateLoginStatistics(){    time_t now = Timestamp::now();   

2016-02-16 13:57:12 530

原创 我用ab给web服务器做压力测试

目标服务使用POST接收数据。首先POST参数包括:game,type,platform新建一个文件vi /tmp/post.dat输入:game=1&type=1$platform=xy_ios保存文件.[root@iZ11gwfi6i5Z bin]#./ab -n 10000 -c 1000 -p /tmp/post.dat -T 'application/

2016-02-03 14:05:54 2097

原创 crotab 常用写法摘记

由于项目需要定时对业务数据库进行备份我便写了一个备份脚本,那么谁来定时做呢 根据多年的项目经验,首选 crontab每天的23:10执行以下脚本【1】或者【2】【1】10 23 * * * /opt/www/platform/bin/backup_platformdb.sh【2】10 23 * * * /opt/www/platform/bin/backup_pla

2016-01-30 13:52:06 971

原创 如何在堆栈被破坏的情况下解决宕机问题

宕机不用怕,原来这样哒!通常在生产环境下如果遇到宕机,我们的做法很简单gdb调试core文件,可以看到程序的堆栈信息,就可以定位问题,解决问题。但是在某些情况下,堆栈信息由于某些原因被损坏了,bt打出来显示的全是??????那么如果想找到问题那就难办了。不过今天我们介绍一种,方法使用GCC内建函数__builtin_return_address(level)    le

2016-01-08 13:42:46 2253

原创 依赖于数据库的web网站优化

在大部份情况下我们的网站都会使用数据库作为站点数据存储的容器。当你执行一个SQL查询时,典型的处理过程是:连接数据库->准备SQL查询->发送查询到数据库->取得数据库返回结果->关闭数据库连接。很明显,当数据库的数据量持续增大,网站或者应用的性能会大幅降低。我们列出三种做法的站1.无任何缓存,直接从数据库查询2.使用文件进行缓存,按照规则去更新文件缓存3.使用re

2016-01-02 13:59:21 425

原创 unity 使用www ios9系统出错

http://southpeak.github.io/blog/2015/09/14/app-transport-security-ats/我们的产品在发布时,发现ios9的手机无法发出http请求到服务器(使用的unity的www方式)最后查出来原因如上链接设置App Transport Security(ATS)后 重新发布 ios版本,问题解决了!!!

2015-12-07 15:42:02 2862 4

原创 如何知道我在一堆数据中排第几std::partition

业务中遇到一个问题,有一堆数据,我需要知道我这个数据在那一堆数据中排第几。一般做法就是先把所有已知数据排序,再遍历找到我,那么就知道我是第几了。这么做好吗?回答是:好。那么请问是最好吗?不是最好。std::sort 复杂度std::partition 复杂度 ,O(n) ,n 为 last - firststd::distance 复杂度想起了一个叫做std::

2015-12-05 11:06:41 760

原创 linux磁盘满了如何清理

首先用root用户,登录 740  cd /  741  ls  742  du -s -s ./*  743  df -h  744  cd /usr/  745  du -s -s ./*  746  cd /usr/share/  747   du -s -s ./*  748  cd /usr/share/nginx/  749   du -s -s

2015-11-19 21:48:09 6766

原创 解析固定格式的文件数据 php脚本

#!/usr/bin/phpfunction printUseage() {    die("usage: ./txt2json.php  [file_in] [file_out] [id:0,(ALL USER)] [search_type:1(ITEM),2(RES),3(ITEMOVERFLOW)] [res_id:0(ALL id)]\n");}function che

2015-11-18 21:19:28 436

原创 我自己使用过的linux服务器监控工具

1.monitorix这是一款开源免费的轻量级 工具,需要perl的支持。安装centos  yum install  monitorix安装完毕 service start monitorix在浏览器中输入http://192.168.0.221:8080/monitorix此处的IP地址是被监控机的ip地址2.monit和mmonit

2015-11-09 11:24:41 4188

原创 mysql 数据库实际应用中的大数据处理

某年某月,我们我接到公司的任务,要搭建一个游戏平台系统,管理旗下所有游戏的玩家账户数据。起初拿到任务后,想了想。那么这个系统就是一个注册,一个登陆就ok了。于是有了下面的数据库设计。tbl_account. 表【主键ID,用户名,密码,注册时间,……】业务逻辑开发完成,OK。内网测试没问题,业务流程正常,可以提供服务了。此时数据是A数量级条。过了几天自己在该表插入B数量级条

2015-10-31 11:10:20 2354

转载 mysqldump 的用法

命令行下具体用法如下:  mysqldump -u用戶名 -p密码 -d 數據库名 表名 脚本名;    1、导出數據库為dbname的表结构(其中用戶名為root,密码為dbpasswd,生成的脚本名為db.sql)    mysqldump -uroot -pdbpasswd -d dbname >db.sql;    2、导出數據库為dbname某张表(test)结构

2015-10-16 10:16:58 290

原创 proto如何做到节省空间。

::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];message Test{optional int32 aa = 1;optional int32 bb = 2;}可以看出上面messgae有两个optional字段当生成对应的代码的时候proto帮我们同时生成了一个  ::google::proto

2015-09-27 10:53:01 742

原创 mmorpg游戏设计之2D游戏地图的九宫格子

做游戏这么久,很少花时间来写一写东西,惭愧之至。今天是星期八,天气不错,所以来写上几笔#########################################                   ## ##     1 # 2 #3 ## # # ##########################################

2015-09-14 22:08:47 3618

原创 php添加mysql扩展

536  cd addtiontools/  537  ls  538  cd php-5.3.16  539  ls  540  cd ext/mysql  541  ls  542  /usr/local/php/bin/phpize  543  ./configure --with-php-config=/usr/local/php/bin/php-config

2015-09-12 21:40:24 1285

原创 php添加socket的扩展

767  cd addtiontools/  768  ls  769  cd php-5.3.16/ext/sockets/  770  ls  771  /usr/local/php/bin/phpize  772  ./configure --prefix=/usr/local/php --with-php-config=/usr/local/php/bin/php-co

2015-09-12 21:38:56 8007

原创 linux给用户加个操作某个目录的权限

[root@iZ11gwfi6i5Z ~]# chown -R root:wangchong /usr/local/apache2/htdocs/[root@iZ11gwfi6i5Z ~]# chmod -R 775 /usr/local/apache2/htdocs/

2015-09-11 21:21:44 23610

转载 top里的load average怎么理解呢

top - 10:10:40 up 18 days, 14:25,  1 user,  load average: 0.00, 0.00, 0.00Tasks: 106 total,   1 running, 105 sleeping,   0 stopped,   0 zombieCpu(s):  3.5%us,  2.9%sy,  0.0%ni, 93.6%id,  0.0%wa,  

2015-09-09 10:17:09 1061

转载 【Linux开发】GCC 4.8及以上支持内存非法访问检查

【Linux开发】GCC 4.8及以上支持内存非法访问检查2015-2-27阅读162 评论0gcc4.8及以上版本支持地址越界,野指针检查,只需要在编译时使用-fsanitize=address选项即可,当运行程序时如果访问非本程序申请的地址就会报错。root@localhost:/home/ngos/practice> vi nullpoint.c      1 #

2015-09-07 12:46:29 6949

原创 __attribute__((constructor)) 高版本gcc不执行

__attribute__((constructor)) // 在main函数被调用之前调用__attribute__((destructor)) // 在main函数被调用之后调 static void func() __attribute__ ((constructor));void func(){   do();} 在项目中

2015-08-27 11:16:36 2752

转载 mysql到底用哪一款存储引擎呢

MySQL数据库MyISAM和InnoDB存储引擎的比较MySQL有多种存储引擎,MyISAM和InnoDB是其中常用的两种。这里介绍关于这两种引擎的一些基本概念(非深入介绍)。MyISAM是MySQL的默认存储引擎,基于传统的ISAM类型,支持全文搜索,但不是事务安全的,而且不支持外键。每张MyISAM表存放在三个文件中:frm 文件存放表格定义;数据文件是MYD (MYData

2015-08-25 22:03:07 1921

原创 gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-48)升级gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4)

../base/zAStar.h:167: error: declaration of 'const int step'../base/zAStar.h:16: error:  shadows template parm 'int step'原代码:virtual bool move(const int direct,const int step = step) = 0;修改后

2015-08-22 10:53:33 5502

原创 /usr/bin/ld: cannot find -lmysqlclient_r

编译你的工程代码之前之前,先处理一下mysql的库,默认查找libmysqlclient_r.so,可是mysql默认为libmysqlclient.so,内容完全一样,做个链接即可请在root下执行# cd /usr/local/mysql/lib/mysql/   (库所在目录)# ln -s libmysqlclient.so.15.0.0 libmysqlcli

2015-08-22 10:38:20 5664

转载 应用 Valgrind 发现 Linux 程序的内存问题

应用 Valgrind 发现 Linux 程序的内存问题如何定位应用程序开发中的内存问题,一直是 inux 应用程序开发中的瓶颈所在。有一款非常优秀的 linux 下开源的内存问题检测工具:valgrind,能够极大的帮助你解决上述问题。掌握 valgrind 的使用以及工作原理,能够有效地定位进而避免应用开发中的内存问题。Valgr

2015-08-19 13:55:30 425

转载 map unordered_map hash_map比一比

map hash_map unordered_map 性能测试 2012-01-08 22:27:29分类: C/C++by zieckey测试条件:gcc version 4.2.1 20070719  [FreeBSD]FreeBSD  7.2-RELEASE #0: Fri May  1 07:18:07 UTC 2009    

2015-08-17 15:34:40 406

原创 技能编辑器

之前做过一款类炉石的手机游戏由于炉石技能比较复杂对于技能的设计采用"0-1-0-4-0-0-0:2-100-0-0-0-0;."格式进行配置。":"之前的决定目标范围":"之后的决定技能效果此图是编辑器的界面,比较随意,不过可用性还是蛮好的。红圈处都是决定该技能的参数设定选择或填写相应的参数,便可以生成对应的技能效果配置。点击生成就会有 舒服的配置了哦

2015-08-13 21:06:58 1139

原创 protobuf的数据类型和C++数据类型

protobuf支持的数据类型不是很丰富protobuf属于轻量级的,因此不能支持太多的数据类型,下面是protobuf支持的基本类型列表,一般都能满足需求,不过在选择方案之前,还是先看看是否都能支持,以免前功尽弃。同样该表也值得收藏,作为我们在定义类型时做参考。.proto typec++notesdoubled

2015-08-13 16:33:38 11188

转载 为什么求模运算要用素数(质数)—— 哈希表设计

为什么求模运算要用素数(质数)—— 哈希表设计  By admin | 2013 年 7 月 25 日 | 杂记, 编程技术在设计用除法来散射的哈希表时,我们都会用数值模哈希表大小,得到的余数来作为ID存入哈希表对应格子中。所有文章都表明要用一个较大的素数来作为哈希表的大小,也就是要模一个较大的素数。但为什么就是要用素数呢?简单分析一下可以看出玄机。先看看如果用一个

2015-08-12 11:52:20 15441 6

转载 改天记得把自己那个代码中的改成这个boost::lexical_cast

c++数据类型万能转换器boost::lexical_cast .boost::lexical_cast为数值之间的转换(conversion)提供了一揽子方案,比如:将一个字符串"123"转换成整数123,代码如下:string s = "123";  int a = lexical_castint>(s); 这种方法非常简单,笔者强烈建议大家忘掉std诸多的函数,直

2015-08-12 10:38:40 395

转载 安全删除STL容器元素

STL容器迭代过程中删除元素技巧(转)1.连续内存序列容器(vector,string,deque)序列容器的erase方法返回值是指向紧接在被删除元素之后的元素的有效迭代器,可以根据这个返回值来安全删除元素。vector c;for(vector::iterator it = c.begin(); it != c.end();){if(need_delete())

2015-08-11 21:57:56 612

转载 我想在linux下用json

jsoncpp在linux下的配置JSON 官方的解释为:JSON 是一种轻量级的数据传输格式。关于 JSON 更具体的信息,可参见 JSON 官网:http://www.json.org。jsoncpp 是比较出名的 C++ JSON 解析库。在 JSON 官网也是首推的。下载地址为:http://sourceforge.net/projects/jsoncpp(版本为j

2015-08-10 15:27:54 737

原创 C++ STL的底层数据结构都是啥

C++ STL 的实现:1.vector  底层数据结构为数组 ,支持快速随机访问2.list    底层数据结构为双向链表,支持快速增删3.deque   底层数据结构为一个中央控制器和多个缓冲区,详细见STL源码剖析P146,支持首尾(中间不能)快速增删,也支持随机访问4.stack   底层一般用23实现,封闭头部即可,不用vector的原因应该是容量大小有限

2015-08-09 16:56:35 805

转载 一致性hash算法 C++语言实现

一致性hash算法 C++语言实现    在《一致性hash算法(consistent hashing)》一文中已经介绍了一致性hash的基本原理,本文将会对其具体实现细节进行描述,并用c++语言对一致性hash进行了简单的实现。    一致性hash算法实现有两个关键问题需要解决,一个是用于结点存储和查找的数据结构的选择,另一个是结点hash算法的选择。    首

2015-08-07 18:19:27 1947

原创 vector内存怎么释放

VECTOR的工作原理是系统预先分配一块CAPACITY大小的空间,当插入的数据超过这个空间的时候,这块空间会让某种方式扩展,但是你删除数据的时候,它却不会缩小。vector为了防止大量分配连续内存的开销,保持一块默认的尺寸的内存,clear只是清数据了未清内存,因为vector的capacity容量未变化,系统维护一个的默认值有什么方法可以释放掉vector中占用的全部内存呢

2015-08-07 10:43:46 2107

原创 简洁的发包--网络游戏

单个协议数据(不含头)大小超过32字节,进行zlib压缩。单个协议发送数据大小不超过64K,如果超过了,在逻辑层把协议中数据,手动拆分多次发送。

2015-08-05 16:31:59 923

转载 在vector中,怎样删除某个指定值的元素

【在vector中,怎样删除某个指定值的元素】Vectors provide no operation to remove elements directly that have a certain value. You must use an algorithm to do this.一.删除所有满足条件的元素For example, the following statemen

2015-04-25 11:41:04 11190

MyQQ c#winform局域网 聊天

MyQQ c#winform局域网 聊天MyQQ c#winform局域网 聊天MyQQ c#winform局域网 聊天MyQQ c#winform局域网 聊天MyQQ c#winform局域网 聊天MyQQ c#winform局域网 聊天MyQQ c#winform局域网 聊天MyQQ c#winform局域网 聊天MyQQ c#winform局域网 聊天MyQQ c#winform局域网 聊天MyQQ c#winform局域网 聊天MyQQ c#winform局域网 聊天MyQQ c#winform局域网 聊天MyQQ c#winform局域网 聊天MyQQ c#winform局域网 聊天MyQQ c#winform局域网 聊天MyQQ c#winform局域网 聊天MyQQ c#winform局域网 聊天

2011-09-26

c# 画统计图表 的自定义控件dll

c# 画统计图表 的自定义控件dll c# 画统计图表 的自定义控件dll c# 画统计图表 的自定义控件dll c# 画统计图表 的自定义控件dll 柱状图 饼状图 曲线图 柱状图 饼状图 曲线图 柱状图 饼状图 曲线图 柱状图 饼状图 曲线图

2011-06-14

c# 画柱状图 dll自定义控件

c# 画柱状图 dll自定义控件 c# 画柱状图 dll自定义控件 c# 画柱状图 dll自定义控件 c# 画柱状图 dll自定义控件

2011-05-30

c# 经典案例+不错非常不错 值得学习

c# 经典案例+不错非常不错 值得学习 c# 经典案例+不错非常不错 值得学习 c# 经典案例+不错非常不错 值得学习 c# 经典案例+不错非常不错 值得学习 c# 经典案例+不错非常不错 值得学习 c# 经典案例+不错非常不错 值得学习 c# 经典案例+不错非常不错 值得学习

2011-04-19

c#GDI+案例全解 gdi+开发技术解析 实例

c#GDI+案例全解 gdi+开发技术解析 实例 c#GDI+案例全解 gdi+开发技术解析 实例 c#GDI+案例全解 gdi+开发技术解析 实例 c#GDI+案例全解 gdi+开发技术解析 实例 c#GDI+案例全解 gdi+开发技术解析 实例 c#GDI+案例全解 gdi+开发技术解析 实例

2011-04-14

自定义控件 GDI+ 时钟 clockcontrol.dll

自定义控件 GDI+ 时钟 clockcontrol.dll 一个自己开发的.dll钟表控件,漂亮、实用、方便 自定义控件 GDI+ 时钟 clockcontrol.dll 一个自己开发的.dll钟表控件,漂亮、实用、方便 自定义控件 GDI+ 时钟 clockcontrol.dll 一个自己开发的.dll钟表控件,漂亮、实用、方便 自定义控件 GDI+ 时钟 clockcontrol.dll 一个自己开发的.dll钟表控件,漂亮、实用、方便

2011-04-11

自定义控件 时钟 控件 windows form c#

用户自定义控件 windows form c# 自定义控件 时钟 控件 windows form c# 自定义控件 时钟 控件 windows form c#

2011-04-10

算法课程设计 背包问题 0/1背包问题 实现

算法课程设计 背包问题 0/1背包问题 实现 算法课程设计 背包问题 0/1背包问题 实现算法课程设计 背包问题 0/1背包问题 实现 算法课程设计 背包问题 0/1背包问题 实现算法课程设计 背包问题 0/1背包问题 实现 算法课程设计 背包问题 0/1背包问题 实现 算法课程设计 背包问题 0/1背包问题 实现

2010-12-25

银行家算法 课程设计 操作系统 c c++

银行家算法 课程设计 操作系统 c c++ 银行家算法 课程设计 操作系统 c c++ 银行家算法 课程设计 操作系统 c c++ 银行家算法 课程设计 操作系统 c c++ 报告

2010-12-24

Effective C++.2nd Edition.Lostmouse.[zh-tw].chm

Effective C++.2nd Edition.Lostmouse.[zh-tw].chm Effective C++.2nd Edition.Lostmouse.[zh-tw].chm Effective C++.2nd Edition.Lostmouse.[zh-tw].chm

2010-11-20

sqlserver问题解决方案

包含了全面的sqlserver常见问题出错处理解决方案! 包含了全面的sqlserver常见问题出错处理解决方案! 包含了全面的sqlserver常见问题出错处理解决方案!

2010-11-20

[C程序设计语言].The.C.Programming.Language.chm

[C程序设计语言].The.C.Programming.Language.chm 源码[C程序设计语言].The.C.Programming.Language.chm [C程序设计语言].The.C.Programming.Language.chm

2010-10-22

流程图生成器 简单实用

有了它,代码 绝对全能看懂 初学者 终极编程 方便方便

2010-09-11

空空如也

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

TA关注的人

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