我目前正在編寫一個節點服務器,使用express和ejs作爲誘人的引擎。我的一些.ejs文件包含7-8個包含嵌套在其中的部分的聲明。我想知道這是否是資源密集型的,或者它會沒事的。包括陳述會妨礙表現嗎?
3
A
回答
2
EJS維護者在這裏。
首先,如果你正在閱讀相同的文件多次連續,文件系統將緩存它在這一水平。
但是,如果你想要最大的性能,在選項中設置cache: true
。 (docs)您必須使用renderFile()
或傳入文件名以使其起作用。如果您使用Express,則當NODE_ENV
設置爲production
時,將自動設置cache: true
。
請記住,這假定您的文件永遠不會改變。即如果您更改文件,EJS將只使用舊的緩存版本,直到您重新啓動服務器進程。
+0
謝謝。我感覺好多現在舒服多了。 – Programmer
1
我已經測試了包括用於29分音加載時間:
<!DOCTYPE html>
<html lang="en">
<? console.time('ejsIncludeTime') ?>
<?include ../partials/head ?>
<body>
<? include ../partials/header ?>
<? include ../partials/a ?>
<? include ../partials/b ?>
<? include ../partials/c ?>
<? include ../partials/d ?>
<? include ../partials/e ?>
<? include ../partials/f ?>
<? include ../partials/g ?>
<? include ../partials/h ?>
<? include ../partials/i ?>
<? include ../partials/j ?>
<? include ../partials/k ?>
<? include ../partials/l ?>
<? include ../partials/m ?>
<? include ../partials/n ?>
<? include ../partials/o ?>
<? include ../partials/p ?>
<? include ../partials/q ?>
<? include ../partials/r ?>
<? include ../partials/s ?>
<? include ../partials/t ?>
<? include ../partials/u ?>
<? include ../partials/v ?>
<? include ../partials/w ?>
<? include ../partials/x ?>
<? include ../partials/y ?>
<? include ../partials/z ?>
<? include ../partials/footer ?>
<? console.timeEnd('ejsIncludeTime') ?>
</body>
</html>
每個部分從A-Z包含120或更多條線的HTML。這是怎麼一回事呢:
- 服務器重啓
ejsIncludeTime: 0.175ms
- 因之後首先命中命中
ejsIncludeTime
:0.078ms
,0.068ms
,0.058ms
,0.067ms
,0.077ms
- 重新啓動服務器再次命中
ejsIncludeTime: 0.157ms
- 因之命中
0.168ms
(在幾分鐘的間隙後命中),0.044ms
,0.052ms
因此,似乎在某個層面上涉及緩存。第一次命中總是需要0.150 + ms的包含時間。隨之而來的命中總是要少得多的時間消耗,除了偶爾的高峯如0.168ms(不能真正解釋爲什麼,也許緩存未命中)。
相關問題
- 1. PMD妨礙CheckStyle
- 2. 在視圖中大量使用方法會妨礙緩存嗎?
- 3. _controlfp並不妨礙DivideByZeroException
- 4. Serializable是否妨礙性能?
- 5. 使用全局臨時表可能會妨礙性能?
- 6. Javascript可變範圍妨礙我
- 7. 不妨礙點擊的活動
- 8. 如何確保非現場的JavaScript不會妨礙網站的性能?
- 9. 按慣例編碼是否會妨礙靈活性?
- 10. Oracle中的子分區會妨礙分區性能
- 11. OleDbDataAdapter拋出AccessViolationException當使用包括一個加入的陳述
- 12. 案件陳述裏面如果陳述
- 13. 如果陳述「不是陳述」?
- 14. 如果陳述在案例陳述(VB.Net)
- 15. 對具有和或條件的表格的陳述陳述?
- 16. 等待陳述與表達
- 17. 包括在上述
- 18. SQL陳述
- 19. 更新陳述
- 20. 在做陳述
- 21. EXCEL:AND陳述
- 22. 錫罐陳述
- 23. 條件陳述
- 24. 陳述在C++
- 25. 增加陳述後值不會增加嗎?
- 26. 完成上次陳述後,Clojure程序不會退出嗎?
- 27. 這些陳述有什麼區別嗎?
- 28. VB.NET有一個空的陳述嗎?
- 29. 我可以合併這些陳述嗎?
- 30. 包括在LINQ描述表數
簡介它。表演不是絕對的財產。 – zerkms
包括很可能緩存(至少由OS,也許是EJS),所以你可能會看到一擊它們加載的第一次,但可能並不多,在所有之後。 – jfriend00
我如何知道ejs是否緩存了包含? – Programmer