最近想試試C#能不能寫出高性能的分佈式組件,因而寫了一個雙工RPC,也當練手,下面是單鏈接的測試結果,很是給力。
機器配置:U:E1230-v2,內存:ddr3-8G
一、遞歸調用
過程:Client向Server調用方法,Server的方法內部再調用一次Client的方法,拿到結果後計算結果返回給Client.
二、單向調用
過程:client調用Server的方法
哈,性能很是給力吧,我也沒想到性能這麼給力。
用RPC開發一個分佈式應用或者網絡應用很是簡單,下面粘點代碼
Server端:
就這麼簡單,服務器的類只須要繼承自ServerController,裏面的方法客戶端就能直接調用,圖中註釋的代碼就是代碼內部反向調用Client端的方法,方法體內部支持Session上下文,能夠很方便的操做,圖中的BroadCast方法就是使用Session上下文給全部在線的用戶發送廣播信息
client端:
就這麼簡單,只須要提供Server端的方法的接口,就能像使用本地方法同樣調用服務器的方法。
圖中的ISCaculator接口就是服務器端的Caculator類的接口,能夠和圖1對比 服務器