2013-12-12 18 views
0

編輯如果您有節點內部工作的知識,請回答。爲什麼node.js中的C++ add-on和javascript之間的交互很昂貴?

我最近對潛水節點的C++附加組件感興趣。我讀過很多關於這個主題的文章,基本上說你應該減少C++和node之間的喋喋不休。我明白這是一個原則。我真正想要的是爲什麼

同樣,爲什麼node.js中的C++ add-on和javascript之間的交互很昂貴?

回答

0

我不能說任何有關Node內部工作的知識,但實際上可以歸結爲:代碼越少,代碼越快(代價越低)。與附加組件中的Node API交互做的事情要比更多,而不是與API交互。對於(一個人爲的)例如,考慮用C添加兩個整數之間++的區別:

int sum = a + b; 

...和評估一箇中JavaScript引擎,這將涉及創建一個函數變量添加表達式,包裝紙任何參數到本函數,調用函數,並展開返回值。

C++/JS通信本身所需的包裝/解包/值轉換足以證明儘量減少兩層之間的交互次數。請記住,C++類型系統和JS類型系統是真的不同,JS沒有整數,字符串執行不同,對象工作方式不同等。

+0

感謝您的回答。它可能歸結爲:「代碼越少,代碼越快(代價越低)」。可能需要很多額外的調用才能從C++重新獲得javascript的土地。你提到,雖然你對節點的內部工作沒有任何瞭解,但這正是我所追求的。我將編輯該問題以反映這一點。 – jsdevel

+1

我建議你的問題更具體。交換環境中的數據包裝,轉換和一般開銷是交互的明顯成本,與任何interop層一樣。我不確定你希望學習哪些附加信息。 – Jacob

相關問題