他山之石
xiaolomg
学习无止境
展开
-
A tiny introduction to asynchronous IO
libevent上介绍异步IO的文档,非常zhide翻译 2014-07-13 12:55:10 · 916 阅读 · 0 评论 -
什麼是Zero-Copy?
什麼是Zero-Copy?想要了解這個名詞是指什麼意思的話,讓我們從一個簡單的範例開始,這個範例是server讀取一個檔案,然後把檔案資料經由socket將資料傳送給client。簡化範例程式如下:read(file, tmp_buf, len);write(socket, tmp_buf, len);Figure 1的圖說明了,這兩行程式實際的運作流程。(1)當執行r转载 2014-04-16 22:54:03 · 911 阅读 · 0 评论 -
利用gdb在汇编指令级调试C程序
关于GDB调试C程序的常用命令与手段就不多说了,这里主要介绍一下如何对C程序做到汇编指令级别的调试。首先是获取汇编代码,这可以通过disassemble命令或x命令或类似的命令:1234567891011121314151617转载 2014-04-01 23:41:00 · 1203 阅读 · 0 评论 -
建立完整游戏AI实践之1
Artificial Intelligence (AI) in games has taken the backseat in development for a long time for many reasons but the future of games is definitely going to be weighted heavily with increasingly deta翻译 2014-05-03 15:24:39 · 1135 阅读 · 0 评论 -
A* algorithm Sketch
这篇文章总结的非常全面,有机会翻译出来翻译 2014-05-01 00:02:03 · 1406 阅读 · 0 评论 -
导出C++类到LUA脚本
8 十月, 2012 // by 麦希 假定读者对lua有基本的掌握。 注册c++类到lua有几个步骤: 1.注册c++类。 A.添加一个以类名命名的table到lua全局表。 B.添加一个以类名命名的matatable,并将其设为A中table的matatable。接下来的类成员变量和函数都会添加到这个metatable中。 2.注转载 2014-03-29 08:53:28 · 2084 阅读 · 0 评论 -
物品存储与背包系统
8 九月, 2012 // by 麦希 游戏中,物品存储和背包系统是最基础的模块,因为两者关联密切,这里放在一起论述。 物品和背包都是一个广义的概念,物品通常包括道具、材料、任务物品、坐骑和宠物等,背包对应可以分为道具背包、材料背包、任务物品背包、坐骑栏和宠物栏等。有时为了方便,道具、材料和任务物品可以合并在同一个背包,这样道具和材料将采用同样的数据结构存储,虽转载 2014-03-29 08:45:30 · 6510 阅读 · 0 评论 -
在A-star寻路中使用二叉堆
作者:Patrick Lester(2003年4月11日更新)翻译:Panic2005年3月28日译者序:这一篇文章,是“A* Pathfinding for Beginners”,也就是我翻译的另一篇文章“A*寻路初探”的补充,在这篇文章里,作者再一次展现了他阐述复杂话题的非凡能力,用通俗易懂的语句清晰的解释了容易让人迷惑的问题。还是那句话,如果你看了这篇文章仍然转载 2014-04-29 22:27:04 · 1514 阅读 · 0 评论 -
Lua查找表元素过程(元表、__index方法是如何工作的)
http://blog.csdn.net/xocoder/article/details/9028347近日开始研究Lua,在元表的使用上照猫画虎地搞了两下,实现了“面向对象”,但究其本质却略有不解,后咨询牛哥得解,特此记录。Lua的表本质其实是个类似HashMap的东西,其元素是很多的Key-Value对,如果尝试访问了一个表中并不存在的元素时,就会触发Lua的一套查找机转载 2014-02-20 11:00:46 · 1000 阅读 · 0 评论 -
Chrome源码剖析、上
Chrome源码剖析、上原著:duguguiyu。整理:July。时间:二零一一年四月二日。出处:http://blog.csdn.net/v_JULY_v。说明:此Chrome源码剖析很大一部分编辑整理自此博客:http://flyvenus.net/。我对写原创文章的作者向来是以最大的尊重的。近期想好好研究和学习下Chrome源码,正巧看到了此duguguiyu兄台的源转载 2014-02-07 22:42:16 · 1318 阅读 · 0 评论 -
深刻理解Linux进程间通信(IPC)
https://www.ibm.com/developerworks/cn/linux/l-ipc/linux下的进程通信手段基本上是从Unix平台上的进程通信手段继承而来的。而对Unix发展做出重大贡献的两大主力AT&T的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间通信方面的侧重点有所不同。前者对Unix早期的进程间通信手段进行了系统的改进和扩充,形成了“sy转载 2014-02-07 23:15:40 · 960 阅读 · 0 评论 -
IPC in windows
The Windows operating system provides mechanisms for facilitating communications and data sharing between applications. Collectively, the activities enabled by these mechanisms are called interprocess原创 2014-02-07 23:14:24 · 1449 阅读 · 0 评论 -
Difference between BTree and B+Tree
Question from Stackflow:In a B tree you can store both keys and data in the internal/leaf nodes. But in a B+ tree you have to store the data in the leaf nodes only. Is there any advantage of doing原创 2014-02-07 17:00:25 · 1494 阅读 · 0 评论 -
日志结构的合并树 The Log-Structured Merge-Tree
http://www.cnblogs.com/siegfang/archive/2013/01/12/lsm-tree.html近年来,随着互联网数据的日益增长,管理分布式数据需求的日益增加,Bigtable[1]等一系列NoSQL数据库开始涌现。Bigtable是一个分布式的结构化数据存储系统,它被设计用来处理海量数据,其在提供Tablet服务时使用内存中的memtable和转载 2014-02-07 14:44:40 · 1496 阅读 · 0 评论 -
大话LSM Tree
http://f.dataguru.cn/thread-24939-1-1.html首先请大家自己解读下下面两句话的含义:任何一种排序算法都是在一定的问题背景下提出来的。 ——XXX大学的数据结构老师没有完美的犯罪 ——XXX神探平衡是系统设计的一种美 ——我是这么想的内存的高效性是lsm的结构基础,我们在访问数据的时候速度肯定是内存大于磁盘的,这样的话为什么不全用转载 2014-02-07 14:27:01 · 1052 阅读 · 0 评论 -
Socket异步通信中的EAGAIN错误
在Linux进行非阻塞的socket接收数据时经常出现Resource temporarily unavailable,errno代码为11(EAGAIN),这表明在非阻塞模式下调用了阻塞操作,在该操作无法完成时返回这个错误。这个错误不会破坏socket的同步,不需要特别处理,继续对socket执行read操作即可。另外,如果出现EINTR(errno为4),错误描述Interrupted转载 2014-01-17 20:46:06 · 1753 阅读 · 0 评论 -
采用epoll实现echo server和client
转自 http://zhouxiaodan.blog.51cto.com/1177793/1176286#include #include #include #include #include #include #include #include #include using namespace std; #define MAXLINE转载 2014-01-17 20:50:55 · 3505 阅读 · 0 评论 -
glog的订制
转自 http://www.cnblogs.com/tianyajuanke/archive/2013/02/22/2921850.html转载 2014-05-05 07:12:59 · 1239 阅读 · 0 评论 -
sniperHW网友的bigchallenge框架
全部著作权由sniperHW网友所有!内容来自 https://github.com/sniperHW/bigchallenge手机网络游戏生存大挑战服务端的通用框架代码,包含gateserver和gameserver大挑战是一款手机休闲网络游戏,游戏形式为开房间,每个房间内最大能容纳20名玩家游戏.服务器结构划分服务器按功能分成3类:red转载 2014-03-23 21:58:13 · 1082 阅读 · 0 评论 -
关于linux thread_info如何取到当前进程的总结
看 linux系统设计的时候,这个问题让我很难搞明白,明天要看下内核源码!但是先search下网友的解释:所有进程的祖先叫做进程0,idle 进程(swapper进程),它是在Linux 的初始化阶段从无到有创建的一个内核线程。这个祖先进程使用静态分配的数据结构(所有其他进程的数据结构都是动态分配的)。下面着重介绍一下进程0 内核栈的初始化过程!在head.S 中:转载 2014-04-03 23:24:39 · 2091 阅读 · 0 评论 -
Unity3D的Socket連線實作範例
using UnityEngine;using System.Collections;using System;using System.IO;using System.Net.Sockets;public class s_TCP : MonoBehaviour { bool socketReady = false; TcpClient mySocket;转载 2014-07-11 00:28:50 · 1114 阅读 · 0 评论 -
boost lockfree lib
今天在想boost有什么并行库木有,google了一下就搜到了,给力啊!原创 2014-07-12 13:15:26 · 1145 阅读 · 0 评论 -
navicat 结合快捷键 非常好用
http://blog.51yip.com/mysql/1244.htmlnavicat我觉得做程序的基本上都会用,它方便,快捷,直观等,优点很多,这也是我写这篇文章的原因。以前我基本上都是用phpmyadmin,也挺好用,不过也有不少缺点,比如数据库备份文件太大,根本没法用导入,多数据库服务器管理,还要去配置phpmyadmin,其实挺不爽的。navicat对于刚用的人来说,其实转载 2014-08-05 11:04:11 · 1063 阅读 · 0 评论 -
无锁编程介绍
翻译自 http://preshing.com/20120612/an-introduction-to-lock-free-programming/翻译 2014-07-26 05:31:09 · 1129 阅读 · 0 评论 -
4 Ways To Increase Performance of your Unity Game
http://www.paladinstudios.com/2012/07/30/4-ways-to-increase-performance-of-your-unity-game/转载 2014-07-08 20:09:32 · 1273 阅读 · 0 评论 -
开发笔记 (13) : AOI 服务的设计与实现
关于AOI的算法,流传广的放入云风大大的博客.http://blog.codingnow.com/2012/03/dev_note_13.html转载 2014-07-06 18:16:18 · 1792 阅读 · 0 评论 -
昔时因 今日意 侃侃微软的CRT
come from:http://gulu-dev.com/post/2014-06-28-microsoft-crt想了解CRT的童鞋来看:转载 2014-07-02 05:46:36 · 1735 阅读 · 0 评论 -
如何处理被动式的行为请求
come from AI分享站转载 2014-05-27 23:29:12 · 1209 阅读 · 0 评论 -
ubuntu安装emacs
sudo add-apt-repository ppa:cassou/emacssudo apt-get update原创 2014-06-11 11:08:15 · 1044 阅读 · 0 评论 -
Linux Core Dump
来自:http://www.cnblogs.com/hazir/p/linxu_core_dump.html当程序运行的过程中异常终止或崩溃,操作系统会将程序当时的内存状态记录下来,保存在一个文件中,这种行为就叫做Core Dump(中文有的翻译成“核心转储”)。我们可以认为 core dump 是“内存快照”,但实际上,除了内存信息之外,还有些关键的程序运行状态也会同时 dump 下转载 2014-04-29 12:23:05 · 892 阅读 · 0 评论 -
Think OS 第一章
1.1 Compiled and interpreted languagesPeople often describe programming languages as either compiled, whichmeans that programs are translated into machine language and then executedby hardware,翻译 2014-05-11 23:49:59 · 1814 阅读 · 0 评论 -
Debug和Release区别
http://www.cnblogs.com/JemBai/archive/2009/01/13/1374805.htmlVC下Debug和Release区别最近写代码过程中,发现 Debug 下运行正常,Release 下就会出现问题,百思不得其解,而Release 下又无法进行调试,于是只能采用printf方式逐步定位到问题所在处,才发现原来是给定的一个数组未初始化,导致后转载 2014-03-27 11:17:52 · 820 阅读 · 0 评论 -
Kmalloc内部实现:挖掘Linux内核内存分配(一)
为什么写这篇文章:最近我在几个linux设备上发现整数溢出,以致我开始用kmalloc重写内存分配。注意:理解这篇文章需要知道点linux内核。有时候我肯能用熟知的一些函数名。如果你不知道他们的意义,可以快速google。我提到的所有关于cache的函数都能在/usr/src/linux/mm/slab.c找到。一些数字是在IA-32架构上给出的。我努力加粗函数名和数据类型。在一些翻译 2014-04-06 23:45:25 · 3919 阅读 · 0 评论 -
vim中的杀手级插件: vundle
http://zuyunfei.com/2013/04/12/killer-plugin-of-vim-vundle/相比sublime text2等现代编辑器,Vim缺乏默认的插件管理器,所有插件的文件都散布在~/.vim下的几个文件夹中,配置vim的过程, 就是在网上不停的搜插件,拷贝到~/.vim下,发现更新,要重新下载重新拷贝,想要删除某个不需要插件,更是要小心翼翼的不要删错。转载 2014-03-24 22:45:10 · 1011 阅读 · 0 评论 -
windows下boost开发环境简易教程(cygwin+eclipse)
作者:smartvessel@gmail.com1. 安装cygwin, 搭建在windows环境下的gcc, g++开发环境下载cygwin(http://www.cygwin.com/), 双击setup.exe,开始安装Step1:Step2:选择将cygwin安装到本地哪个目录 Step3:保持下载的cygwin,这样下次可以继续不用连接网络,在转载 2014-01-17 16:00:57 · 2517 阅读 · 0 评论 -
【Visual Studio】VS2012中利用Visual Assist X添加文件头和函数注释
http://www.cnblogs.com/osyun/archive/2011/06/27/2091727.html一个好的项目工程,注释是必不可少的,vc助手中有一个功能可以帮助我们快捷添加注释。设置方法如下: 1、点击Visual Assist X Options 2、选择ADvanced->suggestions,在右侧选择Edit VA Snippets转载 2013-12-25 12:59:44 · 5052 阅读 · 0 评论 -
lua5.2下使用lua_tinker
棒子git上的模样更新,but已经有大侠修改了它的源码,可以运行啦!// lua_tinker.h//// LuaTinker - Simple and light C++ wrapper for Lua.//// Copyright (c) 2005-2007 Kwon-il Lee (zupet@hitel.net)// // please check Licence.txt原创 2013-12-11 19:30:16 · 3342 阅读 · 1 评论 -
性能测试工具sysbench简介
http://www.ningoo.net/html/2009/performance_test_tool_sysbench.htmlsysbench是一款开源的多线程性能测试工具,可以执行CPU/内存/线程/IO/数据库等方面的性能测试。数据库目前支持MySQL/Oracle/PostgreSQL。本文只是简单演示一下几种测试的用法,后续准备利用sysbench来对MySQL进行一系转载 2013-11-28 20:22:47 · 1063 阅读 · 0 评论 -
一种自动反射消息类型的 Google Protobuf 网络传输方案
陈硕 (giantchen_AT_gmail)Blog.csdn.net/Solstice t.sina.com.cn/giantchen 这篇文章要解决的问题是:在接收到 protobuf 数据之后,如何自动创建具体的 Protobuf Message 对象,再做的反序列化。“自动”的意思是:当程序中新增一个 protobuf Message 类型时,这部分代码不需要修转载 2013-11-27 18:40:44 · 1547 阅读 · 0 评论 -
如何阅读大型代码库?
本文由 伯乐在线 - 孑良 翻译自 Ayende Rahien。欢迎加入技术翻译小组。转载请参见文章末尾处的要求。Casey问我:“对于新手,有什么有针对性的诀窍来阅读大型代码库吗?”碰巧,我认为这是一个非常好的问题。我觉得想要成为一个优秀的开发者,阅读代码库并弄清清楚内部是怎么回事的能力非常重要。在你的职业生涯中你会中途加入一个现有的项目并被要求迅速融入进去。或者,甚至更转载 2013-11-27 18:24:28 · 886 阅读 · 0 评论