<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[恨天低]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/icechenbing</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; icechenbing]]></copyright><item><title><![CDATA[Web服务器压力(负载)测试工具]]></title><link>https://blog.youkuaiyun.com/icechenbing/article/details/20620097</link><guid>https://blog.youkuaiyun.com/icechenbing/article/details/20620097</guid><author>icechenbing</author><pubDate>Thu, 06 Mar 2014 13:09:47 +0800</pubDate><description><![CDATA[Web服务器压力(负载)测试工具
 

 

一 Siege
一款开源的压力测试工具，可以根据配置对一个WEB站点进行多用户的并发访问，记录每个用户所有请求过程的相应时间，并在一定数量的并发访问下重复进行。
官方：http://www.joedog.org/

1. 下载源码

请自行google例如:
wget http://soft.vpser.net/test/sie]]></description><category></category></item><item><title><![CDATA[Reactor和Proactor]]></title><link>https://blog.youkuaiyun.com/icechenbing/article/details/19561317</link><guid>https://blog.youkuaiyun.com/icechenbing/article/details/19561317</guid><author>icechenbing</author><pubDate>Thu, 20 Feb 2014 16:29:42 +0800</pubDate><description><![CDATA[1、标准定义

两种I/O多路复用模式：Reactor和Proactor

一般地,I/O多路复用机制都依赖于一个事件多路分离器(Event Demultiplexer)。分离器对象可将来自事件源的I/O事件分离出来，并分发到对应的read/write事件处理器(Event Handler)。开发人员预先注册需要处理的事件及其事件处理器（或回调函数）；事件分离器负责将请求事件传递给事件处理]]></description><category></category></item><item><title><![CDATA[Linux查看文件编码格式及文件编码转换]]></title><link>https://blog.youkuaiyun.com/icechenbing/article/details/19413493</link><guid>https://blog.youkuaiyun.com/icechenbing/article/details/19413493</guid><author>icechenbing</author><pubDate>Tue, 18 Feb 2014 15:52:53 +0800</pubDate><description><![CDATA[如果你需要在Linux 中操作windows下的文件，那么你可能会经常遇到文件编码转换的问题。Windows中默认的文件格式是GBK(gb2312)，而Linux一般都是UTF-8。下面介绍一下，在Linux中如何查看文件的编码及如何进行对文件进行编码转换。

查看文件编码
在Linux中查看文件编码可以通过以下几种方式：
1.在Vim 中可以直接查看文件编码



Shell代码]]></description><category></category></item><item><title><![CDATA[Http协议详解]]></title><link>https://blog.youkuaiyun.com/icechenbing/article/details/9412161</link><guid>https://blog.youkuaiyun.com/icechenbing/article/details/9412161</guid><author>icechenbing</author><pubDate>Mon, 22 Jul 2013 18:24:19 +0800</pubDate><description><![CDATA[引言                                        


HTTP是一个属于应用层的面向对象的协议，由于其简捷、快速的方式，适用于分布式超媒体信息系统。它于1990年提出，经过几年的使用与发展，得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版，HTTP/1.1的规范化工作正在进行之中，而且HTTP-NG(Next Generation of]]></description><category></category></item><item><title><![CDATA[sar使用说明]]></title><link>https://blog.youkuaiyun.com/icechenbing/article/details/9178913</link><guid>https://blog.youkuaiyun.com/icechenbing/article/details/9178913</guid><author>icechenbing</author><pubDate>Wed, 26 Jun 2013 14:22:40 +0800</pubDate><description><![CDATA[sar这东西，一开始还以为是内部有的，原来是外部的工具,可以到http://pagesperso-orange.fr/sebastien.godard/download.html去下载


 
1 安装
   tar zxvf  xxx.tar.gz
  ./configure
   make
   make install
 
2  使用
　　　pidstat 2 5]]></description><category></category></item><item><title><![CDATA[Perl内置特殊变量]]></title><link>https://blog.youkuaiyun.com/icechenbing/article/details/9096335</link><guid>https://blog.youkuaiyun.com/icechenbing/article/details/9096335</guid><author>icechenbing</author><pubDate>Fri, 14 Jun 2013 16:57:09 +0800</pubDate><description><![CDATA[一、正则表达式特殊变量：
1、$n 　　:包含上次模式匹配的第n个子串
2、$& 　　:前一次成功模式匹配的字符串
3、$`　　 :前次匹配成功的子串之前的内容
4、$’ 　　:前次匹配成功的子串之后的内容
5、$+　　:前一次使用括号的模式匹配的字符串.
二、文件句柄特殊变量:
1、$|　　:如果设置为零,在每次调用函数write或print后，自动调用函数fflush,将所写内容]]></description><category></category></item><item><title><![CDATA[Perl 获取cpu使用率]]></title><link>https://blog.youkuaiyun.com/icechenbing/article/details/9087503</link><guid>https://blog.youkuaiyun.com/icechenbing/article/details/9087503</guid><author>icechenbing</author><pubDate>Thu, 13 Jun 2013 16:12:27 +0800</pubDate><description><![CDATA[1、先了解/proc/stat文件信息

    在Linux/Unix下，CPU利用率分为用户态，系统态和空闲态，分别表示CPU处于用户态执行的时间，系统内核执行的时间，和空闲系统进程执行的时间。平时所说的CPU利用率是指：CPU执行非系统空闲进程的时间 / CPU总的执行时间。

    此信息都存储在/proc/stat文件中，

    在Linux的内核中，有一个全局变量：J]]></description><category></category></item><item><title><![CDATA[Nginx安装教程]]></title><link>https://blog.youkuaiyun.com/icechenbing/article/details/9049665</link><guid>https://blog.youkuaiyun.com/icechenbing/article/details/9049665</guid><author>icechenbing</author><pubDate>Fri, 07 Jun 2013 17:24:21 +0800</pubDate><description><![CDATA[nginx可以使用各平台的默认包来安装，本文是介绍使用源码编译安装，包括具体的编译参数信息。

正式开始前，编译环境gcc g++ 开发库之类的需要提前装好，这里默认你已经装好。

ububtu平台编译环境可以使用以下指令








apt-get
install

build-essential

apt-get
install

libtool]]></description><category></category></item><item><title><![CDATA[inotify -- Linux 2.6 内核中的文件系统变化通知机制]]></title><link>https://blog.youkuaiyun.com/icechenbing/article/details/8956903</link><guid>https://blog.youkuaiyun.com/icechenbing/article/details/8956903</guid><author>icechenbing</author><pubDate>Tue, 21 May 2013 18:57:14 +0800</pubDate><description><![CDATA[一、 引言

众所周知，Linux 桌面系统与 MAC 或 Windows 相比有许多不如人意的地方，为了改善这种状况，开源社区提出用户态需要内核提供一些机制，以便用户态能够及时地得知内核或底层硬件设备发生了什么，从而能够更好地管理设备，给用户提供更好的服务，如 hotplug、udev 和 inotify 就是这种需求催生的。Hotplug 是一种内核向用户态应用通报关于热插拔设备一些事件发]]></description><category></category></item><item><title><![CDATA[C++智能指针详解]]></title><link>https://blog.youkuaiyun.com/icechenbing/article/details/8676400</link><guid>https://blog.youkuaiyun.com/icechenbing/article/details/8676400</guid><author>icechenbing</author><pubDate>Fri, 15 Mar 2013 10:07:22 +0800</pubDate><description><![CDATA[一、简介
由于 C++ 语言没有自动内存回收机制，程序员每次 new 出来的内存都要手动 delete。程序员忘记 delete，流程太复杂，最终导致没有 delete，异常导致程序过早退出，没有执行delete 的情况并不罕见。
用智能指针便可以有效缓解这类问题，本文主要讲解参见的智能指针的用法。包括：std::auto_ptr、boost::scoped_ptr、boost::shared]]></description><category></category></item><item><title><![CDATA[C++堆排序模板]]></title><link>https://blog.youkuaiyun.com/icechenbing/article/details/8663547</link><guid>https://blog.youkuaiyun.com/icechenbing/article/details/8663547</guid><author>icechenbing</author><pubDate>Tue, 12 Mar 2013 14:29:03 +0800</pubDate><description><![CDATA[在程序设计相关领域，堆(Heap)的概念主要涉及到两个方面：

一种数据结构，逻辑上是一颗完全二叉树，存储上是一个数组对象（二叉堆）。垃圾收集存储区，是软件系统可以编程的内存区域。

本文所说的堆，指的是前者。

堆排序的时间复杂度是O(nlgN)，与快速排序达到相同的时间复杂度。但是在实际应用中，我们往往采用快速排序而不是堆排序。这是因为快速排序的一个好的实现，往往比堆排序具有更好的]]></description><category></category></item><item><title><![CDATA[C++归并排序模板]]></title><link>https://blog.youkuaiyun.com/icechenbing/article/details/8651716</link><guid>https://blog.youkuaiyun.com/icechenbing/article/details/8651716</guid><author>icechenbing</author><pubDate>Fri, 08 Mar 2013 17:43:34 +0800</pubDate><description><![CDATA[#include 
using namespace std;

template  void Merge( T* arr, int low, int mid, int high )
{
    int i, j, k;
    i = low;
    j = mid + 1;
    k = 0;
    T* tmp = new T[high - low + 1];

    while( i]]></description><category></category></item><item><title><![CDATA[C++插入排序模板]]></title><link>https://blog.youkuaiyun.com/icechenbing/article/details/8651113</link><guid>https://blog.youkuaiyun.com/icechenbing/article/details/8651113</guid><author>icechenbing</author><pubDate>Fri, 08 Mar 2013 15:51:30 +0800</pubDate><description><![CDATA[#include 
using namespace std;

template  void InsertSort( T* arr, int n ) 
{
    T x;
    int i, j;
    for ( i = 1; i < n; i++ )
    {   
        x = *(arr + i); 
        for ( j = i - 1; j >= 0; j-]]></description><category></category></item><item><title><![CDATA[snoop 抓包]]></title><link>https://blog.youkuaiyun.com/icechenbing/article/details/8616684</link><guid>https://blog.youkuaiyun.com/icechenbing/article/details/8616684</guid><author>icechenbing</author><pubDate>Wed, 27 Feb 2013 11:04:41 +0800</pubDate><description><![CDATA[例子：snoop -d hme1 -ta -x 54 192.168.30.150 and port 23520 and tcp

 参数简介： 
[ -a ] # Listen to packets on audio 
[ -d device ] # settable to le?, ie?, bf?, tr? 
[ -s snaplen ] # Truncate packets]]></description><category></category></item><item><title><![CDATA[Linux 非阻塞connect，错误码：EINPROGRESS]]></title><link>https://blog.youkuaiyun.com/icechenbing/article/details/8614101</link><guid>https://blog.youkuaiyun.com/icechenbing/article/details/8614101</guid><author>icechenbing</author><pubDate>Tue, 26 Feb 2013 15:56:08 +0800</pubDate><description><![CDATA[当我们以非阻塞的方式来进行连接的时候，返回的结果如果是 -1,这并不代表这次连接发生了错误，如果它的返回结果是 EINPROGRESS，那么就代表连接还在进行中。 后面可以通过poll或者select来判断socket是否可写，如果可以写，说明连接完成了。]]></description><category></category></item><item><title><![CDATA[职责链模式]]></title><link>https://blog.youkuaiyun.com/icechenbing/article/details/8552938</link><guid>https://blog.youkuaiyun.com/icechenbing/article/details/8552938</guid><author>icechenbing</author><pubDate>Tue, 29 Jan 2013 15:36:23 +0800</pubDate><description><![CDATA[软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性：封装、继承、多态，真正领悟设计模式的精髓是可能一个漫长的过程，需要大量实践经验的积累。最近看设计模式的书，对于每个模式，用C++写了个小例子，加深一下理解。主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。本文介绍装饰模式的实现。

       职责链模式：使]]></description><category></category></item><item><title><![CDATA[装饰者模式]]></title><link>https://blog.youkuaiyun.com/icechenbing/article/details/8549474</link><guid>https://blog.youkuaiyun.com/icechenbing/article/details/8549474</guid><author>icechenbing</author><pubDate>Mon, 28 Jan 2013 16:26:53 +0800</pubDate><description><![CDATA[想象一下有如下的场景：



    有两种主咖啡， 可以搭配任意的饮料，我们的目标是允许类容易扩展，在不修改现有代码的情况下，可以搭配新的行为。这里可以用装饰者模式来实现。

1. uml 图

    装饰者模式动态地将责任附加到对象上，若要扩展功能，装饰者提供了比继承更有弹性的替代方案。



    这里吹一下装饰者模式的好处：


每个组件都可以单独使用，或]]></description><category></category></item><item><title><![CDATA[Solaris下使用mdb检查内存泄露]]></title><link>https://blog.youkuaiyun.com/icechenbing/article/details/8534935</link><guid>https://blog.youkuaiyun.com/icechenbing/article/details/8534935</guid><author>icechenbing</author><pubDate>Wed, 23 Jan 2013 16:56:23 +0800</pubDate><description><![CDATA[步骤一：
UMEM_DEBUG=default UMEM_LOGGING=transaction LD_PRELOAD=libumem.so.1 ./spAgent &


步骤二：
-bash-3.00$ mdb -p 16546 //上面得到进程ID
Loading modules: [ ld.so.1 libumem.so.1 libc.so.1 ]



步骤三：
-]]></description><category></category></item><item><title><![CDATA[观察者模式]]></title><link>https://blog.youkuaiyun.com/icechenbing/article/details/8438813</link><guid>https://blog.youkuaiyun.com/icechenbing/article/details/8438813</guid><author>icechenbing</author><pubDate>Wed, 26 Dec 2012 14:07:02 +0800</pubDate><description><![CDATA[观察者模式概念：定义对象间的一种一对多的依赖关系，以便当一个对象的状态发生改变时，所有依赖于它的对象都得到通知并自动更新。“Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automat]]></description><category></category></item><item><title><![CDATA[同步与异步IO、阻塞与非阻塞IO]]></title><link>https://blog.youkuaiyun.com/icechenbing/article/details/7941903</link><guid>https://blog.youkuaiyun.com/icechenbing/article/details/7941903</guid><author>icechenbing</author><pubDate>Tue, 04 Sep 2012 14:14:14 +0800</pubDate><description><![CDATA[很多时候我们常常看到同步与异步，阻塞与非阻塞的出现。有的地方直接将同步与阻塞画上了等号。异步与非阻塞画上了等号。事实上这是不对的。同步不等于阻塞，而异步也不等于非阻塞。下面就来仔细的看看同步与异步、阻塞与非阻塞的概念差别，及他们的组合应用。

   同步：所谓同步，就是在发出一个功能调用时，在没有得到结果之前，该调用就不返回。按照这个定义，其实绝大多数函数都是同步调用（例如sin,
 isd]]></description><category></category></item></channel></rss>