我試圖優化字典比較操作對用作數據庫查詢緩存的字典的每個字符串鍵的性能。當前的代碼如下所示:字符串比較的並行優化
public void Clear(string tableName)
{
foreach (string key in cache.Keys.Where(key => key.IndexOf(tableName, StringComparison.Ordinal) >= 0).ToList())
{
cache.Remove(key);
}
}
我是新來使用C#並行的特點,我想知道什麼是最好的辦法是將其轉換成並行操作,使多個字符串比較可能發生「同時」。高速緩存通常會變得非常大,因此使用Clear()
進行維護的成本可能會相當高。
「高速緩存通常會變得相當大」 - 您是否測量過性能瓶頸?如果不是,引入線程不會帶來任何影響並增加複雜性 –
如果我是你,首先考慮優化我的緩存方法,而不是尋求並行化服務代碼。 – Lazarus
我運行過性能分析器,告訴我在這個方法中有70%的樣本,特別是在IndexOf()中。不幸的是我受限於現有框架使用這種緩存方法。我想強制緩存中元素的數量上限,但這不是一個選項。 – dahvyd