Credit www.techthali.org |
阿舍遇到的就是下面這二個問題,不過,都是解法的,所以,也就還好,只是,如果在使用 node.js 之前沒有注意到這二個使用和觀念上的不同的話,可能會在開發中和系統上線後造成一些問題哩 !
1. 只能利用 CPU 的單一核心
node.js 沒有執行緒,只有單一個程序,所以,在執行時,永遠只會使用一個 CPU 的核心,因此,不論是幾核心的機器,node.js 的程式就只會使用單一的核心來執行,所以,在高用量的運行環境下,只使用單核心做運行的 node.js 的程式就會變的很不效益也不好提升效能哩 !
解決的方式就是要利用 node.js 內建的 Cluster 模組來解決這個問題,透過 Cluster 模組的支援,就可以讓 node.js 的程式來利用多核心進行運算,不過,使用 Cluster 模組需要改變一些些程式的寫法哩 !
2. Callback 不好寫
為了要讓程式保有 Non-Blocking 的功能,所以,不能夠在程式中使用或呼叫 Blocking 的函式及模組,因此,就必需要使用大量的 callback 函式來維持 node.js 的 Non-Blocking 機制,否則,一旦使用了 Blocking 的函式,就會少了一個使用 node.js 的重大好處哩 !
不過,大量的 callback 函式的寫法,再加上,要考慮先後順序與時機,這樣寫起來有時真的會讓人寫到頭腦都打結哩 ! 因此,是有不少人不很是會習慣用這樣來寫程式哩 ! 這種心路歷程,阿舍也是有經歷過哩 !
但是,這個問題目前也是有解法的,不過,是要透過安裝額外的模組來協助的,一個是 Step 模組,另一個則是 sync 模組,透過這二個模組的支援,就可以使用傳統的程式寫法來寫非同步的程式碼哩 ! 只是,也一樣一下程式的寫法哩 !
除了上面這二個問題之外,目前阿舍就覺得 Node.js 還算不錯用哩 ! .... ^^=
推薦閱讀
- 問題沒解決嗎? 更多的 Ubuntu 教學在 這裡
- Prompt Injection: 提示詞注入安全漏洞
- 二款 Mac 無痛安裝的 Stable Diffusion 軟體
- 用 AI 寫部落格文章好不好 ?
- 沒有免費的 Midjourney 和 Colab 又不想花錢怎麼辦 ?
- 不學 Prompt 技巧也能善用 ChatGPT 的簡單方法
- 企業 AI 應用:不只是聊天機器人
- Automatic 比 Automatic1111 更好用 ? 都是 Stable Diffusion WebUI
- Stable Diffusion 的 /describe 圖生文功能
- AI 畫出讓人可怖的美圖 !
有疑問? 問題還是沒解決嗎? 歡迎下方留言提問和討論 😁
沒有留言 :
張貼留言
歡迎留言提問和討論 .... 😁