<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          kLoopPython asyncio 事件循環(huán)

          聯(lián)合創(chuàng)作 · 2023-10-01 11:57

          kLoop 是一個 Python asyncio 事件循環(huán)的實(shí)現(xiàn),主要用 Cython 編寫,重點(diǎn)使用了 Linux 內(nèi)核的 io_uring 和 kTLS 功能,故稱作 k(ernel)Loop。

          主要特性

          • 系統(tǒng)調(diào)用次數(shù)非常少:得益于 io_uring,所有 I/O 調(diào)用都由內(nèi)核完成;因?yàn)閱⒂昧?span> SQPOLL,唯一的系統(tǒng)調(diào)用 io_uring_enter() 也僅在必要時才會用到,因此節(jié)省下了幾乎所有系統(tǒng)調(diào)用的額外開銷;
          • 主循環(huán)主體不占有 GIL:雖然使用了 Cython 編寫,但大部分最核心的代碼都被編譯為不需要 Python 結(jié)構(gòu)的普通 C 代碼,一方面節(jié)省內(nèi)存開銷和處理時間,另一方面不持有 GIL,僅在有 Python 回調(diào)時才上 GIL 鎖,對多線程稍微友好一點(diǎn),但還是推薦單線程跑;
          • 內(nèi)核網(wǎng)卡代工 TLS:如果硬件支持,TLS 通訊的全部對稱加密解密皆由網(wǎng)卡完成,空出 CPU 來做更多的 I/O;即使網(wǎng)卡不支持,io_uring 也可以在內(nèi)核中開多線程來執(zhí)行對稱加解密,不受應(yīng)用端單線程的限制,充分利用多核 CPU;
          • 純異步 DNS 解析:混編進(jìn)了 Rust 寫的 trust-dns,I/O 層直接走 io_uring(包括加載 /etc/resolv.conf  /etc/hosts 文件),在 C 和 Rust 之間互相調(diào)用完成 DNS 解析,并且提供了更加靈活的 Python 接口來控制并發(fā)、緩存和配置文件。

          環(huán)境需求

          • Python >= 3.10
          • Linux >= 5.11 (用 modprobe tls 命令來啟用 kTLS 模塊)
          • OpenSSL >= 3.0(支持 kTLS 收包代工需要最新的開發(fā)版本)

          目前主要是在 Ubuntu 22.04 上開發(fā)測試的。

          架構(gòu)圖

          瀏覽 23
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  3w,操逼网站免费播放 | AV无码免费电影 | 操逼操网站| 视频乱伦毛片 | 在线观看的免费a片 |