HttpContext.Cache против отражения: что является более эффективным? - PullRequest
0 голосов
/ 04 декабря 2008

Я использую отражение, чтобы получить атрибуты авторизации от контроллеров и методов.

Поскольку мне нужно будет получать эту информацию снова и снова, мне интересно, быстрее ли ее кэшировать или просто продолжать использовать отражение для ее получения.

Есть мысли?

Ответы [ 2 ]

0 голосов
/ 13 марта 2009

этот ответ приходит с некоторым опозданием, но недавно я сам думал об этом в течение одного бита в проекте и закончил делать кеш, используя следующий метод расширения GetOrCreate не забудьте заблокировать словарь, если вы это сделаете.

Вместо этого вы можете использовать ImmutableAVLTree , используя стратегию без блокировки

Наконец, есть несколько полезных утилит для использования отражения здесь

Это часть полной платформы, но вы можете просто скопировать этот бит кода , если это единственный бит, который вам нужен.

0 голосов
/ 04 декабря 2008

В общем случае Reflection не рекомендуется при достижении скорости, но вы должны учитывать время для разработки действительно работающего кэша (поточно-безопасного, очень быстрого, который дает вам текущее значение, а не старое противоречивое значение ) и отладить его.

Очень сложно сказать, какая архитектура даст лучшую производительность, но вы можете легко написать небольшой тест для определения времени двух разных сценариев с небольшим набором простых случаев. Вы можете обнаружить, что скорость совершенно одинакова или что она существенно отличается. В любом случае у вас есть свой ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...