.net 異步更慢了

    做實時數據庫內核時,花了兩天時間把之前同步邏輯改成異步,重點涉及到IO處理的方法,本以爲性能會提升,因爲微軟官方文檔專門就io異步方式和算法異步進行了說明。今天測試結果大跌眼鏡,壓縮寫入文件的速度從10m/s下降到了3m/s,.net core3.0本身佔用了93.48%CPU時間,其中僅異步調度就佔用了20.35%,而我的業務邏輯只得到了可憐的6.52%,比同步模式下的21.8%降低了70%!

    看來還是不能亂用異步,畢竟任務調度也是有代價的,某帖子說在50ms以上的(所謂的long run)活適合異步,比如網絡通訊、數據庫查詢、ui操作、文件io等等。我的應用場景中,即便是io也是以kb爲單位讀寫,時間不可能到50ms,因此用異步得不償失。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章