林茂枝

 

2013年1月16日

linux下epoll如何实现高效处理百万句柄的[转]【epoll】

摘要: 源:http://blog.csdn.net/wanghaobo920/article/details/8222202开发高性能网络程序时,windows开发者们言必称iocp,linux开发者们则言必称epoll。大家都明白epoll是一种IO多路复用技术,可以非常高效的处理数以百万计的socket句柄,比起以前的select和poll效率高大发了。我们用起epoll来都感觉挺爽,确实快,那么,它到底为什么可以高速处理这么多并发连接呢?先简单回顾下如何使用C库封装的3个epoll系统调用吧。[cpp]view plaincopyintepoll_create(intsize);intepol 阅读全文

posted @ 2013-01-16 17:24 林茂枝 阅读(419) 评论(0) 推荐(1) 编辑

使用epoll 在 linux 上开发高性能应用服务器【epoll】

摘要: 源:http://blog.csdn.net/herm_lib/article/details/8192371概述epoll是linux提供一种多路复用的技术,类似各个平台都支持的select,只是epoll在内核的实现做了更多地优化,可以支持比select更多的文件描述符,当然也支持 socket这种网络的文件描述符。linux上的大并发的接入服务器,目前的实现方式肯定都通过epoll实现。epoll和线程有很多开发人员用epoll的时候,会开多个线程来进行数据通信,比如一个线程专门accept(我个人早些年在FreeBSD用kqueue的时候,由于对内部机制没有基本了解也这样搞),一个线程 阅读全文

posted @ 2013-01-16 17:23 林茂枝 阅读(399) 评论(0) 推荐(0) 编辑

epoll精髓【epoll】

摘要: 源:http://www.cnblogs.com/OnlyXP/archive/2007/08/10/851222.html在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,在linux/posix_types.h头文件有这样的声明:#define __FD_SETSIZE 1024表示select最多同时监听1024个fd,当然,可以 阅读全文

posted @ 2013-01-16 17:22 林茂枝 阅读(371) 评论(0) 推荐(1) 编辑

2013年1月15日

非阻塞式服务器和客户端程序(TCP)【简单的原理例子】

摘要: 来源:http://blog.csdn.net/shining100/article/details/5651878上次为大家介绍了阻塞式多线程服务端程序和阻塞式客户端程序的设计方法,但是在上文的最后也提到过,服务器程序会因为建立连接和关闭连接而频繁的创建和关闭线程会产生大量的内存碎片,从而导致服务端程序不能保证长时间的稳定运行。因此我在这里为大家介绍另外一种建立服务器和客户端程序的方法,即建立非阻塞式的服务器和客户端程序。 那什么是非阻塞呢?非阻塞是相对于阻塞而言,阻塞指的是在进行一个操作的时候,如服务器接收客户端的连接(accept),服务器或者客户端读写数据(read、write),如果 阅读全文

posted @ 2013-01-15 10:25 林茂枝 阅读(1569) 评论(0) 推荐(0) 编辑

2013年1月11日

log4cplus入门

摘要: 转载http://wgwang.github.com/tech/misc/log4cplustutorial.html#id8介绍log4cplus是log4j的c++移植版,是c++中一个很好的打印日志的库。它与另外一个c++的log库log4cxx相比较,好处是不依赖于libapr和libaprutil,可以静态链接到程序中,便于部署。当前的最新稳定版本是1.04,也是下面的例子中所用到的版本。从这个版本中所了解到的,log4cplus并未完全实现了log4j,不少细节部分都没有实现。但这并不妨碍我们使用它。下面是一些log4cplus资源:log4cplus project:http:/ 阅读全文

posted @ 2013-01-11 11:29 林茂枝 阅读(2086) 评论(0) 推荐(0) 编辑

2013年1月10日

在Linux上的使用开源C++日志库---log4cplus

摘要: 1、下载log4cplus-1.1.1-rc1.ziphttp://sourceforge.net/projects/log4cplus/?source=dlp2、解压#unziplog4cplus-1.1.1-rc1.zip3、#cd log4cplus-1.0.4-rc104、#./configure --prefix=/usr/local5、#make6、#make install7、检查:安装成功会在/usr/local/lib下看到liblog4cplus.a,在/usr/local/include下有个liblog4cplus文件夹 阅读全文

posted @ 2013-01-10 16:41 林茂枝 阅读(462) 评论(0) 推荐(0) 编辑

静态库和动态库的区别

摘要: 转http://www.cnblogs.com/feisky/archive/2010/03/09/1681996.html库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行。库分静态库和动态库两种。静态库和动态库的区别1. 静态函数库 这类库的名字一般是libxxx.a;利用静态函数库编译成的文件比较大,因为整个 函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进去了。当然这也会成为他的缺点,因为如果静态函数库改变了,那么你的程序必须重新编译。2. 动态函数库 这类库的名字一般是libxxx. 阅读全文

posted @ 2013-01-10 15:09 林茂枝 阅读(253) 评论(0) 推荐(0) 编辑

2012年12月25日

localtime多线下不安全,localtime_r线程安全

摘要: 引用:http://blog.csdn.net/maocl1983/article/details/6221810localtime的英文解析:his structure is statically allocated and shared by the functions gmtime andlocaltime. Each time either one of these functions is called the content of this structure is overwritten.也就是说每次只能同时使用localtime()函数一次,要不就会被重写!Thelocalti 阅读全文

posted @ 2012-12-25 11:09 林茂枝 阅读(4868) 评论(0) 推荐(0) 编辑

2012年11月29日

linux下调试core的命令,察看堆栈状态命令 摘录(http://blog.csdn.net/yearn520/article/details/6663265)

摘要: 在程序不寻常退出时,内核会在当前工作目录下生成一个core文件(是一个内存映像,同时加上调试信息)。使用gdb来查看core文件,可以指示出导致程序出错的代码所在文件和行数。首先看看默认的一些core的参数,注意core file size是个0,程序出错时不会产生core文件了。$ ulimit -acore file size (blocks, -c) 0data seg size (kbytes, -d) unlimitedfile size (blocks, -f) unlimitedmax locked memory (kbytes, -l) 4max memory size (kb 阅读全文

posted @ 2012-11-29 11:32 林茂枝 阅读(184) 评论(0) 推荐(0) 编辑

2012年11月7日

Linux有用的命令记录

摘要: 1、查看二进制文件: vi打开文件,命令模式下%! xxd;2、安装myslq 查找mysql-server: yum list | grep mysql 安装: yum instrall mysql-server 启动mysql服务: service mysqld start 重启mysql服务: service mysqld restrat 查看mysql是否启动: natstat -nat | grep 3306 创建用户: insert into mysql.user(Host,User,Password)values('%','yourName',p. 阅读全文

posted @ 2012-11-07 09:03 林茂枝 阅读(112) 评论(0) 推荐(0) 编辑

导航