日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

c#总结最近的几项重要代码

發布時間:2023/11/27 生活经验 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c#总结最近的几项重要代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java的代碼就不說了,畢竟不是我的主業。

1.c#數據庫連接池Hikari.

? ?(1)動態加載各類數據庫驅動

? (2)支持簡單配置文件

(3)支持按照名稱多數據庫調用

(4)使用簡潔

?單數據庫使用:

HikariConfig hikariConfig = new HikariConfig();
hikariConfig.LoadConfig("Hikari.txt");
HikariDataSource hikariDataSource = new HikariDataSource(hikariConfig);

獲取連接:

hikariDataSource.GetConnection();

連接池管理類獲取

ManagerPool.Instance.GetDbConnection(MySql);

項目地址:

https://github.com/jinyuttt/Hikari.git

2.c#數據庫封裝DBQuerySharp

(1)各類數據庫均有,功能齊備

(2)有SQL,NoSQL樣例,完善了封裝

(3)封裝成了服務化模型。擴展使用和優化

(4)有查詢的緩存優化樣例。

整個包括了SQL數據庫(連接池任意配置),本地KV數據庫(berkeleydb),本地SQL數據庫(Sqlite),內存SQL數據庫(Sqlite),內存NOSQL數據庫(redis),內存KV存儲(LRU緩存)

(5)相關項目

1.sqilte 2.berkeleydb 3.一般數據庫使用(通過Hikari) 4.redis ? 包含其他項目: 1.序列化 2.通信 3.自定義數據庫連接池

項目地址:

https://github.com/jinyuttt/DBQuerySharp.git

3.本地緩存JYCache

? (1)完全本地換K-V緩存

(2)實現FIFO,LRU,LFU策略

使用示例:

CacheConfig config = new CacheConfig();
config.CacheTime = 1800;//(時間都是秒)
config.Policy = CachePolicy.FIFO;//設置消失策略
ICache<int,int> cache=CacheFactory<int, int>.Create(config);
cache.CacheRemoveListener += Cache_CacheRemoveListener;
cache.Add(1, 1,10);//單獨設置key保持10秒

項目地址:

https://github.com/jinyuttt/JYCache.git

4.Hash一直負載均衡LoadBalanceHash

? (1)實現Hash一致算法。算法原理網上搜索很多,我就不說了。只需要搜索“Hash一致”

(2)這方面我不擅長,主要是參閱網友的東西。我的封裝包括了2個項目。一個是網上原理KetamaHash .

? (3)主要參閱:https://www.cnblogs.com/daizhj/archive/2010/08/24/1807324.html;

? ? ? ? ? ? ? ? ? ? ? ??https://blog.csdn.net/cywosp/article/details/23397179/

?(4)代碼說明

?參考網上的代碼就不說了,一模一樣。主要是MD5+SortedList.

這里說我測試的另外一個組合。MurmurHash+SortedList.這個是充分驗證了效率的。

MurmurHash算法比較快,網上多少MD5.用法基本可以一樣,但是我沒有使用原來進行分組了。底層存儲我測試了SortedDictionary,SortedList以及自定義紅黑樹(gi網友的,可以使用)。他們的主要問題都是在獲取Key右側最近的節點。都沒有提供現成的。所以測試很慢。

最后測試MurmurHash+SortedList.但是多了一層封裝。我將其SortedList與紅黑樹合并(也可以直接自己封裝一個類結構,項目中也有樣例)。在初始化時,數據添加到紅黑樹中。然后通過UpdateSort快速遍歷,將數據導入SortedList存儲使用,這樣就啟用了其中為Hash一致封裝的功能TialNode.但是這里不能使用網上的方法,用linq查詢,太慢。我在內部直接使用二分法進行搜索。后面說原因。采用這種辦法會很快,而且直接返回最右側的一個值。這里強調一個問題,不能使用多線程分片查詢,更加慢。經過測試,每個線程都是一樣的時間,和應該線程直接查詢一樣的時間使用。都是很短的時間大約一個線程30-800(比毫秒還小的那個單位)。我測試使用的分片方法任然在,但是不能使用。這個可能和數據量有關,一個線程的數據量沒有千萬級就不要測試了,二分法的方法已經夠快了,一次干掉一般的數據,沒有幾次就結束了。

最后說說碰上的一個小問題:比較SortedDictionary, SortedList。我推薦一篇文章,是我自己查閱源碼(net core)之后,認為這篇文章是真實的。博文地址:https://blog.csdn.net/ma_jiang/article/details/78600043。我比較認可。也正是由于2者的結構,所以我最后采用SortedList來實現Hash一致。

? 關于這個問題說2點:SortedList內存小,而且是線性數組實現的Key與value。SortedDictionary則是二叉樹。查詢一個是二分法,一個是二叉樹。另外一個困惑是,我采用紅黑樹搜索居然達不到它們2者的速度,我感覺奇怪。后面我再繼續測試吧。

項目地址:

https://github.com/jinyuttt/LoadBalanceHash.git

?

?

?

?

轉載于:https://www.cnblogs.com/jinyu20180311/p/10386297.html

總結

以上是生活随笔為你收集整理的c#总结最近的几项重要代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。