欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

為什么要先運行服務器端

吉茹定2年前14瀏覽0評論

為什么要先運行服務器端?

因為在當年,Node.js的作者Ryan Dahl是一名資深的C/C++程序員,在創(chuàng)造出Node之前,他的主要工作都是圍繞高性能Web服務器進行的。經(jīng)歷過一些嘗試和失敗之后,他找到了設計高性能,Web服務器的幾個要點:事件驅(qū)動、非阻塞I/O。

所以Ryan Dahl最初的目標是寫一個基于事件驅(qū)動、非阻塞I/O的Web服務器,以達到更高的性能,提供Apache等服務器之外的選擇。他提到,大多數(shù)人不設計一種更簡單和更有效率的程序的主要原因是他們用到了阻塞I/O的庫。寫作Node的時候,Ryan Dahl曾經(jīng)評估過C、Lua、Haskell、Ruby等語言作為備選實現(xiàn),結(jié)論為:

C的開發(fā)門檻高,可以預見不會有太多的開發(fā)者能將它用于日常的業(yè)務開發(fā),所以舍棄它;

Ryan Dahl覺得自己還不足夠玩轉(zhuǎn)Haskell,所以舍棄它;

Lua自身已經(jīng)含有很多阻塞I/O庫,為其構(gòu)建非阻塞I/O庫也不能改變?nèi)藗兝^續(xù)使用阻塞I/O庫的習慣,所以也舍棄它;

而Ruby的虛擬機由于性能不好而落選。

相比之下,JavaScript比C的開發(fā)門檻要低,比Lua的歷史包袱要少。盡管服務器端JavaScript存在已經(jīng)很多年了,但是后端部分一直沒有市場,可以說歷史包袱為零,為其導入非阻塞I/O庫沒有額外阻力。另外,JavaScript在瀏覽器中有廣泛的事件驅(qū)動方面的應用,暗合Ryan Dahl喜好基于事件驅(qū)動的需求。當時,第二次瀏覽器大戰(zhàn)也漸漸分出高下,Chrome瀏覽器的JavaScript引擎V8摘得性能第一的桂冠,而且其基于新BSD許可證發(fā)布,自然受到Ryan Dahl的歡迎。考慮到高性能、符合事件驅(qū)動、沒有歷史包袱這3個主要原因,JavaScript成為了Node的實現(xiàn)語言。