- 博客(11)
- 资源 (9)
- 收藏
- 关注
原创 如何在120行内实现一个有协程并支持tbus的服务器框架
目前协程很火,于是决定搞一个框架试试,下面的代码很短,不过麻雀虽小,五脏俱全。目前支持tbus,配上boost::asio,可以很容易的支持tcp,udp,异步文件读写等操作。附linux下编译指令:g++ server.cpp -I$(BOOST_ROOT) -o server \$(BOOST_ROOT)/stage/lib/libboost_coroutine.a\$(B
2015-08-20 10:44:52 1218
原创 5行代码实现一致性哈希
你没看错,5行代码实现一致性哈希!好吧,我发现我真是越来越噱头了,原理请自行google,我自己分析了下,特分享出来,这个的一个缺点是加减机器只能从最右开始。#include int32_t JumpConsistentHash(uint64_t key, int32_t num_buckets) {int64_t b = -1, j = 0;while (j
2015-08-20 10:42:57 1172
原创 红黑树的插入和遍历时间复杂度分析
红黑树的插入和遍历时间复杂度分析 在平常的工作中,最常用的一种数据结构恐怕是std::map了。因此对其的时间复杂度分析是有必要的,编写程序时做到心中有底。 一、理论分析 在stl中std::map和std::set都采用红黑树的方式实现。我们知道插入一个元素到红黑树的时间为log(N),其中N为当前红黑树的元素个数,因此,采用插入方式构建元素个数
2015-08-20 10:35:01 42100
原创 如何快速写出一个陌生人推荐系统
如何快速写出一个陌生人推荐系统 在社交游戏中,除了和好友互动,经常还会设计陌生人互动的游戏环节。下面两张图分别是QQ水浒和全民农场的陌生人推荐界面。QQ水浒陌生人界面 全民农场陌生人界面 那么,陌生人推荐系统一般是怎么做的呢?下面以全民农场的陌生人推荐系统为例来阐述如何快速构建一个陌生人推荐系统,由于采用了boost::mul
2015-08-20 10:30:18 1299
原创 游戏纹理抖动的成因分析和解决方案
游戏纹理抖动的成因分析和解决方案 最近试用了下Unity,在开发的过程中发现了一个问题,在相机随主角移动的过程中,发现地图的细节部分不停的闪烁,非常讨厌,于是对这一问题进行研究。遂成此文。 一、问题视频1很好的展示了这个问题。我们用草地图片做背景,图片滤波模式设置为point,然后让摄像头沿着X轴缓慢移动,可以看到在移动过程中,图片的某些部分抖动得很厉害,这种程度的抖动对
2015-08-20 10:16:05 4827 1
原创 使用boost::multi_index快速构建排行榜
使用boost::multi_index快速构建排行榜前几天在boost的maillist上看到boost::multi_index将要支持ranked_index(邮件内容见附件2),这实乃我等苦逼写排行榜的人的福音,大家再也不用去分析rank_tree里的内容了,故拿出来和大家一起分享。 ranked_index其内部实现和rank_tree是一样的,但其好
2015-08-20 10:28:35 1787
原创 软件的层次化结构
<br />今天在看前人写的一部分代码,非常有收获,对软件分层思想有了更深的体会。<br />在网络的连接中,数据流的概念很重要,比如TCP流,http tunnel流(通过CONNECT方法穿透),socks5流,ssl流,等等。其中<br />ssl流可以由流tcp,http tunnel或socks5实现,是位于三种基本流的最上层,而http tunnel和socks5流可以由tcp流实现,位于流的中间层。tcp流位于流的最底层。<br />
2011-05-19 20:47:00 950
原创 TCP协议发包机制
TCP协议发包机制当我们通过TCP的socket发送一个大的数据时,TCP会把数据分成一个个小的数据包发送,然而由于接收窗口和拥塞窗口的限制,这些数据包可能不能一次发送出去。这时后继的数据包等待在发送缓冲区,等待窗口的扩大。首先理解窗口:窗口是TCP的流控制方式,窗口开在发送缓冲区,只有在窗口内的数据才能被发送,这样就控制了TCP流量。随着TCP传输的进行,窗口可以增大、减小,可以沿着发送缓冲区移动,TCP两个窗口,分别称为接口窗口和拥塞窗口,注意到这两个窗口都是开在发送缓冲区,是控制发包速率的。如下图所示
2011-05-14 00:06:00 4629
原创 一个不可思议的程序崩溃问题
在一次分析上报上来的崩溃文件中,看到其中的一个崩溃发生在如下的语句中:mov edi, edi而且根据Windows异常机制,是一个Access Volation的问题,当时非常奇怪,后来经过查找资料,找到一个原因是用户的CPU超频了!!!原文链接:http://blogs.msdn.com/b/oldnewthing/archive/2005/04/12/407562.aspx还有一例程序在内存中的可执行代码都改变了,这个问题估计跟硬件有关系,当然也有可能是下载安装过程可执行文件被破坏了。
2011-05-07 00:42:00 601
原创 perl从网页分析出英文单词
1 #!/usr/bin/perl 2 use Inline CPP; 3 package MyParser; 4 use base "HTML::Parser"; 5 6 my $src='src.htm'; 7 my $allow=0; 8 my %hashwords; 9 my @arraywords;10 11 sub trim12 {13 my $str = $_[0];14 $str =~ s/^/s+//o;15 $str =~ s//s+$
2010-10-10 22:40:00 472
原创 kab12.dll 病毒的分析
前几天电脑中了一个病毒。开始系统还没有什么反应。直到卡巴发出病毒警告,说是在http://61.164.118.208这个地址存在病毒,我也没有注意,点了清除。结果卡巴无声关闭。然后用icesword一看,存在一大堆不明进程,进程名字由数字与字母组成。 怎么做?开始是我是把进程一个个给结束掉。然后找到病毒对应的文件,并删除之。恩,感觉好了。可过了一会,系统又出现了不明的进程,而且
2008-09-15 18:36:00 748
protobuf-2.4.1懒解析补丁
2012-09-30
proxy
2008-08-22
opengl实现的光线跟踪
2008-08-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人