資料庫其實很快 [tr-QE7I]

之前的tr在分析檔案之後把每個地址的metadata放到 _tmp/<addr>.metadata.json 裡面,而且使用 for/async,實際用我的部落格測量發現需要80.x ms,找文件查證發現其實寫入port對Racket future來說是不安全的(future-unsafe operation)https://docs.racket-lang.org/guide/parallelism.html,所以Racket其實什麼也沒做

反而還要付出runtime overhead,for線性寫完全部檔案也不過50.x ms

我最近突然想到何不放進SQLitehttps://www.sqlite.org/裡面,然後就發現

一次transaction把全部metadata寫入,只需要4.7ms!

不過這部分對全體建構時間改善就沒什麼意義了,畢竟這部分不是熱路徑,我改用SQLite也只是想減輕維護負擔