程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> NodeJs菜鳥初始

NodeJs菜鳥初始

編輯:關於PHP編程

一、nodejs具有事件驅動、異步編程的特點。

事件驅動這個詞並不陌生,在某些傳統語言的網絡編程中,我們會用到回調函數,比如當socket資源達到某種狀態時,注冊的回調函數就會執行。Node.js的設計思想中以事件驅動為核心,它提供的絕大多數API都是基於事件的、異步的風格。以Net模塊為例,其中的net.Socket對象就有以下事件:connect、data、end、timeout、drain、error、close等,使用Node.js的開發人員需要根據自己的業務邏輯注冊相應的回調函數。這些回調函數都是異步執行的,這意味著雖然在代碼結構中,這些函數看似是依次注冊的,但是它們並不依賴於自身出現的順序,而是等待相應的事件觸發。事件驅動、異步編程的設計,重要的優勢在於,充分利用了系統資源,執行代碼無須阻塞等待某種操作完成,有限的資源可以用於其他的任務。此類設計非常適合於後端的網絡服務編程,Node.js的目標也在於此。在服務器開發中,並發的請求處理是個大問題,阻塞式的函數會導致資源浪費和時間延遲。通過事件注冊、異步函數,開發人員可以提高資源的利用率,性能也會改善。從Node.js提供的支持模塊中,我們可以看到包括文件操作在內的許多函數都是異步執行的,這和傳統語言存在區別,而且為了方便服務器開發,Node.js的網絡模塊特別多,包括HTTP、DNS、NET、UDP、HTTPS、TLS等,開發人員可以在此基礎上快速構建Web服務器。

二、nodejs的性能分析

Node.js的性能不錯。按照創始人Ryan Dahl的說法,性能是Node.js考慮的重要因素,選擇C++和V8而不是Ruby或者其他的虛擬機也是基於性能的目的。Node.js在設計上也是比較大膽,它以單進程、單線程模式運行(很吃驚,對吧?這和Javascript的運行方式一致),事件驅動機制是Node.js通過內部單線程高效率地維護事件循環隊列來實現的,沒有多線程的資源占用和上下文切換,這意味著面對大規模的http請求,Node.js憑借事件驅動搞定一切,習慣了傳統語言的網絡服務開發人員可能對多線程並發和協作非常熟悉,但是面對Node.js,我們需要接受和理解它的特點。由此我們是否可以推測出這樣的設計會導致負載的壓力集中在CPU而不是內存。既然Node.js采用單進程、單線程模式,那麼在如今多核硬件流行的環境中,單核性能出色的Node.js如何利用多核CPU呢?創始人Ryan Dahl建議,運行多個Node.js進程,利用某些通信機制來協調各項任務。目前,已經有不少第三方的Node.js多進程支持模塊發布

 

apt-get install nodejs apt-get install npm 建議安裝之後看下nodejs的版本是多少,因為一些ubuntu自帶的nodejs版本比較老,由此導致npm install不了一些node模塊組件 針對比較老的版本,建議重新安裝一下nodejs wget http://nodejs.org/dist/v0.10.12/node-v0.10.12.tar.gz tar zxvf node-v0.10.12.tar.gz cd node-v0.10.12 ./configure make && make install 以上就是nodejs的所需要的安裝包   下面就讓大家來熟悉下nodejs的一些基礎 建議大家去看看這篇(http://wenku.baidu.com/view/22a03f6d011ca300a6c39092.html):個人感覺對於有些js基礎的童鞋還是很有幫助的,能夠讓你簡單的入門。   看完上面這篇文章我相信大家對nodejs有了初步的了解了,由於本人也在初學階段,所以了解的就這麼多啦,順帶一些大家看完上面的可以了解一些nodejs的框架express。 後續的等博主繼續努力後在將一些資料整理給大家哈  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved