我們使用CCR timers在我們的代碼中確定了一個熱點。看起來,如果我們排隊成千上萬的定時器,代碼遭受終端放緩。最適合調度程序的.net計時器
修復方法是選擇最快的計劃項目併爲此事件排入計時器。當它發生時,我們重複。這樣,我們一次只排隊一個定時器間隔。
我們現在發現的是,我們用來管理預定項目的SortedList實例正在使用列表中刪除的權重進行刻錄。
是否所有.net定時器都受到CPU使用率隨排隊項數量增加的問題的影響,還是存在更智能化寫入的問題。
另外,是否有更好的數據結構來保持我們排序的項目有序,即支持快速插入和從列表的前面快速移除?
但是,他不得不手動排序,這對他的特殊情況來說可能並不是太糟糕,所以這是一個不錯的選擇。 – McKay
我正在調查調度程序的用法。我相信所有項目都是按照時間順序提交的,所以這可能確實是最好的解決方案。 – spender