您當前的位置:首頁 > 旅遊

nodejs使用yaml寫配置檔案,是否會有效能問題?最佳實踐又是什麼?

作者:由 知乎使用者 發表于 旅遊時間:2018-02-03

nodejs使用yaml寫配置檔案,是否會有效能問題?最佳實踐又是什麼?Kell2018-02-03 12:21:30

js檔案作為配置,可以參考webpack

nodejs使用yaml寫配置檔案,是否會有效能問題?最佳實踐又是什麼?i5ting2018-02-03 12:38:15

讀寫又不頻繁,一般都在專案啟動時用,不會有效能問題。

如果怕,就benchmark一下

Toml#parse x 677 ops/sec ±3。01% (80 runs sampled)

Yaml#parse x 3,405 ops/sec ±1。73% (84 runs sampled)

JSON#parse (fs) x 43,730 ops/sec ±2。84% (83 runs sampled)

JSON#parse (require) x 90,257 ops/sec ±2。01% (84 runs sampled)

JS#require x 87,288 ops/sec ±2。03% (82 runs sampled)

Fastest is JSON#parse (require)

從上面的資料來看,下面這種寫法效率最高

var jsonString = require(‘。/data。json’)

但json表達能力確實差,我不認為配置檔案讀取會有非常影響效能(如果不是頻繁讀寫)。

配置檔案的使用由來已久,從。ini、XML、JSON、YAML再到TOML,語言的表達能力越來越強,同時書寫便捷性也在不斷提升。從rails開始使用yaml,用著非常習慣,另外推薦toml,也非常適合,表達上更好,效能略差。

nodejs使用yaml寫配置檔案,是否會有效能問題?最佳實踐又是什麼?Houfeng2018-02-05 13:03:53

既然是「配置檔案」,也就是說「是需要人來配置的」,那就需要讓人更容易的配置。

來看 JSON,它是一種「資料格式」,是用來做「資料傳輸」的,所以它連註釋都不能直接寫,它並不適合人來閱讀,也不方便人來編寫,那一定層面也可以說「它不方便、也不適合作為配置檔案」。

再來看 YAML,官網說「YAML is a human friendly data serialization standard for all programming languages。」,看看

The Official YAML Web Site

網站首頁就是一個 YAML,它是對人友好的,易於人的閱讀和書寫的,一定層面說「它是適合作為配置檔案的」。

最後,來說效能, 如

@i5ting

所說「一般都在專案啟動時用,不會有效能問題」 ,配置檔案絕大多數情況都不會頻繁讀寫,如果是要反覆頻繁讀寫檔案,大機率效能問題會出現在「磁碟 IO」上,而不是 YAML 的解析上,用 JSON 也好不了哪兒去。

Node 應用配置檔案,可考慮用一下 Confman 這個模組,

Houfeng/confman

支援多種配置檔案格式,應用寫好後一樣可隨時換想用的配置格式,你可以在配置時決定使用何種格式,而不是在應用開發時。

nodejs使用yaml寫配置檔案,是否會有效能問題?最佳實踐又是什麼?孟禿2018-02-05 20:52:47

首先程式不應該自主修改配置檔案。

(這樣也就不會出現讀寫效能問題)

修改的應該是資料檔案。

然後說配置檔案的問題:

抽象出來一個config類可能會好一些。

然後這個類只管提供config以及寫入config。

config在程式startup的時候一次讀取。並新增程式中各個子程式對於某項配置的訂閱。

在觸發修改操作的時候修改配置檔案。並且通知各個訂閱配置修改的子程式。

這樣應該不會有太大效能問題。

可以參考poi的配置檔案寫法。

https://

github。com/poooi/poi/bl

ob/master/lib/config。es

nodejs使用yaml寫配置檔案,是否會有效能問題?最佳實踐又是什麼?藍浩2018-02-06 00:09:39

為什麼沒人提dotenv?

標簽: 配置檔案  json  yaml  Parse  Ops