webim系列文章
在一步一步打造webim(1)和(2)中,已經討論了如何開發乙個webim,並且使用快取來提高webim的效能,本文將編寫乙個程式模擬大量使用者登入來對webim進行效能測試。
測試一將模擬200個使用者同時登入的聊天室,每個使用者以1條訊息/秒的速度傳送訊息(由於網路和伺服器處理延遲,可能多於1秒)
環境引數
作業系統:window server 2003
記憶體:2g
cpu:amd athlon(tm) 64 x2 dual 2.4ghz
伺服器:iis6
資料庫:sqlite
訊息快取數量:200
測試過程截圖
測試結果
測試結果解析
測試程式啟動了200個接收執行緒和200個傳送執行緒(以1條訊息/秒的速度傳送訊息,連續發50條),根據測試結果顯示,傳送訊息的平均延遲大概為1000ms(即從客戶端傳送訊息到伺服器將訊息寫到快取中大概要1000ms),接收訊息的平均延遲為大概600ms(伺服器將訊息寫到快取600ms後,使用者才在瀏覽器中接收到該訊息)。由於每乙個使用者都會接受到其它199個使用者的訊息,因此,200個接受執行緒如果訊息完全接收,應該有200*50*200 = 2000000條訊息,顯然,當傳送訊息的200個執行緒結束時,接收訊息的執行緒仍然沒有結束。由於傳送訊息的平均延遲大概為1000ms,因此,相當於200個使用者同時以1條訊息/2秒的頻率向聊天室傳送訊息。
測試一將模擬500個使用者同時登入的聊天室,每個使用者以1條訊息/秒的速度傳送訊息(由於網路和伺服器處理延遲,可能多於1秒)
環境引數
作業系統:window server 2003
記憶體:2g
cpu:amd athlon(tm) 64 x2 dual 2.4ghz
伺服器:iis6
資料庫:sqlite
訊息快取數量:200
測試過程截圖
測試結果
測試結果的意義和測試1類似,因此不做詳細解析
一步一步打造WebIM 3 效能測試
webim系列文章 在一步一步打造webim 1 和 2 中,已經討論了如何開發乙個webim,並且使用快取來提高webim的效能,本文將編寫乙個程式模擬大量使用者登入來對webim進行效能測試。測試一將模擬200個使用者同時登入的聊天室,每個使用者以1條訊息 秒的速度傳送訊息 由於網路和伺服器處理...
一步一步打造WebIM 1
webim系列文章 1.comet 在.net要實現comet就要用到ihttpasynchandler,在開始閱讀文章前,建議先了解一下ihttpasynchandler。2.lesktop lesktop是一款用於開發ria 的開源js介面庫,lesktop提供了乙個功能強大的視覺化開發工具幫助...
一步一步打造WebIM 2 訊息快取
盧春城專欄 在 一步一步打造webim 1 一文中,已經介紹了如何實現乙個簡單的webim,但是,這個webim有乙個問題,就是每一次新增訊息 時,都必須訪問一次資料庫去查詢是否有訊息,顯然,如果使用者比較多時,必然對資料庫的壓力比較大。解決這個問題的乙個方法就是先將訊息快取在記憶體中,不立即寫入資...