自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 c语言中的“时光倒流--非局部跳转longjmp

<br />c语言中的“时光倒流”--非局部跳转longjmp<br /> <br />#include <setjmp.h><br />jmp_buf a;<br />longjmp(a,1);//让程序的执行流回到当初setjmp返回的时刻,并且<br />返回由longjmp指定的返回值(longjmp第二个参数,这里是值1)<br />setjmp(a);<br />void JMP()<br />{<br />  longjmp(b,1);<br />}<br />int function()<b

2010-06-29 13:57:00 865

转载 cpu亲合度(affinity)设置

<br />可以在linux下使用man sched_setaffinity查看相关使用说明<br />long sched_setaffinity(pid_t pid, unsigned int len, <br />                  unsigned long *user_mask_ptr);<br />long sched_getaffinity(pid_t pid, unsigned int len,<br />                  unsigned long *us

2010-06-25 16:35:00 1766 1

原创 网游中将聊天部分与游戏逻辑分离

考虑到现在的游戏服务器是在多CPU上运行的,为了更好的利用多CPU的功能,设想是将游戏中与逻辑关系不是很大的聊天部分分离出来,成为一个单独的服务器,从而提高游戏的业务处理速度,并且能充分利用CPU资源。聊天分离后做成一个聊天服务器,使用的策略是用空间换时间。会将所用到的相关数据都放入共享内存中,使用KEY值进行查找/增加/删除。通常的聊天服务器按聊天的类型可以分为:全服,国家,  地图,  同屏,  好友,  组队,帮派,私聊其中,对于地图,好友,帮派聊天消息,通过已建好的映射表,就可以快速分发聊天内容。对

2010-06-23 15:35:00 3025 2

转载 mysql数据同步原理

MySQL同步机制基于master把所有对数据库的更新、删除等)都记录在二进制日志里,MySQL同步功能由3个线程(master上1个,slave上2个)来实现。执行 START SLAVE 语句后,slave就创建一个I/O线程。I/O线程连接到master上,并请求master发送二进制日志中的语句。master创建一个线程来把日志的内容发送到slave上。这个线程在master上执行 SHOW PROCESSLIST 语句后的结果中的 Binlog Dump 线程便是。slave上的I/O线程读取ma

2010-06-22 15:13:00 2919

转载 大规模服务设计部署经验谈

大规模服务设计部署经验谈:http://www.mvdirona.com/jrh/talksAndPapers/JamesRH_Lisa.pdf

2010-06-21 15:00:00 882

原创 回合制的MMORPG中分离战斗

在想一个问题,在回合制的MMORPG中分离战斗成一个新的进程,使用多进程(或多线程)方式来提高游戏的并发性能。方法:先分成一个逻辑主进程和一个战斗主进程,战斗以外的操作处理都在逻辑主进程中完成,当发生战斗时,把角色的指针传给战斗主进程,并设置进入战斗标志。逻辑进程和战斗进程通过共享内存来共享数据。在战斗主进程中可使用多线程模式,根据机器的性能设置多线程的数量,一个战斗为一个session,一个线程处理多个session.在战斗过程逻辑主进程收到角色的消息时,不用立刻处理,而是把消息放入角色的消息队列(聊天信

2010-06-18 17:28:00 1090

转载 ROSE反向工程(从源程序到类图)

·         1.在组件视图中创建一个组件(component)2.点右键并选择Open Specification3.选取General,选取合适的Stereotype,并在lanaguage中选定语言,比如ANSI C++4.点OK5.  5.在罗辑视图中创建一个能代表这个视图的包。例如MusicDJ7.打开ROSE的Tools菜单下的ANSI C++,并选取Open ANSI C++ Specification...8.在打开的对对话框中的File页面,选取源码的根目录文件(.cpp or .h

2010-06-17 11:00:00 719

原创 yacc 语法分析

 语法定义用于定义标记序列以及应得到的结果;yacc 语法定义的基本结构是定义预期的标记序列 Yacc 文件格式:关于yacc配置文件的一例子:%{#include "stdafx.h"int yylex(void);void yyerror(char *s);%}%%/* beginning of rules section */%%int analyze(const char *pszFile){    //。。。}%{    /* 全局函数及头文件声明*/%}/*标记定义*/%%/* Parsing

2010-06-11 14:51:00 1464

转载 vim 常用命令

移动光标类命令 h 光标左移一个字符 (Backspace) l 光标右移一个字符 (space) k 光标上移一行 j 光标下移一行 (Enter) 0 (注意是数字零)光标移至当前行首 $ 光标移至当前行尾 nG 光标移至第n行首 n$ 光标移至第n行尾 gg 光标移至文件第1行 G 光标移至文件最后1行 屏幕翻滚类命令 Ctrl+u 向文件首翻半屏 Ctrl+d 向文件尾翻半屏 Ctrl+f 向文件尾翻一屏 Ctrl+b 向文件首翻一屏 插入文本类命令 i 在光标前 I 在当前行首 a 光标后 A 在

2010-06-08 15:09:00 424

原创 lex词法分析

lex 工具使用一个配置文件来生成相应的 C 源代码,然后,可以用它来创建独立的应用程序,或者在您自己的应用程序中使用它。配置文件定义了需要在待分析的文件中查找的字符序列,以及当发现该序列之后应该进行什么操作。配置文件格式为:1.代码中的第一块由%{...%} 定义,表示将其中的文本插入到生成的 C 源代码中;2.代码中的第二块由 %% 序列标识,其中包含了要识别的字符串输入和相应结果的定义;如:"if“      return IF;   在 yacc 中,将使用这个名称来建立相应的语法。3.用户子程序部

2010-06-08 14:40:00 1100 1

原创 mysql一个连接的处理效率

硬盘的平均存取时间由寻道时间和读写时间两部分构成,假定一个7200转的硬盘平均存取时间为10ms.再假定机器内存足够,可以把所有的索引数据cache起来,不计mysql查询索引数据的时间。则理论上的每秒处理数(以单表的select为例)=1000ms/10ms=100(个)

2010-06-08 09:24:00 940 1

空空如也

空空如也

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

TA关注的人

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