Нет. Я никогда не обновлял его, но я думаю, что, если принять его с подходящими зернами соли, общие советы и большинство практических правил в статье все еще остаются в силе сегодня.
(Тем не менее, было бы интересно повторить эксперимент сегодня, чтобы увидеть, как изменились примитивные времена, как изменился сгенерированный код и как изменились микропроцессоры.)
Относительные накладные расходы большинства примитивов не сильно изменятся, но некоторые из них кардинально изменятся. Например, посредственная производительность нестатического вызова делегата была значительно улучшена (в .NET 2.0, если я правильно помню). Мне не хотелось бы думать, что сегодняшняя практикующая изо всех сил старается избежать вызова делегатов, потому что в 2003 году я сообщила, что это очень дорого.
Начиная с .NET 1.1, я ожидал, что многие последовательности скомпилированного кода изменились; будут новые оптимизации JIT-компилятора (которые не так хорошо проявляются в микробенчмарках); различные сочетания JIT-кода и NGEN-кода (и NGEN не рассматривался в моей статье); и ключевые подсистемы, такие как сборщик мусора, непрерывно настраивались на протяжении многих лет.
Я повторяю свои предостерегающие советы о возможном влиянии системной памяти на снижение затрат на любое количество отдельных примитивных операций управляемого кода - и еще раз отмечаю, что многое изменилось. Например, большая часть работы над производительностью CLR в 03-04 была связана с улучшением поведения рабочего набора (например, минимизация грязных личных страниц) системных сборок NGEN.
Конечно, тема статьи - это необходимость вдумчиво и бдительно измерять производительность вашего кода, и эта тема вечна.
Между прочим, я всегда хотел сделать последующую статью об ожидаемых / типичных временных и пространственных затратах первых сотен или около того наиболее используемых методов .NET BCL, и продемонстрировать в качестве предостерегающих рассказов некоторые из ужасов истории, которые мы нашли, работая над производительностью .NET. Это привело к некоторым очень интересным размышлениям о том, как охарактеризовать эмпирическую производительность библиотеки / фреймворка классов, фактически используемую настоящими практиками в дикой природе ...
Спасибо, что прочитали его тогда, и спасибо за ваш постоянный интерес.
p.s. Я вижу, что Вэнс Моррисон впоследствии написал большую серию MSDN из двух частей на эту тему - если вам понравилась моя статья, вам понравятся следующие:
http://msdn.microsoft.com/en-us/magazine/cc500596.aspx
http://msdn.microsoft.com/en-us/magazine/cc507639.aspx