簡體   English   中英

這個后端任務的CPU對Node.js的占用很大嗎?

[英]Is this back-end task cpu intensive for node.js?

我正在開發一個android-app,我不確定是否要使用node.js或php作為后端。

我有這個任務,用戶提供一些查詢參數(郵政編碼),然后執行一些數據庫查詢,如果找到一些結果,我將其返回,否則我將檢查各個級別,例如郵政編碼,城市,都市圈,州等,直到我發現一些非零結果。

對於node.js來說,此任務是否過於占用CPU? 如上所示檢查各種級別的查詢是否會減慢node.js的單線程運行速度?

確定什么任務是CPU密集型任務而不是什么任務的標准是什么?

我認為您不必擔心php或Node JS。 對於您正在談論的相對簡單的操作,它們都非常快,而且開銷很小。 您的瓶頸更可能是sql查詢。 那或多或少是平台無關的。

與其進行多個查詢來獲取所需的結果,不如提出一個可以一口氣完成的查詢。 這樣,SQL優化器就可以完成工作並將開銷降至最低,並立即返回結果。

要測試您的CPU性能,最簡單的方法是計時您的代碼。 更長的時間通常等於更多的CPU強度。 在應用程序執行其工作之前獲取微秒/納秒,在應用程序完成后獲取它們,減去該秒數,即可知道應用程序執行所需的時間。
您還可以對查詢進行計時,使用SQL優化工具來改進查詢,使其更加高效。

僅當db返回數據時,才會調用db響應回調,因此,與此同時,節點的線程應該可以自由地做其他事情(服務其他請求)

為了簡單起見,如果您知道,我會堅持使用php。 節點可以讓人彎曲

您在問是否應該使用node.js或php作為解決問題的方法,但正在使用“ CPU密集型”作為標准。 我認為,至少在這種情況下,該標准不會對您在兩者之間做出選擇提供很大幫助。 即使您真的想說“延遲”,也不會有(用戶)明顯的不同。

瞧, 您的查詢是如此簡單,以至於cpu的使用很可能不會成為問題 原因是執行查詢將浪費大部分的cpu時間,這基本上是由數據庫而不是php或nodejs本身完成的。 最好花時間編寫性能查詢(這很容易)

與其他人的說法相反,對此稍為純粹的評論感到抱歉: 您不應通過測試處理事物前后的時間來測試cpu強度 ,而不是在nodejs或php中。 這有兩個主要原因:

  • 通過這樣做,您還將測量獲取數據所涉及的延遲(這不是php或node.js的工作,而是數據庫的工作)

  • 您不知道在測量期間php和node.js在做什么。 例如,可能有其他正在處理的請求(即並發)。 這在node.js中尤其明顯,您可能在其中異步觸發查詢。

無論如何,鑒於所涉及的查詢類型以及這種情況,php或node.js之間的選擇不應基於“ cpu強度”。 考慮嘗試不同的標准,如“我能夠多快地發展這個”,在這種情況下,我可能會選擇PHP的, 在這個非常簡單的例子 (注意:我是node.js的大力支持者,所以這很難說)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM