• 1、软件框架高性能的软件框架,一般都基于event-driven、异步模式,同时提供诸如线程池、epoll(*unx)IOCP(I/O Completion Port,windows)等技术来提高并发处理性能,python、C++、Java中有一个典型的框架性项目提供了对高性能网络通信框架的支持,常用 的一些高性能的软件框架如下:

    Python相关:

    twisted:http://twistedmatrix.com

    Twisted, ...
  • 文章地址:
    http://www.cublog.cn/u/17999/showart.php?id=159057
    运行这个程序需要预先设置栈内存和文件描述符上限, 否则运行失败
    ulimit -n 16384
    ulimit -s 4096

    文件名:server.c
    编译: gcc server.c -Wall -O2 -pthread -o server
    程序源码如下(请自行编辑宏定义SERVER_IP为自己的IP):...
  • 名词解释:man epoll之后,得到如下结果:

    NAME
           epoll - I/O event notification facility

    SYNOPSIS
           #include <sys/epoll.h>

    DEscrīptION
    &nbs...
  • EPOLL的ET和LT模式 - [C++]

    2008-03-26

    EPOLL的ET和LT模式 近日又继续学习了一下EPOLL的工作模式,这会基本上搞清楚了,因而撰写了此篇文档进行描述。先来一段网上的介绍文档:
    EPOLL事件分发系统可以运转在两种模式下:Edge Triggered (ET)、Level Triggered (LT)。
    LT是缺省的工作方式,并且同时支持block和no-block socket;在这种做法中,内核告诉你一个文件描述符是否就绪了,然后你可以对这个就绪的fd进行IO操作。如果你不作任何操作,内核还是会继续通知你的,...
  • epoll与iocp的异同之处epoll与iocp的异同之处本文作者:sodme
    本文出处:http://blog.csdn.net/sodme
    声明:本文可以不经作者同意任意转载、复制、引用。但任何对本文的引用,均须注明本文的作者、出处以及本行声明信息。

    目前国内的网游研发,在服务器使用的开发平台方面,win和linux的比例各占多少,我一时半会也没有准确数据,但从我了解的这么多公司情况来看,用win系统的还是比较多一点,这些企业一般都是比较单纯的网游公司...
  • EPOLL使用例子 - [C++]

    2008-03-26

    EPOLL使用例子

     

    #include <iostream>

    #include <sys/socket.h>

    #include <sys/epoll.h>

    #include <netinet/in.h>

    #include <arpa/inet.h>

    #include <f...
  • epoll使用 - [C++]

    2008-03-26

    epoll使用        epoll的工作原理是,你如果想进行IO操作时,先向epoll查询是否可读或可写,如果处于可读或可写状态后,epoll会通过epoll_wait函数通知你,此时你再进行进一步的recv或send操作。        epoll仅仅是一个异步事件的通知机制,其本身并不作任何的IO读写操作,它只负责告诉你是不是可以读或可以写了,而具体的...
  • epoll 学习 - [Linux]

    2008-03-24

    名词解释:man epoll之后,得到如下结果:

    NAME
           epoll - I/O event notification facility

    SYNOPSIS
           #include <sys/epoll.h>

    DESCRIPTION
     &nbs...
  • 上篇文章使用linux内核2.6提供的epoll机制实现了一个反应式echo服务器,使用反应式服务器的最大好处就是可以按cpu的数量来配置线程池内线程的线程数而不是根据客户端的并发量配置线程池。我是第一次使用pthread库来写线程池,使用的是工作队列方式的线程池。我感觉作队列方式的线程池可以当成一种设计模式来用的,在很多平台上都是可以按这种方式来实现线程池,从win32 ,unix到jvm都是适用的

     

    #include <iostrea...
  • 大家苦苦的为在线人数的增长而导致的系统资源吃紧上的问题正在发愁的时候,Linux 2.6内核中提供的System Epoll为我们提供了一套完美的解决方案。传统的select以及poll的效率会因为在线人数的线形递增而导致呈二次乃至三次方的下降,这些直接导致了网络服务器可以支持的人数有了个比较明显的限制。

    自从Linux提供了/dev/epoll的设备以及后来2.6内核中对/dev/epoll设备的访问的封装(System Epoll)之后,这种...