<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[程序员成长之路]]></title><description><![CDATA[平凡人，不平凡的事]]></description><link>https://blog.youkuaiyun.com/webols</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; webols]]></copyright><item><title><![CDATA[红黑树]]></title><link>https://blog.youkuaiyun.com/webols/article/details/8105115</link><guid>https://blog.youkuaiyun.com/webols/article/details/8105115</guid><author>webols</author><pubDate>Wed, 24 Oct 2012 00:41:06 +0800</pubDate><description><![CDATA[红黑树是一种自平衡二叉查找树，是在计算机科学中用到的一种数据结构，典型的用途是实现关联数组。它是在1972年由鲁道夫·贝尔发明的，他称之为"对称二叉B树"，它现代的名字是在
 Leo J. Guibas 和 Robert Sedgewick 于1978年写的一篇论文中获得的。它是复杂的，但它的操作有着良好的最坏情况运行时间，并且在实践中是高效的:
 它可以在O(log n)时间内做查找，插入和]]></description><category></category></item><item><title><![CDATA[Linux core 文件介绍]]></title><link>https://blog.youkuaiyun.com/webols/article/details/8068302</link><guid>https://blog.youkuaiyun.com/webols/article/details/8068302</guid><author>webols</author><pubDate>Sat, 13 Oct 2012 21:00:13 +0800</pubDate><description><![CDATA[Linux core 文件介绍





1. core文件的简单介绍
在一个程序崩溃时，它一般会在指定目录下生成一个core文件。core文件仅仅是一个内存映象(同时加上调试信息)，主要是用来调试的。

2. 开启或关闭core文件的生成
用以下命令来阻止系统生成core文件:
ulimit -c 0
下面的命令可以检查生成core文件的选项是否打开:
ulimit -]]></description><category></category></item><item><title><![CDATA[C程序内存结构]]></title><link>https://blog.youkuaiyun.com/webols/article/details/8066605</link><guid>https://blog.youkuaiyun.com/webols/article/details/8066605</guid><author>webols</author><pubDate>Sat, 13 Oct 2012 09:25:18 +0800</pubDate><description><![CDATA[一个32位的运行在保护模式下应用程序，无论是Linux 还是Windows 都给它分配一个4GB的平坦的内存空间

一个运行着的c程序所占用的内存空间分为:
代码区 初始化数据区 未初始化数据区 堆区 和 栈区   在地址上从高位到地位为

（高位）
栈区
堆区
未初始化数据区（即BBS）
数据区
代码区

（低位）

栈区存放函数的参数值、局部变量的值 ，
由编译器]]></description><category></category></item><item><title><![CDATA[Linux 下的线程读写锁]]></title><link>https://blog.youkuaiyun.com/webols/article/details/8063842</link><guid>https://blog.youkuaiyun.com/webols/article/details/8063842</guid><author>webols</author><pubDate>Fri, 12 Oct 2012 11:23:15 +0800</pubDate><description><![CDATA[Linux 下的线程读写锁

有一种写优先读写锁,有如下特点：
1）多个读者可以同时进行读
2）写者必须互斥（只允许一个写者写，也不能读者写者同时进行）
3）写者优先于读者（一旦有写者，则后续读者必须等待，唤醒时优先考虑写者）

在Solaris 中直接提供了读写锁, 但是在Linux 中只提供了线程的读写锁, 这里记录了一些读写锁的资料.

1.Solaris .vs. Lin]]></description><category></category></item><item><title><![CDATA[用 Hadoop 进行分布式并行编程]]></title><link>https://blog.youkuaiyun.com/webols/article/details/8053982</link><guid>https://blog.youkuaiyun.com/webols/article/details/8053982</guid><author>webols</author><pubDate>Tue, 09 Oct 2012 21:16:46 +0800</pubDate><description><![CDATA[用 Hadoop 进行分布式并行编程

Hadoop 简介摘要：Hadoop 是一个实现了 MapReduce 计算模型的开源分布式并行编程框架，借助于 Hadoop, 程序员可以轻松地编写分布式并行程序，将其运行于计算机集群上，完成海量数据的计算。本文将介绍
 MapReduce 计算模型，分布式并行计算等基本概念，以及 Hadoop 的安装部署和基本运行方法。



　　Hado]]></description><category></category></item><item><title><![CDATA[Memcached 集群架构方面的问题]]></title><link>https://blog.youkuaiyun.com/webols/article/details/8053973</link><guid>https://blog.youkuaiyun.com/webols/article/details/8053973</guid><author>webols</author><pubDate>Tue, 09 Oct 2012 21:13:03 +0800</pubDate><description><![CDATA[Memcached 集群架构方面的问题



　　这里收集了经常被问到的关于memcached的问题

memcached是怎么工作的？memcached最大的优势是什么？memcached和MySQL的query
 cache相比，有什么优缺点？memcached和服务器的local
 cache（比如PHP的APC、mmap文件等）相比，有什么优缺点？memcached的cac]]></description><category></category></item><item><title><![CDATA[性能调优攻略]]></title><link>https://blog.youkuaiyun.com/webols/article/details/8026807</link><guid>https://blog.youkuaiyun.com/webols/article/details/8026807</guid><author>webols</author><pubDate>Thu, 27 Sep 2012 23:04:35 +0800</pubDate><description><![CDATA[转载自：http://coolshell.cn/articles/7490.html




关于性能优化这是一个比较大的话题，在《由12306.cn谈谈网站性能技术》中我从业务和设计上说过一些可用的技术以及那些技术的优缺点，今天，想从一些技术细节上谈谈性能优化，主要是一些代码级别的技术和方法。本文的东西是我的一些经验和知识，并不一定全对，希望大家指正和补充。

在开始这篇文章之前，]]></description><category></category></item><item><title><![CDATA[一个fork的面试题]]></title><link>https://blog.youkuaiyun.com/webols/article/details/8026592</link><guid>https://blog.youkuaiyun.com/webols/article/details/8026592</guid><author>webols</author><pubDate>Thu, 27 Sep 2012 21:47:49 +0800</pubDate><description><![CDATA[转载自：http://coolshell.cn/articles/7965.html


前两天有人问了个关于Unix的fork()系统调用的面试题，这个题正好是我大约十年前找工作时某公司问我的一个题，我觉得比较有趣，写篇文章与大家分享一下。这个题是这样的：

题目：请问下面的程序一共输出多少个“-”？







1

2

3

4

5

6]]></description><category></category></item><item><title><![CDATA[《C++经验谈》（1）]]></title><link>https://blog.youkuaiyun.com/webols/article/details/8014717</link><guid>https://blog.youkuaiyun.com/webols/article/details/8014717</guid><author>webols</author><pubDate>Mon, 24 Sep 2012 21:50:58 +0800</pubDate><description><![CDATA[在开发C++程序时，一般在吞吐量、并发、实时性上有较高的要求。设计C++程序时，总结起来可以从如下几点提高效率：


l  并发
l  异步
l  缓存

下面将我平常工作中遇到一些问题例举一二，其设计思想无非以上三点。
1任务队列
1.1    以生产者-消费者模型设计任务队列

　　生产者-消费者模型是人们非常熟悉的模型，比如在某个服务器程序中，当User数据被逻辑模块修]]></description><category></category></item><item><title><![CDATA[Linux 套接字编程中的 5 个隐患]]></title><link>https://blog.youkuaiyun.com/webols/article/details/7976274</link><guid>https://blog.youkuaiyun.com/webols/article/details/7976274</guid><author>webols</author><pubDate>Thu, 13 Sep 2012 19:03:57 +0800</pubDate><description><![CDATA[Linux 套接字编程中的 5 个隐患
在异构环境中开发可靠的网络应用程序





转载自：http://www.ibm.com/developerworks/cn/linux/l-sockpit/




在 4.2 BSD UNIX® 操作系统中首次引入，Sockets API 现在是任何操作系统的标准特性。事实上，很难找到一种不支持 Sockets API 的现代语]]></description><category></category></item><item><title><![CDATA[哈希链表实现的LRU缓存算法]]></title><link>https://blog.youkuaiyun.com/webols/article/details/7940779</link><guid>https://blog.youkuaiyun.com/webols/article/details/7940779</guid><author>webols</author><pubDate>Tue, 04 Sep 2012 09:57:17 +0800</pubDate><description><![CDATA[在做三角网格文件转换的时候需要对从文件中读取的顶点坐标进行缓存，于是索性做了一个哈希缓存以提高访问效率，同时以LRU原则在缓存满的情况下清楚缓存中的单元。在hash表中我用了最简单的取摸的方法，由于原顶点有一个索引而且这种索引连续，所以取摸的方法已经可以达到平均散列。在处理碰撞的时候我使用了链表，而所有在缓存中的单元都按放入缓存的时间串成一个链表，这样在清除单元的时候选择队尾的元素进行清除即可。]]></description><category></category></item><item><title><![CDATA[一致性哈希算法（Consistent Hashing）]]></title><link>https://blog.youkuaiyun.com/webols/article/details/7940703</link><guid>https://blog.youkuaiyun.com/webols/article/details/7940703</guid><author>webols</author><pubDate>Tue, 04 Sep 2012 09:50:02 +0800</pubDate><description><![CDATA[consistent hashing 算法早在 1997 年就在论文 Consistent hashing and random trees 中被提出，目前在 cache 系统中应用越来越广泛；

1 基本场景

比如你有 N 个 cache 服务器（后面简称 cache ），那么如何将一个对象 object 映射到 N 个 cache 上呢，你很可能会采用类似下面的通用方法计算 obje]]></description><category></category></item><item><title><![CDATA[vim命令详解]]></title><link>https://blog.youkuaiyun.com/webols/article/details/7771526</link><guid>https://blog.youkuaiyun.com/webols/article/details/7771526</guid><author>webols</author><pubDate>Sat, 21 Jul 2012 22:56:07 +0800</pubDate><description><![CDATA[高级一些的编辑器，都会包含宏功能，vim当然不能缺少了，在vim中使用宏是非常方便的：

:qx 开始记录宏，并将结果存入寄存器x
q 退出记录模式
@x 播放记录在x寄存器中的宏命令
稍微解释一下，当在normal模式下输入:qx后，你对文本的所有编辑动作将会被记录下来，再次输入q即退出了记录模
式，然后输入@x对刚才记录下来的命令进行重复，此命令后可跟数字，表示要重复多少次，比如@]]></description><category></category></item><item><title><![CDATA[vim配置详解]]></title><link>https://blog.youkuaiyun.com/webols/article/details/7754794</link><guid>https://blog.youkuaiyun.com/webols/article/details/7754794</guid><author>webols</author><pubDate>Tue, 17 Jul 2012 12:31:24 +0800</pubDate><description><![CDATA[打开控制台，转到vim目录。 




$:cd /etc/vim/

vim 目录有个vimrc文件，以root权限打开修改。为了以后还原，最好备份一份。

sudo cp vimrc vimrc.bak

然后打开vimrc，修改你需要的配置，下面配置文件有中文注释。

sudo vim vimrc

修改好保存
"=======================]]></description><category></category></item><item><title><![CDATA[谈谈游戏服务器架构设计]]></title><link>https://blog.youkuaiyun.com/webols/article/details/7574549</link><guid>https://blog.youkuaiyun.com/webols/article/details/7574549</guid><author>webols</author><pubDate>Wed, 16 May 2012 23:58:00 +0800</pubDate><description><![CDATA[http://www.bairuitech.com/html/xingyezixun/20090528/121.html

服务器结构探讨 -- 最简单的结构 

　　所谓服务器结构，也就是如何将服务器各部分合理地安排，以实现最初的功能需求。所以，结构本无所谓正确与错误；当然，优秀的结构更有助于系统的搭建，对系统的可扩展性及可维护性也有更大的帮助。 

　　好的结构不是一蹴而就的，而且]]></description><category></category></item><item><title><![CDATA[Windows平台网络游戏服务器端开发]]></title><link>https://blog.youkuaiyun.com/webols/article/details/7573464</link><guid>https://blog.youkuaiyun.com/webols/article/details/7573464</guid><author>webols</author><pubDate>Wed, 16 May 2012 17:18:30 +0800</pubDate><description><![CDATA[当今网络游戏在中国大陆已经在大范围的蔓延，暂且不论这样的一种趋势会带来什么样的游戏产业趋势。这里只就网络游戏的制作和大家进行交流，同时将自己的制作经验写处理，希望为中国的游戏业的发展做出一点点的贡献。。


网络游戏的程序开发从某种意义上来看，最重要的应该在于游戏服务器端的设计和制作。对于服务器端的制作。将分为以下几个模块进行：


1．网络通信模块
2．协议模块
3．线程池模块]]></description><category></category></item><item><title><![CDATA[在Mysql数据库中查看和修改字符集]]></title><link>https://blog.youkuaiyun.com/webols/article/details/7547551</link><guid>https://blog.youkuaiyun.com/webols/article/details/7547551</guid><author>webols</author><pubDate>Tue, 08 May 2012 20:14:28 +0800</pubDate><description><![CDATA[MYSQL 字符集问题


MySQL的字符集支持(Character Set Support)有两个方面：
      字符集(Character set)和排序方式(Collation)。
对于字符集的支持细化到四个层次:
      服务器(server)，数据库(database)，数据表(table)和连接(connection)。
1.MySQL默认字符集
MySQL对]]></description><category></category></item><item><title><![CDATA[SQL 基础]]></title><link>https://blog.youkuaiyun.com/webols/article/details/7539495</link><guid>https://blog.youkuaiyun.com/webols/article/details/7539495</guid><author>webols</author><pubDate>Sun, 06 May 2012 14:42:33 +0800</pubDate><description><![CDATA[SQL 基础



一、SQL简介

         现在SQL是基于SQL-86标准逐步修改出来的
二、MySQL使用入门

1、SQL分类

         SQL语句主要分为3类：

（1）      DDL：数据定义语句，用于定义数据库对象，例如：create、drop、alter

（2）      DML：数据操纵语句，用于添加、删除、更新和查询数据库]]></description><category></category></item><item><title><![CDATA[网络游戏服务器端设计（3）]]></title><link>https://blog.youkuaiyun.com/webols/article/details/7539483</link><guid>https://blog.youkuaiyun.com/webols/article/details/7539483</guid><author>webols</author><pubDate>Sun, 06 May 2012 14:38:01 +0800</pubDate><description><![CDATA[原文地址：http://dev.gameres.com/Program/Abstract/Thinking/online_g_4.htm

在这一章节，我想谈谈关于服务器端的脚本的相关设计。因为在上一章节里面，谈NPC智能相关的时候已经接触到一些脚本相关的东东了。还是先来谈谈脚本的作用吧。
　　在基于编译的服务器端程序中，是无法在程序的运行过程中构建一些东西的，那么这个时候就需要脚本语言的支]]></description><category></category></item><item><title><![CDATA[网络游戏服务器端设计（2）]]></title><link>https://blog.youkuaiyun.com/webols/article/details/7539462</link><guid>https://blog.youkuaiyun.com/webols/article/details/7539462</guid><author>webols</author><pubDate>Sun, 06 May 2012 14:32:53 +0800</pubDate><description><![CDATA[原文地址：http://dev.gameres.com/Program/Abstract/Thinking/online_g_3.htm

　下面我想来谈谈关于服务器上NPC的设计以及NPC智能等一些方面涉及到的问题。首先，我们需要知道什么是NPC，NPC需要做什么。NPC的全称是（Non-Player Character），很显然，他是一个character，但不是玩家，那么从这点上可以知道]]></description><category></category></item></channel></rss>