<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    莊周夢蝶

    生活、程序、未來
       :: 首頁 ::  ::  :: 聚合  :: 管理

    對kilim nio模塊的改進

    Posted on 2010-11-19 18:40 dennis 閱讀(3960) 評論(3)  編輯  收藏 所屬分類: javamy open-source

        前段時間對kilim的當前版本做了一些改進,集中在nio調度器這一塊。Kilim新版本引入了nio調度器,可以跟非阻塞IO結合在一起,從這個版本開始,kilim才真正具有實用性。協程只有跟非阻塞IO結合起來才能發揮威力啊。但是Kilim的默認的nio調度器還只是使用一個nio worker做調度,這跟現有的NIO框架采用多個nio worker來提升效率比較起來相對落伍。我改進了NioSelectorScheduler,引入了類似Netty3的boss和woker的概念,boss負責連接接入,而worker負責連接的IO讀寫,并且默認設置worker數目為CPU個數的兩倍。經過我的測試,改進后的NIO調度器的效率遠遠超過了現有的調度器,有興趣可以用netty的benchmark跑一下example里的EchoServer。

        Kilim默認還提供了一個簡易Http Server框架,但是沒有提供Http Client的實現,我的另一個改進是提供了一個簡易的Http Client實現,也是利用Ragel做協議解析,一個簡單的使用例子如下:
    package kilim.examples;

    import kilim.Pausable;
    import kilim.Task;
    import kilim.http.HttpClient;
    import kilim.http.HttpResponse;


    public class SimpleHttpClient {
        
    static class SimpleTask extends Task {
            @Override
            
    public void execute() throws Pausable, Exception {
                HttpClient client 
    = new HttpClient();

                HttpResponse resp 
    = client.get("http://www.google.com.hk/");
                System.out.println(resp.status());
                System.out.println(resp.content());
            }
        }


        
    public static void main(String[] args) {
            SimpleTask task 
    = new SimpleTask();
            task.start();
        }

    }


        這個簡陋的HttpClient目前只支持GET/POST,同時支持Http chunk編碼(得益于kilim原有代碼),做一些簡單的HTTP調用已經足夠。我嘗試在一個項目里使用這個HttpClient去替代java默認的HttpURLConnection,效率有部分提升,但是同時由于大量協程存在占用了很大部分的內存,給GC也帶來了不小的壓力。

        我的代碼直接從kilim的主干fork出來,有興趣可以直接git clone下來玩玩,地址  https://github.com/killme2008/kilim

    評論

    # re: 對kilim nio模塊的改進  回復  更多評論   

    2010-11-22 14:58 by jaedong
    大蝦 你的yanf4j呢

    # re: 對kilim nio模塊的改進  回復  更多評論   

    2010-11-22 18:27 by dennis
    @jaedong
    yanf4j已經放棄了,合并代碼到xmc了。

    # re: 對kilim nio模塊的改進[未登錄]  回復  更多評論   

    2010-12-10 13:52 by littleJava
    你的blog搬到這里了啊……
    我還在je上你的yan4j的資料呢。
    主站蜘蛛池模板: 久久精品亚洲福利| 亚洲精品无码不卡| 久久精品国产亚洲Aⅴ香蕉 | 亚洲乱码一二三四区麻豆| 亚洲youwu永久无码精品| 国产一区二区三区免费观看在线| 成人福利免费视频| 亚洲中文字幕第一页在线| 国产精品高清视亚洲一区二区| 中文字幕在线免费看| 成人免费在线视频| 亚洲国产成人私人影院| 在线人成精品免费视频| 亚洲国产成人久久综合一区77| 亚洲av无码一区二区三区天堂古代| 久久久久久av无码免费看大片| 四虎在线视频免费观看| 亚洲乱亚洲乱淫久久| 91短视频免费在线观看| 亚洲乱码中文字幕久久孕妇黑人| 亚洲国产精品自在在线观看| 久久久久免费看成人影片| 亚洲午夜国产精品无码| 无码人妻一区二区三区免费n鬼沢| 亚洲国产精品无码久久久久久曰| A级毛片成人网站免费看| 久久精品国产亚洲香蕉| a毛片在线还看免费网站| 亚洲精品国产福利一二区| 国产成人综合亚洲绿色| 在线成人a毛片免费播放| 一进一出60分钟免费视频| 亚洲A∨午夜成人片精品网站| 中国亚洲呦女专区| 亚洲JIZZJIZZ中国少妇中文| 一个人看的www免费视频在线观看 一个人免费视频观看在线www | 校园亚洲春色另类小说合集| 国产美女精品久久久久久久免费| 香蕉大伊亚洲人在线观看| 亚洲成a人片在线观看久| 久9热免费精品视频在线观看|