偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Node.js 與 PHP:理解服務(wù)器端開發(fā)

譯文
開發(fā) 前端
了解 Node.js 和 PHP 這兩種重要的服務(wù)器端軟件開發(fā)語言,以確定哪一種最適合您的項(xiàng)目。

【51CTO.com快譯】選擇合適的語言、框架、庫和數(shù)據(jù)庫工具包是成功執(zhí)行項(xiàng)目的第一步。雖然了解每個工具的優(yōu)缺點(diǎn)是執(zhí)行這種比較分析的合理途徑,但如果前端和后端開發(fā)團(tuán)隊(duì)了解適當(dāng)?shù)毓ぞ撸ぷ餍蕰蟠蠛芏唷?/p>

服務(wù)器端開發(fā)對于設(shè)計基于web的功能性和流動性產(chǎn)品(網(wǎng)站、應(yīng)用程序或原生web應(yīng)用程序)至關(guān)重要??蛻舳碎_發(fā)涉及用戶體驗(yàn)和信息的布局方式。服務(wù)器端開發(fā)負(fù)責(zé)高效組織和訪問存儲在數(shù)據(jù)庫和 Web 應(yīng)用程序中的數(shù)據(jù),使用靜態(tài)資源(如 CSS 和 JavaScript 或 HTML 模板)甚至數(shù)據(jù)進(jìn)行訪問。

因此,在為開發(fā)下一個項(xiàng)目時,了解服務(wù)器端開發(fā)的基本要求至關(guān)重要。

一、服務(wù)端開發(fā)的基本要求

1. 投入產(chǎn)出模型

無論使用何種語言、框架和庫進(jìn)行開發(fā),基本流程或多或少都保持不變。使用的系統(tǒng)調(diào)用,始終與內(nèi)核交互。

系統(tǒng)調(diào)用負(fù)責(zé)向內(nèi)核提供請求,內(nèi)核在設(shè)備級別執(zhí)行這些請求。這種安排確保所有特定于設(shè)備的計算都在內(nèi)核級別完成,并且應(yīng)用程序不必處理過多的計算負(fù)載。

2. 阻塞與非阻塞調(diào)用

系統(tǒng)調(diào)用通常被確定為阻塞調(diào)用。“阻塞”是指內(nèi)核等待返回結(jié)果或信息的時間。例如,內(nèi)核可能會等待設(shè)備準(zhǔn)備好進(jìn)行計算,或等待訪問某些設(shè)備數(shù)據(jù)等。這些挑戰(zhàn)會導(dǎo)致阻塞調(diào)用,就意味著指令在幾毫秒內(nèi)不會執(zhí)行完畢。

非阻塞調(diào)用對工程師來說更復(fù)雜,但可以節(jié)省關(guān)鍵的計算資源。對于這種安排,可以命令內(nèi)核在必要的數(shù)據(jù)可用時發(fā)出警報,同時將請求放入隊(duì)列中。其他可以立即執(zhí)行的功能會立即執(zhí)行。

3. 調(diào)度

如果正在創(chuàng)建一個全面的產(chǎn)品,在某些時候,線程和進(jìn)程的數(shù)量將達(dá)到臨界質(zhì)量,將不得不為調(diào)度提供更多的考慮。用最簡單的術(shù)語來說,調(diào)度是上下程序切換,允許一個線程接著一個線程或一個進(jìn)程接著一個進(jìn)程執(zhí)行的步驟。

如果有太多的阻塞調(diào)用,那么在數(shù)千個線程和進(jìn)程之間切換聚合所花費(fèi)的時間可能會成為一個重要問題。這就是為什么盡可能使用非阻塞調(diào)用來確保異步處理的原因。

二、Node與 PHP:服務(wù)器端開發(fā)語言環(huán)境

Node.js 和 PHP 通常被認(rèn)為是最適合服務(wù)器端軟件開發(fā)的兩種最理想的語言。本節(jié)將使用案例進(jìn)行演示,以了解 Node.js 和 PHP 的配置文件。

Node.js

Node.js由 Ryan Dahl 開發(fā)并于 2009 年 5 月發(fā)布。它是一個開源運(yùn)行時環(huán)境,從一開始就具有成本效益。Node.js支持異步開發(fā),這意味著它利用非阻塞系統(tǒng)調(diào)用使開發(fā)過程資源充沛。使用 Node.js 的最顯著優(yōu)勢之一是,由于只使用JavaScript,所以整個項(xiàng)目可以在開發(fā)時間線中僅使用一種語言。運(yùn)行時還附帶了幾個Node.js 框架,用于添加功能。

PHP

PHP代表超文本預(yù)處理器。它于 1994 年由拉斯穆斯·勒多夫 (Rasmus Lerdorf) 發(fā)布。雖然與 Node.js 相比,它是一種較舊的語言,但 PHP 可用于整個項(xiàng)目的服務(wù)器端開發(fā)和其他開發(fā)過程。由于它可以與JavaScript、HTML、CSS 和純文本一起使用,因此它在支持的底層語言方面的約束性較少。

市場趨勢

應(yīng)評估兩種備選方案的受歡迎程度以了解:

• 人才的供應(yīng)有助于項(xiàng)目的開發(fā)和維護(hù)。

• 與備選方案相關(guān)的社區(qū)和圖書館提供的支持。

• 可比項(xiàng)目中常用的替代方案。這些項(xiàng)目自完成上線以來,它們已經(jīng)承擔(dān)了迭代的成本。

此信息可用作評判標(biāo)準(zhǔn),以決定對于 Web 開發(fā)公司來說,Node.js 和 PHP 之間哪個可能是更佳選擇。

三、了解 Node.js 和 PHP 在服務(wù)器端開發(fā)中的對比

為了更好地構(gòu)建 Node.js 和 PHP 之間的分析框架,應(yīng)該查看并發(fā)性、可擴(kuò)展性和性能等特定標(biāo)準(zhǔn)。Node.js 和 PHP 都易于安裝,并隨其框架或包管理系統(tǒng)一起提供。因此,比較安裝過程在這里并不是最重要的。

1.并發(fā)性

并發(fā)性顯示了服務(wù)器端語言或運(yùn)行時高效執(zhí)行多個線程和進(jìn)程的效率。PHP 是一種同步語言,使用 I/O 塊調(diào)用。雖然一些依賴于 PHP 的插件和工具具有異步執(zhí)行,但是占比很少。雖然 PHP 庫已經(jīng)針對更快的性能和更少的計算資源消耗進(jìn)行了優(yōu)化,但不得不承認(rèn),由于是同步的原因,速度則會相對較慢。

Node.js 是一個異步環(huán)境。這意味著當(dāng)系統(tǒng)調(diào)用到達(dá)內(nèi)核時,查詢被解析。所有需要更多數(shù)據(jù)、文件或系統(tǒng)訪問權(quán)限的調(diào)用都會排隊(duì)并稍后執(zhí)行,而不會妨礙其他可以完成的功能。這是對異步環(huán)境的簡單解釋,但它仍然準(zhǔn)確地說明了該現(xiàn)象的核心含義。

2. 可擴(kuò)展性

可擴(kuò)展性表明了隨著項(xiàng)目功能和數(shù)據(jù)數(shù)量以及用戶數(shù)量方面的增長,服務(wù)器端腳本語言或運(yùn)行時環(huán)境可以跨多個系統(tǒng)、核心和服務(wù)器進(jìn)行擴(kuò)展。


大多數(shù)主要的內(nèi)容管理系統(tǒng)(如 WordPress 和 Joomla)都支持 PHP。這使得縮放過程相對更簡單。另一方面,Node.j在跨系統(tǒng)擴(kuò)展時需要付出相對更多的努力。

3. 性能

Node.js 是一個性能更好的運(yùn)行時環(huán)境,因?yàn)樗钱惒降模?ReactPHP 可以填補(bǔ) PHP 和 Node.js 之間的性能差距。
根據(jù)經(jīng)驗(yàn),與 Node.js 相比,PHP 每秒只能執(zhí)行 50% 的查詢。

4. 使用 PHP 或 Node.js 的理想場景

如果項(xiàng)目需要速度或?qū)崟r數(shù)據(jù)流,Node.js 將是兩種服務(wù)器端語言之間的首選選項(xiàng)。對于想要在整個堆棧中使用 JavaScript 的團(tuán)隊(duì)來說,Node.js 也是一個很好的替代方案。

當(dāng)希望項(xiàng)目具有可移植性時,PHP 是理想的選擇。當(dāng)已擁有集中式服務(wù)器基礎(chǔ)架構(gòu)時,它也是一個不錯的選擇。

四、對比分析

Node.js PHP
  • 開源運(yùn)行時環(huán)境
  • 開源服務(wù)器端語言
  • 在 JavaScript 上運(yùn)行
  • 在 JavaScript、HTML、CSS 和純文本上運(yùn)行
  • 被全球 189,000 個網(wǎng)站使用
  • 全球超過 500 萬個網(wǎng)站使用 
  • 異步調(diào)用執(zhí)行可以提高效率
  • 通常,同步調(diào)用執(zhí)行會導(dǎo)致更多的資源消耗
  • 難以擴(kuò)展
  • 在 WordPerss 和 Joomla 的幫助下,可擴(kuò)展性非常強(qiáng)
  • 估計每秒請求數(shù):3,614
  • 估計每秒請求數(shù):1,773
  • 非常適合需要速度、實(shí)時數(shù)據(jù)流以及希望在整個開發(fā)階段使用 JavaScript 的項(xiàng)目
  • 非常適合于必須具有可移植且使用集中式服務(wù)器基礎(chǔ)架構(gòu)開發(fā)的項(xiàng)目 

五、總結(jié)

Node.js 開發(fā)公司可能更喜歡運(yùn)行時環(huán)境,而那些精通 PHP 的公司則更喜歡服務(wù)器端腳本語言。使用更客觀的方法,可以看出項(xiàng)目的理想語言或運(yùn)行時環(huán)境將取決于項(xiàng)目的目的和約束。雙方都有大公司——Facebook、維基百科、Slack、MailChimp 和 WordPress 使用 PHP,而 Netflix、LinkedIn、PayPal 和 NASA 使用 Node.js。 

因此,您不應(yīng)該比較哪種服務(wù)器端JavaScript語言總體上是好的,而應(yīng)該嘗試檢查這兩種語言中的哪一種適合您的特定項(xiàng)目、目標(biāo)和約束

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】

 

責(zé)任編輯:梁菲 來源: DZone
相關(guān)推薦

2011-07-26 11:07:08

JavaScript

2011-09-08 10:21:50

Node.js

2021-05-26 09:00:00

Node.js開發(fā)模塊

2020-10-12 08:06:28

HTTP 服務(wù)器證書

2013-11-01 09:34:56

Node.js技術(shù)

2010-10-15 08:57:15

PHP多進(jìn)程

2018-07-09 10:01:56

2018-04-22 00:01:43

JavaScript Node 語言

2019-02-15 10:49:37

Node.jsweb服務(wù)器

2011-06-07 16:01:46

Android 服務(wù)器 數(shù)據(jù)交互

2018-03-15 09:54:45

php服務(wù)器端語言

2011-10-19 14:38:46

Node.js

2015-03-10 10:59:18

Node.js開發(fā)指南基礎(chǔ)介紹

2019-01-22 15:28:04

Javascriptvue.jsnuxt.js

2010-09-08 14:03:39

ZendPHP許可選擇

2015-07-16 09:59:55

PHP Node.js討論

2012-05-02 15:56:20

PHP

2011-06-17 10:29:04

Nodejavascript

2022-06-05 13:52:32

Node.jsDNS 的原理DNS 服務(wù)器

2010-03-23 10:04:00

JavaScript
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號