У меня есть метод, который суммирует коллекцию десятичных значений, используя метод, подобный этому ...
Dim _amountCollection as New List(Of Decimal)
_amountCollection.Add(145.12D)
_amountCollection.Add(11.32D)
_amountCollection.Add(6547.07D)
Dim _totalAmount as Decimal
For Each _individualAmount as Decimal in _amountCollection
_totalAmount += _individualAmount
Next
В фактическом коде обычно есть больше членов в наборе сумм, и есть по крайней мере 50 отдельных собраний сумм, которые необходимо суммировать в общей операции.
Этот пересчет общей суммы вызывается часто (по крайней мере, один раз, а затем снова для каждого изменения содержимого коллекции) и отображается в трассировках профиля как от 2 до 5% общего времени работы. Я смотрю, чтобы узнать, есть ли у кого-нибудь представление о том, как ускорить эту операцию суммирования, или это будет самая быстрая операция.
Кэширование в этом случае нереально, потому что суммы должны пересчитываться.
**** EDIT **
Для Равадре и Джоэла - общая сумма хранится на уровне класса (каждая коллекция сумм и сумма содержатся в экземпляре класса)
Есть идеи?