<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[benpaobagzb的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/benpaobagzb</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; benpaobagzb]]></copyright><item><title><![CDATA[使用gprof来对程序的性能分析总结]]></title><link>https://blog.youkuaiyun.com/benpaobagzb/article/details/51702733</link><guid>https://blog.youkuaiyun.com/benpaobagzb/article/details/51702733</guid><author>benpaobagzb</author><pubDate>Fri, 17 Jun 2016 21:39:54 +0800</pubDate><description><![CDATA[综述

gprof用于分析函数调用耗时，可用之抓出最耗时的函数，以便优化程序。gcc链接时也一定要加-pg参数，以使程序运行结束后生成gmon.out文件，供gprof分析。gprof默认不支持多线程程序，默认不支持共享库程序。

gcc -pg 编译程序运行程序，程序退出时生成 gmon.outgprof ./prog gmon.out -b 查看输出

注意事项

程序如果不是]]></description><category></category></item><item><title><![CDATA[服务器TIME_WAIT和CLOSE_WAIT详解和解决办法]]></title><link>https://blog.youkuaiyun.com/benpaobagzb/article/details/51702695</link><guid>https://blog.youkuaiyun.com/benpaobagzb/article/details/51702695</guid><author>benpaobagzb</author><pubDate>Fri, 17 Jun 2016 21:31:19 +0800</pubDate><description><![CDATA[昨天解决了一个HttpClient调用错误导致的服务器异常，具体过程如下：

http://blog.youkuaiyun.com/shootyou/article/details/6615051

里头的分析过程有提到，通过查看服务器网络状态检测到服务器有大量的CLOSE_WAIT的状态。

 

在服务器的日常维护过程中，会经常用到下面的命令：



netstat -n | aw]]></description><category></category></item><item><title><![CDATA[wait3,wait4 用法]]></title><link>https://blog.youkuaiyun.com/benpaobagzb/article/details/51702687</link><guid>https://blog.youkuaiyun.com/benpaobagzb/article/details/51702687</guid><author>benpaobagzb</author><pubDate>Fri, 17 Jun 2016 21:28:34 +0800</pubDate><description><![CDATA[在阅读redis代码的时候看到的一些新知识，新用法，wait3的用法。

redis的用法。





[cpp] view
 plain copy


 



int statloc;  
       pid_t pid;  
  
       if ((pid = wait3(&statloc,WNOHANG,NULL)) != 0) {  
  ]]></description><category></category></item><item><title><![CDATA[linux 下的不同函数的编程效率分享总结]]></title><link>https://blog.youkuaiyun.com/benpaobagzb/article/details/51701963</link><guid>https://blog.youkuaiyun.com/benpaobagzb/article/details/51701963</guid><author>benpaobagzb</author><pubDate>Fri, 17 Jun 2016 18:27:19 +0800</pubDate><description><![CDATA[操作


性能




memset  1K


150W次/s




memcpy  1K


150W次/s




malloc 小字节 单线程


100W次/s




gettimeofday


30W~400W次/s




time


30W~400W次/s




getpid]]></description><category></category></item><item><title><![CDATA[基于Web开发模式的信息抽取]]></title><link>https://blog.youkuaiyun.com/benpaobagzb/article/details/51701937</link><guid>https://blog.youkuaiyun.com/benpaobagzb/article/details/51701937</guid><author>benpaobagzb</author><pubDate>Fri, 17 Jun 2016 18:22:36 +0800</pubDate><description><![CDATA[基于Web 开发模式的信息抽取


信息抽取是一个互联网自然语言处理的一个首要环节，信息抽取的准确度会直接影响到后续的处理。信息抽取的目标是去除噪音，获取网页有价值的信息如网页的标题、时间、正文、链接等信息。
 
主流算法介绍
网页信息抽取的方法有很多，比如从算法上分：基于模板的，基于信息量、基于视觉的、基于语义挖掘的、基于统计的。从HTML 处理上分为：基于行块、基于DOM 树。下面]]></description><category></category></item><item><title><![CDATA[性能测试、指标和优化 -- 性能相关总结]]></title><link>https://blog.youkuaiyun.com/benpaobagzb/article/details/51701921</link><guid>https://blog.youkuaiyun.com/benpaobagzb/article/details/51701921</guid><author>benpaobagzb</author><pubDate>Fri, 17 Jun 2016 18:18:20 +0800</pubDate><description><![CDATA[这篇博文主要是涉及到服务端性能，对于前端性能比较少涉及，但是最后一部分简单介绍了前端（Web页面）的测试和调优。这篇文章最早写于2012年，今天翻出来，又重新梳理了一下。哦，对了，如果对本博客中所有文章有疑问，请发邮件到lihaibo2006$gmail.com，我一般晚上就能看到。

一、性能测试的类型

    实际上性能是一个很很宽泛的词，系统出了问题大多归结为性能有问题，比如访问速]]></description><category></category></item><item><title><![CDATA[Linux下代码内存泄露检查工具valgrind]]></title><link>https://blog.youkuaiyun.com/benpaobagzb/article/details/51701903</link><guid>https://blog.youkuaiyun.com/benpaobagzb/article/details/51701903</guid><author>benpaobagzb</author><pubDate>Fri, 17 Jun 2016 18:16:15 +0800</pubDate><description><![CDATA[自己写的代码内存呼呼的往上涨，同事告诉我一个内存泄露检查的工具valgrind，于是就用了用。
1安装
sudo apt-get install valgrind
也可以到官方网站去下载：http://www.valgrind.org

2使用
结果输出到终端，运行命令
valgrind --leak-check=full --track-fds=yes 程序 参数
结果输出到日志]]></description><category></category></item><item><title><![CDATA[推荐两篇Linux下的Socket文章]]></title><link>https://blog.youkuaiyun.com/benpaobagzb/article/details/51701882</link><guid>https://blog.youkuaiyun.com/benpaobagzb/article/details/51701882</guid><author>benpaobagzb</author><pubDate>Fri, 17 Jun 2016 18:13:30 +0800</pubDate><description><![CDATA[Linux Socket
Linux下Socket编程
HTTP 协议的简介
HTTP 协议的简介 

　　HTTP协议是一种超文本传输协议（Hypertext Transfer Protocol），工作于网络应用层，自1990年起广泛应用于WWW 的全球信息服务，HTTP协议的详细说明可以在网上查阅RFC2518、RFC2616等文档。 


　　HTTP 协议老的标准是HTTP]]></description><category></category></item><item><title><![CDATA[memset效率问题]]></title><link>https://blog.youkuaiyun.com/benpaobagzb/article/details/51701871</link><guid>https://blog.youkuaiyun.com/benpaobagzb/article/details/51701871</guid><author>benpaobagzb</author><pubDate>Fri, 17 Jun 2016 18:10:24 +0800</pubDate><description><![CDATA[char buff[10]

初始化一个字符数组，只需要buff[0] = '\0'即可，没有必要用memset，在使用该buff时，需要注意末尾加'\0'，这样性能比较好。








[cpp] view
 plain copy






#include   
#include "sys/time.h"  
  
void use_memse]]></description><category></category></item><item><title><![CDATA[数据表水平切分的ID规则]]></title><link>https://blog.youkuaiyun.com/benpaobagzb/article/details/51701850</link><guid>https://blog.youkuaiyun.com/benpaobagzb/article/details/51701850</guid><author>benpaobagzb</author><pubDate>Fri, 17 Jun 2016 18:07:28 +0800</pubDate><description><![CDATA[这个问题很突出，所以转过来说一下。

http://www.jianzhaoyang.com/database/sharding_groups_global_pk

现在通过数据的水平切分（sharding）来实现数据库 Scale Out 的解决方案受到了越来越多人的青睐，但是在切分过程中可能遇到的问题也肯定不在少数，如切分规则的设计，切分后的访问路由，切分后的主键的全局唯一等等。
]]></description><category></category></item><item><title><![CDATA[c++声明/定义,静态/非静态,变量/函数]]></title><link>https://blog.youkuaiyun.com/benpaobagzb/article/details/51701848</link><guid>https://blog.youkuaiyun.com/benpaobagzb/article/details/51701848</guid><author>benpaobagzb</author><pubDate>Fri, 17 Jun 2016 18:06:20 +0800</pubDate><description><![CDATA[我以前也很糊涂，所以研究了一下，写了一个例子。如下

 

//----------------- def.h ----------------

#ifndef _DEF_H_
#define _DEF_H_

static int a = 1;
extern int b;
int add();

#endif

 

//---------------- de]]></description><category></category></item><item><title><![CDATA[设置正确的线程数量]]></title><link>https://blog.youkuaiyun.com/benpaobagzb/article/details/51701787</link><guid>https://blog.youkuaiyun.com/benpaobagzb/article/details/51701787</guid><author>benpaobagzb</author><pubDate>Fri, 17 Jun 2016 17:56:15 +0800</pubDate><description><![CDATA[《高性能服务器架构 》中提到了SEDA，我搜了一下，发现这篇文章《SEDA性能优化的分析和模拟 》，对于线程数量的建议。假如一个Web请求，代码执行的时间为ST（Service
 Time），读文件、网络调用之类IO等待时间为为WT（Wait Time），CPU的个数是N、核数是M则线程数量TC（Thread Count）为：

 

    TC= N*M*(1+WT/ST)

 ]]></description><category></category></item><item><title><![CDATA[代码行统计工具]]></title><link>https://blog.youkuaiyun.com/benpaobagzb/article/details/51701759</link><guid>https://blog.youkuaiyun.com/benpaobagzb/article/details/51701759</guid><author>benpaobagzb</author><pubDate>Fri, 17 Jun 2016 17:52:27 +0800</pubDate><description><![CDATA[统计h/c/cpp/cc/代码，Python写的，只是统计了行数，没有区分空行，注释等





[python] view
 plain copy






#! /usr/bin/python  
# coding=utf-8  
import os,sys  
def getCount(dr):  
    c = 0  
    for l in o]]></description><category></category></item><item><title><![CDATA[SecureCRT自动登陆到服务器的脚本以及脚本编写简单说明]]></title><link>https://blog.youkuaiyun.com/benpaobagzb/article/details/51701744</link><guid>https://blog.youkuaiyun.com/benpaobagzb/article/details/51701744</guid><author>benpaobagzb</author><pubDate>Fri, 17 Jun 2016 17:51:04 +0800</pubDate><description><![CDATA[Secure用SSH登陆服务器时，如果服务器较多，登陆一次很麻烦，所以，可以自己编写VBScript来搞定。

一、Secure脚本介绍

Secure是VBScript脚本，VB脚本的教程，请参考有关文档。

Secure自带的对象如下：

Application对象，就是crt，是个顶层的对象，所有其他内容都从这个对象中获得

Session，会话对象，负责连接相关

]]></description><category></category></item><item><title><![CDATA[C/C++计时器检查程序性能]]></title><link>https://blog.youkuaiyun.com/benpaobagzb/article/details/51701733</link><guid>https://blog.youkuaiyun.com/benpaobagzb/article/details/51701733</guid><author>benpaobagzb</author><pubDate>Fri, 17 Jun 2016 17:49:57 +0800</pubDate><description><![CDATA[一般设计C/C++程序需要每秒能处理多少的数据，因此可以做一个简单的计时器来计时，代码如下：





[cpp] view
 plain copy






#ifndef _TIMER_H_  
#define _TIMER_H_  
#include   
#include   
using namespace std;  
class Timer{ ]]></description><category></category></item><item><title><![CDATA[Python发送邮件的例子]]></title><link>https://blog.youkuaiyun.com/benpaobagzb/article/details/51701721</link><guid>https://blog.youkuaiyun.com/benpaobagzb/article/details/51701721</guid><author>benpaobagzb</author><pubDate>Fri, 17 Jun 2016 17:48:41 +0800</pubDate><description><![CDATA[import base64, smtplib  
from email.mime.text import MIMEText  
from email.header import Header  
  
def mail_info(data, date):  
    mailserver = "smtp.exmail.qq.com"  
    username = "server@x]]></description><category></category></item><item><title><![CDATA[CPU负载的分析]]></title><link>https://blog.youkuaiyun.com/benpaobagzb/article/details/51701713</link><guid>https://blog.youkuaiyun.com/benpaobagzb/article/details/51701713</guid><author>benpaobagzb</author><pubDate>Fri, 17 Jun 2016 17:48:13 +0800</pubDate><description><![CDATA[最近对我的本本（4核8线程）用top命令看系统状况出现了CPU利用率超过200%的情况，非常诧异，查了下相关资料，把这个问题弄清楚了。
首先来分析下CPU Load


load average: 0.09, 0.05, 0.01


分别是1分钟、5分钟、15分钟的平均Load。
Load这个东西怎么理解呢，就像一条马路，有N个车道，如果N个进程进入车道，那么正好一人一个，再多一]]></description><category></category></item><item><title><![CDATA[高性能服务器架构(High-Performance Server Architecture)]]></title><link>https://blog.youkuaiyun.com/benpaobagzb/article/details/51701658</link><guid>https://blog.youkuaiyun.com/benpaobagzb/article/details/51701658</guid><author>benpaobagzb</author><pubDate>Fri, 17 Jun 2016 17:42:41 +0800</pubDate><description><![CDATA[High-Performance Server Architecture
高性能服务器架构
来源：http://pl.atyp.us/content/tech/servers.html
译文来源：http://www.lupaworld.com/home/space-341888-do-blog-id-136718.html
（map注：本人看了一遍，“于我心有戚戚焉”，翻译得也很好，于是]]></description><category></category></item><item><title><![CDATA[GCC 提供的原子操作总结]]></title><link>https://blog.youkuaiyun.com/benpaobagzb/article/details/51700250</link><guid>https://blog.youkuaiyun.com/benpaobagzb/article/details/51700250</guid><author>benpaobagzb</author><pubDate>Fri, 17 Jun 2016 15:26:30 +0800</pubDate><description><![CDATA[gcc从4.1.2提供了__sync_*系列的built-in函数，用于提供加减和逻辑运算的原子操作。

其声明如下：


type __sync_fetch_and_add (type *ptr, type value, ...)
type __sync_fetch_and_sub (type *ptr, type value, ...)
type __sync_fetch_and]]></description><category></category></item><item><title><![CDATA[pthread_create 解析]]></title><link>https://blog.youkuaiyun.com/benpaobagzb/article/details/51699326</link><guid>https://blog.youkuaiyun.com/benpaobagzb/article/details/51699326</guid><author>benpaobagzb</author><pubDate>Fri, 17 Jun 2016 13:37:41 +0800</pubDate><description><![CDATA[函数简介


pthread_create是UNIX，linux环境创建线程函数


折叠编辑本段头文件


#include 


折叠编辑本段函数声明


int pthread_create(pthread_t *restrict tidp,const pthread_attr_t *restrict_attr,void*(*start_rtn)(void*),]]></description><category></category></item></channel></rss>