原创 用 io_uring 替代 epoll 實現高速 polling

前面的文章說到 io_uring 是 Linux 中最新的原生異步 I/O 實現,實際上 io_uring 也支持 polling,是良好的 epoll 替代品。 API 使用 io_uring 來 poll 一個 fd 很簡單。首先初始化

原创 原生的 Linux 異步文件操作,io_uring 嚐鮮體驗

Linux異步IO的歷史 異步IO一直是 Linux 系統的痛。Linux 很早就有 POSIX AIO 這套異步IO實現,但它是在用戶空間自己開用戶線程模擬的,效率極其低下。後來在 Linux 2.6 引入了真正的內核級別支持的異步IO實

原创 C++:string_view 與 C API 的互操作性

std::string_view 是 C++17 新加的一個類,是字符串的無所有權引用。對 std::string_view 的操作都不會生成新字符串(比如 substr),而是返回一個新的 string_view 但是引用原字符串。 這樣

原创 編寫自適應高度的 textarea

文本框是很常見的輸入控件,我相信只要寫過表單的肯定接觸過 textarea 這個元素。 OK。但是現在產品經理說了:需要這個文本框可以根據用戶輸入內容自適應其高度。 height: auto 有些初學者可能會想:自適應高度不就是 heigh

原创 二進制狀態碼

我們知道計算機中數據都是用二進制數存儲。二進制數是一系列0和1的組合,長整型64位,最短的字節型也有8位。其中每一位0和1都可以看做一種狀態的開和關,所以就有了這樣的一種狀態碼存儲方式:把同一對象的多種狀態按位組合到一個整數中。 例如我們最

原创 Service worker (@nuxtjs/workbox) 採坑記

PWA(Progressive Web App)是前端的大趨勢,它能極大的加快前端頁面的加載速度,得到近乎原生 app 的展示效果(其實難說)。PWA 其實是多種前端技術的組合,其中最重要的一個技術就是 service worker。 Se