网络编程:Reactor与Proactor的概念

1、标准定义 两种I/O多路复用模式:Reactor和Proactor 一般地,I/O多路复用机制都依赖于一个事件多路分离器(Event Demultiplexer)。分离器对象可将来自事件源的I/O事件分离出来,并分发到对应的read/write事件处理器(Event Handler...

2015-12-24 01:04:19

阅读数 416

评论数 0

redis时间处理的bug

redis 3.0 int aeProcessEvents(aeEventLoop *eventLoop, int flags)中 以最小时间阻塞在          // 处理文件事件,阻塞时间由 tvp 决定  numevents = aeApiPoll(eventLoop, tv...

2015-11-29 00:00:02

阅读数 763

评论数 0

四叉树优化碰撞检测

游戏中碰撞检测分为两个阶段:broad phase 和 narrow phase。接下来要介绍的就是broad phase。在broad phase这个阶段,我们的主要任务是将屏幕上的物体进行筛选,筛选出最可能发生碰撞的物体集合。 试想想,屏幕上有N个物体,如果我们对每两个物体都进行碰撞检测...

2015-05-26 00:32:15

阅读数 8315

评论数 9

GFlags 使用详解

GFlags  - 老牌的PageHeap配置工具,有命令行和GUI两种操作方式,功能比较全,包含在Windbg调试器安装包内。同样在Windows 2000 Professional SP2 以上可用。 一些使用GFlags命令行的例子: 配置正常页堆: "C:...

2015-03-21 19:51:04

阅读数 5043

评论数 0

骨骼蒙皮动画(Skinned Mesh)的原理解析

骨骼蒙皮动画(Skinned Mesh)的原理解析(一)    一)3D模型动画基本原理和分类   3D模型动画的基本原理是让模型中各顶点的位置随时间变化。主要种类有Morph动画,关节动画和骨骼蒙皮动画(Skinned Mesh)。从动画数据的角度来说,三者一般都...

2015-03-09 00:13:06

阅读数 757

评论数 0

2D动作游戏开发与实现(翻译)

原文太长,所以将翻译与原文分成了两部分, 主要是讲2D游戏瓦片规则及不规则渲染与角色碰撞原理的。 因为单纯的2D游戏开发过于简单,所以本文尝试结合不同的2D平面游戏并将之归类,列出他们的优缺点,然后讨论下一些实施的细则。长远目标是在2D平面游戏开发方面的指导做的十分全面。如果有任何建议,...

2015-02-24 14:05:23

阅读数 867

评论数 0

C++实用技巧

复杂的东西写多了,如今写点简单的好了。由于功能上的需要,Vczh Library++3.0被我搞得很离谱。为了开发维护的遍历、减少粗心犯下的错误以及增强单元测试、回归测试和测试工具,因此记录下一些开发上的小技巧,以便抛砖引玉,造福他人。欢迎高手来喷,菜鸟膜拜。     之前的文章讲了指针...

2015-01-14 22:17:40

阅读数 689

评论数 0

高性能服务开发之定时器

在开发高性能服务器中,定时器总是不可或缺的。 常见的定时器实现三种,分别是:排序链表,最小堆,时间轮。 之前用的定时器是基于最小堆的,在定时器数量不多时可以使用, 目前公司用的框架中的定时器是基于简单时间轮的,但是为了支持大范围的时间,每个齿轮的所维护的链表为有序链表,每次插入时先mod出spok...

2014-12-30 11:01:53

阅读数 530

评论数 0

Lua源码剖析-GC

这次主要来分析lua的gc。 首先lua中的数据类型包括下面9种,ni, Boolean, number, string, table,user data, thread , functions 以及 lightusedata.其中 string, table,thread , functi...

2014-12-22 01:06:05

阅读数 686

评论数 0

探索Lua5.2内部实现:Garbage Collection(2)

原文:http://blog.csdn.net/yuanlin2008/article/details/8684869 GCObject Lua使用union GCObject来表示所有的垃圾回收对象: [cpp] view plaincopyprint?...

2014-12-21 19:18:16

阅读数 663

评论数 0

探索Lua5.2内部实现:Garbage Collection(1)

Lua5.2采用垃圾回收机制对所有的lua对象(GCObject)进行管理。Lua虚拟机会定期运行GC,释放掉已经不再被被引用到的lua对象。 基本算法 基本的垃圾回收算法被称为"mark-and-sweep"算法。算法本身其实很简单。 首先,系统管理着所有已经创建了的对...

2014-12-21 18:18:24

阅读数 505

评论数 0

协程coroutine资料更新

以前有一个 http://sunxiunan.com/?p=1949 这里加上一些新看到的内容,也许有重复。 http://sdiehl.github.com/coroutine-tutorial/ coroutine-tutorial http://www.chiark.greene...

2014-12-21 00:36:23

阅读数 891

评论数 0

Coroutines in C

by Simon Tatham Introduction Structuring a large program is always a difficult job. One of the particular problems that often comes up is this: if ...

2014-12-20 21:26:24

阅读数 650

评论数 0

tolua++实现分析

tolua_register_gc

2014-11-09 20:09:36

阅读数 500

评论数 0

游戏中分层状态机的实现

状态机的实现方式有很多种,一般都使用比较简单的switch case方式来实现对事件的处理和状态的转移,如下所示: [html] view plaincopy void ProcessEvent(Event event)   {       ...

2014-10-25 01:21:51

阅读数 2484

评论数 0

Object Orientation Tutorial

Lua is not really an object-oriented language, and it doesn't have a built-in concept of classes. But it is easily possible to create your own class ...

2014-09-26 23:16:48

阅读数 530

评论数 0

windows下捕获dump

一般要捕获异常只需要两个函数:SetUnhandledExceptionFilter截获异常;MiniDumpWriteDump写dump文件。但是由于CRT函数可能会在内部调用SetUnhandledExceptionFilter(NULL),解除我们程序设置的异常处理,这导致我们的程序无法完整...

2014-08-10 19:48:18

阅读数 661

评论数 0

Lua 中实现面向对象

这里提供 Lua 中实现 OO 的一种方案: local _class={}   function class(super) local class_type={} class_type.ctor=false class_type.super=super class_type.new...

2014-07-31 03:17:40

阅读数 670

评论数 0

C++的Trace类需要注意的问题~

.Trace类跟踪项目函数的模块调用

2014-05-25 01:06:27

阅读数 1130

评论数 1

lua gc和weaktable

关键字:lua,c,gc,weaktable ---------------------------------- 如果你对lus语言的中weak table不明白的话,那这篇文章应该对你有帮助。 所有脚本语言几乎都有垃圾回收器(GC),当然lua也有。 ...

2014-04-29 10:20:06

阅读数 1173

评论数 1

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