2015年6月9日 星期二

使用Azure的Redis Cache上手紀錄…比較篇-II

 

來了來了,接續前一篇我們要來撰寫測試案例了。

首先 我們在原本的方案當中,建立一個測試案例的專案。

image

image

 

建立完成後,你會看到Visual Studio會貼心地幫你做好一個預設的測試方法,不過很可惜的,這個測試方法我們要將它刪除XD

image

image

 

接著加入測試的目標專案的參考。

image

image

 

完成後,就會看到參考當中,已經加入目標專案的參考了。

image

不囉嗦直接來寫測試案例的Code。

image

完成後,帥氣的按下密技組合鍵Ctrl + R, A,就會看到Visual Studio幫你跑完測試結果回來給你。
不過兩個測試方法跑出來的執行時間居然差了10倍之多。本來以為是因為有測到資料的修改,所以速度會降下來。

 

但調整了一下測試方法的執行順序發現,就換成另外一個方法執行時間多出10倍之多。


image


image


仔細地想了想,應該是測試程式在第一次執行RedisCache的存取時,需要建立相關物件所造成了執行時間加長。


所以再獨立的撰寫了一個建立RedisCache存取物件的測試方法。

image


當然Production Code的部分,就要很沒事的再多增加一個GetDatabase的方法,就只是撰寫建立存取RedisCache存取的程式。而注意這個方法我將它寫成internal的方法,所以要讓測試專案能夠測試,則必須加上assembly的描述詞。


image


再次帥氣的按下密技組合鍵Ctrl + R, A,就會看到Visual Studio幫你跑完測試結果回來給你,而這次主要的兩個測試方法的時間就幾乎一樣了。


image


重頭戲出來啦,寫上比較直接序列化以及JsonConvert的兩組比較測試案例。紅色框為JsonConvert,綠色框為直接序列化。


image


然後緊接著跑測試結果,噹噹~~效能的存取上,看來是透過直接序列化的方式會比較快速,大約是2~3倍的差距。

 

image


image


但這樣的結果並非就是說JsonConvert就完全不好,因為若你的資料在處理上最後還需要將資料丟出來給前端的Client來使用,丟Json的資料格式會比較方便處理吧!!!


以上供各位看倌參考參考~~


打完收工!!!


 


參考資料:

Azure - Redis Cache:
http://blog.sanc.idv.tw/2014/08/azure-redis-cache.html

如何使用 Azure Redis 快取:
http://azure.microsoft.com/zh-tw/documentation/articles/cache-dotnet-how-to-use-azure-redis-cache/

使用Azure Cache - Redis Cache 加速效能:
http://www.dotblogs.com.tw/jaigi/archive/2015/01/08/148005.aspx

CODE-使用JSON.NET處理動態物件屬性
http://blog.darkthread.net/post-2010-06-05-json-net-jobject-example.aspx

沒有留言:

張貼留言