跳至主要內容

標籤: nodejs

用 encodeInto() 提高 MessagePack 中的字串編碼速度

最近花很多力氣優化 msgpack-nodejs 這個專案
參考了其他先進的優化策略、把效能拉到跟當時 nodejs 生態圈最快的專案同等級
但不夠多自己原創的東西,也還是覺得有優化空間,所以還是努力一點一滴的累積優化
終於在今天,撇除跑分太鬼的 msgpackr,編碼速度贏了 22%、解碼速度贏 19%,覺得終於可以休息了

這邊文章是想在把這些細節遺忘前做點紀錄

JS 的 ArrayBuffer、Uint8Array、DataView、Buffer 之間的關係

ArrayBuffer 是本篇文章將提到各個 API 的根本

它的別稱是「Byte Array」,就是 Byte Array 的意思,在這個「Array」中每一個 element 就是一個 Byte(8 bits)。

因為在宣告時就要定義長度,比如 new ArrayBuffer(4) 便會分配總共 4 Bytes(32 bits)的空間。對於這樣連續的記憶體,JS 不允許你直接寫資料到裡面,而要透過一些 View 幫你操作,比如有多種類型讀寫能力、但一次只能讀寫一個數字的 DataView,或者一次只能使用一種資料類型、但可以一次性寫入多個數字的 TypedArray

EC2 不能 0.0.0.0/0 說多痛就有多痛

身為一個 PHP Developer,開了一台 ec2 instance,當然馬上就是進去:

有時為了資安,所以 outbound 再也單純設成 0.0.0.0/0,而本篇文章是記錄我想的到的解法

2022/6/18:調整關於 Lambda 維護 Prefix List 的描述

由 Compete Themes 設計的 Author 佈景主題