自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

我本书生

吾将上下而求索!

  • 博客(8)
  • 收藏
  • 关注

转载 网游数据的推和拉

<br />应该允许客户端自行决定从服务器获取数据的方式。<br />1. 拉方式:请求时才发送。<br />2. 推方式:服务器主动发送。<br />客户端可以设定方式。<br />如客户端进入简化模式,不需要显示周围的玩家, 就设为请求时才发送周围玩家信息。<br />以位置同步信息为例:<br />假设服务器设定100-1000m范围内的位置同步信息的刷新间隔为3s.<br />客户端可以自主选择以下刷新方式:<br />1. 以不小于3s的间隔主动向服务器请求。如对于视野边缘的,刷新间隔可以是10s

2010-08-23 23:28:00 1095

转载 对一个服务器的几步优化

<br />最近写了一个服务器,业务逻辑很简单,每个协议包往服务器上报数据, 每个数据包中可能有N块数据需要保存在数据库中的.显然, 这个业务逻辑是不能使用类似memcached这样的缓存的, 因为每条数据都是相对独立的, 而且必须保证每个数据都保存到数据库中.这里抛开服务器最基本的那些IO模型之类的不说,谈谈对这个服务器的几个优化步骤. 1) 最简单的处理最简单的处理就是按部就班的,每条数据老老实实的插入到数据库中.显然, 这样做的效率是低的, 如果并发量大的时候,mysql负载变大,而服务器阻塞在数据库

2010-08-23 23:26:00 852

转载 epoll为什么这么快

<br />epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于linux2.6以上内核,在开始讨论这个问题之前,先来解释一下为什么需要多路复用IO.<br /><br />以一个生活中的例子来解释.<br /><br />假设你在大学中读书,要等待一个朋友来访,而这个朋友只知道你在A号楼,但是不知道你具体住在哪里,于是你们约好了在A号楼门口见面.<br /><br />如果你使用的阻塞IO模型来处理这个问题,那么你就只能一直守候在A号楼门口等待朋友的到来,在这段时间里你不能

2010-08-23 23:20:00 767

转载 多进程服务器中,epoll的创建应该在创建子进程之后

<br />看我的测试代码,似乎应该是在创建子进程之后创建epoll的fd,否则程序将会有问题,试将代码中两个CreateWorker函数的调用位置分别调用,一个在创建epoll fd之前,一个在之后,在调用在创建之前的代码会出问题,在我的机器上(linux内核2.6.26)表现的症状就是所有进程的epoll_wait函数返回0, 而客户端似乎被阻塞了:<br /><br />服务器端:#include <iostream><br />#include <sys/socket.h><br />#includ

2010-08-23 23:19:00 818

转载 epoll学习笔记

epoll有两种模式,Edge Triggered(简称ET) 和 Level Triggered(简称LT).在采用这两种模式时要注意的是,如果采用ET模式,那么仅当状态发生变化时才会通知,而采用LT模式类似于原来的select/poll操作,只要还有没有处理的事件就会一直通知.<br /><br />以代码来说明问题:<br />首先给出server的代码,需要说明的是每次accept的连接,加入可读集的时候采用的都是ET模式,而且接收缓冲区是5字节的,也就是每次只接收5字节的数据:<br />#inc

2010-08-23 23:16:00 678

转载 在VS2005中应用多个其它编译器

<br />      在Visual C++ 2005中,如何调用其它编译器编译cpp文件呢? 换句话说,如何把其它编译器集成到VC2005的IDE中呢?<br />象ICC这样的编译器安装之后会自动集成进来,要集成其他编译器那还得自己动手。下面介绍一种简单、浅层的“集成”方法。<br />你也许注意到了,在VC2005的IDE中是不能编译单个.cpp文件的,除非把它放在工程中。但是,我们可以通过调用外部工具实现编译单文件。<br />       下面以调用G++为例说明如何编译单个.cpp文件。如果要

2010-08-19 23:24:00 2957

原创 Intel多核编程培训小结

<br />      这两天参加公司引进的外部课程《Intel多核编程》的培训,邀请的是Intel中国的两位专家,其中一位是《软件调试》的作者张银奎老师,现将基本内容小结如下,以便自己日后回顾。<br /> <br />(1)多核编程基本理念:任务分解,常用方法是给不同的子任务进行编号,然后,将线程各个子任务一一映射;<br />(2)编译器选项对程序性能优化的意义:一般在release版本中,建议选择-O2选项;<br />(3)Intel编译器特有编译优化功能:PGO;<br />(4)在Intel

2010-08-18 22:35:00 1552

转载 有关volatile变量和const常量

<br />在通用的c语言里,加volatile是为了c编译器的优化器对数据流进行分析,尽可能避免访问存储器,如果在程序中与访问存储器有关的代码和用c语言书写的代码完全相同,必须使用volatile来标明这些访问,编译器不能优化任何对volatile变量的引用,而const则是对常量的定义。 const定义视分散加载文件情况而定。 如果分散加载文件将代码都放到RAM里执行,即使你声明的是const类型,也被放到了RAM。如果分散加载文件将代码都放到ROM里执行,则当被声明的变量为const类型时,编译器将其

2010-08-18 00:39:00 997

空空如也

空空如也

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

TA关注的人

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