nodejs的10個性能優化技巧
下面是我們使用Node.js時遵循的10個性能規則:
1. 避免使用同步程式碼
在設計上,Node.js是單執行緒的。為了能讓一個單執行緒處理許多併發的請求,你可以永遠不要讓執行緒等待阻塞,同步或長時間執行的操作。Node.js的一個顯著特徵是:它從上到下的設計和實現都是為了實現非同步。這讓它非常適合用於事件型程式。
不幸的是,還是有可能會發生同步/阻塞的呼叫。例如,許多檔案系統操作同時擁有同步和非同步的版本,比如writeFile和writeFileSync。即使你用程式碼來控制同步方法,但還是有可能不注意地用到阻塞呼叫的外部函式庫。當你這麼做時,對效能的影響是極大的。
1 2 3 4 5 6 7 8 |
//
Good: write files asynchronously
fs.writeFile( 'message.txt' , 'Hello
Node' , function (err)
{
console.log( "It's
saved and the server remains responsive!" );
});
//
BAD: write files synchronously
fs.writeFileSync('message.txt ',
' Hello
Node ');
console.log("It' s
saved, but you just blocked ALL requests!");
|
我們的初始化log在實現時無意地包含了一個同步呼叫來將內容寫入磁碟。如果我們不做效能測試那麼就會很容易忽略這個問題。當以developer box中一個node.js例項來作為標準測試,這個同步呼叫將導致效能從每秒上千次的請求降至只有幾十個。
2.關閉套接字池
Node.js的http客戶端會自動地使用套接字池:預設地,它會限制每臺主機只能有5個套接字。雖然套接字的重複使用可能會讓資源的增加在控制之下,但如果你需要處理許多資料來自於同一主機的併發請求時,將會導致一系列的瓶頸。在這種情況下,增大maxSockets 的值或關閉套接字池是個好主意:
1 2 3 4 5 6 |
//
Disable socket pooling
var http
= require( 'http' );
var options
= {.....};
options.agent
= false ;
var req
= http.request(options)
|
3.不要讓靜態資源使用Node.js
對於css和圖片等靜態資源,用標準的WebServer而不是Node.js。例如,領英移動使用的是nginx。我們同時還利用內容傳遞網路(CDNs),它能將世界範圍內的靜態資拷貝到伺服器上。這有兩個好處:(1)能減少我們node.js伺服器的負載量(2)CDNs可以讓靜態內容在離使用者較近的伺服器上傳遞,以此來減少等待時間。
4.在客戶端渲染
讓我們快速比較一下伺服器渲染和客戶端渲染的區別。如果我們用node.js在伺服器端渲染,對於每個請求我們都會回送像下面這樣的HTML頁面:
?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<!--
An example of a simple webpage rendered entirely server side -->
<!DOCTYPE
html>
< html >
相關推薦ASP.NET比較常用的26個性能優化技巧本篇文章主要介紹了”ASP.NET中常用的26個優化效能方法”,主要涉及到ASP.NET中常用的26個優化效能方法方面的內容,對於ASP.NET中常用的26個優化效能方法感興趣的同學可以參考一下。 1. 資料庫訪問效能優化 資料庫的連線和關閉 訪問資料庫資源需要建立連線、開啟連線 nodejs的10個性能優化技巧下面是我們使用Node.js時遵循的10個性能規則: 1. 避免使用同步程式碼 在設計上,Node.js是單執行緒的。為了能讓一個單執行緒處理許多併發的請求,你可以永遠不要讓執行緒等待阻塞,同步或長時間執行的操作。Node.js的一個顯著特徵是:它從上到下的設計和實現都是為了實現非同步。這 laravel性能優化技巧(轉)速度 memcached remember app 驅動器 ocs auth 運行 clear 說明 性能一直是 Laravel 框架為人詬病的一個點,所以調優 Laravel 程序算是一個必學的技能。 接下來分享一些開發的最佳實踐,還有調優技巧,大家有別的建議也歡迎留言討 Oracle SQL性能優化技巧大總結從右到左 art ret http 減少 檢索 前綴 deb 結果 (1)選擇最有效率的表名順序(只在基於規則的優化器中有效): Oracle的解析器按照從右到左的順序處理FROM子 句中的表名,FROM子句中寫在最後的表(基礎表driving table)將被最先處理,在 Oracle SQL 性能優化技巧database 也會 完成 global 指定 多個 llb 狀況 choose Select語句完整的執行順序: SQL Select語句完整的執行順序: 1、 from子句組裝來自不同數據源的數據; 2、where子句基於指定的條件對記錄行進行篩選; 3、grou 關鍵的十個MySQL性能優化技巧選項 ability 性能優化 class pos 是否 bili 工具 完成 與所有的關系型數據庫一樣,Mysql仿佛是一頭讓人難以琢磨的怪獸。它會隨時停擺,讓應用限於停滯,或者讓你的業務處於危險之中。 事實上,許多最常見的錯誤都隱藏在MySQL性能 JavaScript 如何工作:渲染引擎和性能優化技巧blob 默認值 書簽 隱藏 播放 wikipedia 強制 之前 blocks 翻譯自:How JavaScript works: the rendering engine and tips to optimize its performance 這是探索 JavaScr 微信小程序性能優化技巧位置 結果 api each 狀態 使用 模塊 效果 事件 摘要: 如果小程序不夠快,還要它幹嘛? 原文:微信小程序性能優化方案——讓你的小程序如此絲滑 作者:杜俊成要好好學習 Fundebug經授權轉載,版權歸原作者所有。 微信小程序如果想要優化性能,有關鍵性的兩點: mysql:21個性能優化最佳實踐之17[拆分大的 DELETE 或 INSERT 語句]拆分大的 DELETE 或 INSERT 語句 如果你需要在一個線上的網站上去執行一個大的 DELETE 或 INSERT 查詢,你需要非常小心,要避免你的操作讓你的整個網站停止相應。因為這兩個操作是會鎖表的,表一鎖住了,別的操作都進不來了。 Apach mysql:21個性能優化最佳實踐之16[垂直分割]垂直分割 “垂直分割”是一種把資料庫中的表按列變成幾張表的方法,這樣可以降低表的複雜度和欄位的數目,從而達到優化的目的。(以前,在銀行做過專案,見過一張表有100多個欄位,很恐怖) 示例一:在Users表中有一個欄位是家庭地址,這個欄位是可選欄位,相比 mysql:21個性能優化最佳實踐之7[避免 SELECT *]避免 SELECT * 從資料庫裡讀出越多的資料,那麼查詢就會變得越慢。並且,如果你的資料庫伺服器和WEB伺服器是兩臺獨立的伺服器的話,這還會增加網路傳輸的負載。 所以,你應該養 iOS 25個性能優化/記憶體優化常用方法1. 用ARC管理記憶體 ARC(Automatic ReferenceCounting, 自動引用計數)和iOS5一起釋出,它避免了最常見的也就是經常是由於我們忘記釋放記憶體所造成的記憶體洩露。它自動為你管理retain和release的過程,所以你就不必去手動干 mysql:21個性能優化最佳實踐之2[EXPLAIN 你的 SELECT 查詢]EXPLAIN 你的 SELECT 查詢 使用EXPLAIN 關鍵字可以讓你知道MySQL是如何處理你的SQL語句的。這可以幫你分析你的查詢語句或是表結構的效能瓶頸。EXPLAIN 的查詢結果還會告 Java高階開發必會的50個性能優化的細節開發十年,就只剩下這套架構體系了! >>> 如何寫出一個性能優化的單例模式單例模型是面試當中最常見的一種設計模式,它是一種物件建立模式,用於產生一個物件的具體例項,可以確保系統中一個類只產生一個例項。 簡而言之,單例模式可以帶來兩個好處: 1、對於頻繁使用到的物件,可以節省反覆建立物件花費的時間; 2、減少物件的例項化操作,故而可以降低系統記憶體的使用頻率; 根據以上 .NET性能優化小技巧分布式緩存 域名解析 而且 性能 end 就會 sql 緩存 intro .NET 性能優化小技巧 Intro 之前做了短信發送速度的提升,在大師的指導下,發送短信的速度有了極大的提升,學到了一些提升 .NET 性能的一些小技巧 HttpClient 優化 關於使用 Htt How Javascript works (Javascript工作原理) (十一) 渲染引擎及性能優化小技巧for 流行 bug 文章 path mat 文本 頁面 oppo 個人總結:讀完這篇文章需要20分鐘,這篇文章主要講解了瀏覽器中引擎的渲染機制。 DOMtree ----| |----> RenderTree CSSOMtree - 【MySQL】15個有用的MySQL/MariaDB性能調整和優化技巧cache 實踐 isam 今天 都是 第一個 斷開 企業 最新 MySQL 是一個強大的開源關系數據庫管理系統(簡稱 RDBMS)。它發布於 1995 年(20年前)。它采用結構化查詢語言(SQL),這可能是數據庫內容管理中最流行的選擇。 jQuery 性能優化和技巧每次 獲得 重要性 ++ 修改 blank 設置 ack 捕捉 我們將介紹在書寫代碼時,應該需要註意的幾個性能問題,希望對於大家在書寫高性能的Web應用中有所幫助。 1.使用最新版本的 jQuery 類庫 jQuery 每一個新的版本都會較上一版進行 Bug 修復 移動H5前端性能優化指南例如 coo forms 指南 touchend meta 大於 動畫 節點 移動H5前端性能優化指南 概述 1. PC優化手段在Mobile側同樣適用2. 在Mobile側我們提出三秒種渲染完成首屏指標3. 基於第二點,首屏加載3秒完成或使用Loading4. 基於聯通 |