2011-01-09 5 views
1

Я начинаю строить механизм кеширования, в функции я хочу добавить поддержку счетчика производительности, поэтому вопрос заключается в том, как я могу планировать голову для этой поддержки. Мне нужно будет изменить небольшой код, насколько это возможно, когда я вхожу этой характеристикеКак я должен подготовиться к добавлению счетчика производительности?

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

Если Я постараюсь догадаться о том, что мне нужно измерить, это поможет мне в функции, когда я ее реализую?

Есть ли у вас какое-либо другое предложение, как я должен подготовиться к добавлению этой функции?

Есть ли известная альтернатива счетчику производительности?

Спасибо.

ответ

2

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

Сначала рассмотрите меры, о которых вы сообщите. Такие вещи, как скорость использования кеша, элементы в кеше и коэффициент попадания в кеш очевидны. Но есть ли что-нибудь еще, что поможет администрировать ваше приложение? Если вы можете поговорить с людьми, которые будут управлять и поддерживать приложение, тогда сделайте так, что у вас есть свои идеи о том, что полезно.

Ожидайте узнать в реальном использовании, какие полезные счетчики!

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

И, наконец, стоит посмотреть варианты, доступные для типов счетчиков, и что они означают — система счетчиков производительности сделает для вас определенную работу (например, вычисление дельт и ставок отдельных счетчиков и итогов по всем экземплярам).

2

Это зависит от сложности вашего измерения производительности. Если это просто и требуется только в нескольких местах, используйте переключатели компилятора или аналогичные материалы. Для сложных и мор устойчивых сценариев я попробовал две возможности:

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

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

Cheers,

Пол

+0

Я думаю, я буду использовать переключатели компилятора, как вы рекомендовали :) – Delashmate

+0

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

Смежные вопросы