Является ли PostSharp хорошим способом для профилирования кода, работающего на производстве? - PullRequest
2 голосов
/ 22 января 2010

Я хотел бы запустить профилирование кода для некоторых служб, работающих в тестировании и производстве. Я планирую использовать PostSharp для реализации класса, который выглядит как

    public class TimerAttribute : OnMethodBoundaryAspect
    {
        //some data members
        //...

        public override void OnEntry(MethodExecutionEventArgs eventArgs)
        {
            //write method entry time to file
        }

        public override void OnExit(MethodExecutionEventArgs eventArgs)
        {
            //write method exit time to file
        }
    }

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

1 Ответ

2 голосов
/ 22 января 2010

Для инструментария производительности вы должны знать о накладных расходах аспекта. Эти издержки были важны в предыдущих версиях PostSharp, но были значительно улучшены в PostSharp 2.0.

Что касается вашего кода, я вижу опасность в том, что запись в файл может быть медленной и потокобезопасной. Конечно, это действительно зависит от вашего контекста и целей.

Счетчики производительности могут быть хорошей альтернативой.

...