.NET - Как сравнить производительность между 2 блоками кода? - PullRequest
1 голос
/ 08 апреля 2011

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

Предоставляет ли .NET или Visual Studio класс для анализа потребления памяти, а также использования процессора?

Ответы [ 8 ]

1 голос
/ 08 апреля 2011

DateTime не годится, вы хотите, чтобы класс StopWatch измерял время. Чтобы увидеть нагрузки и потребление памяти, вы хотите, чтобы профилировщик.

1 голос
/ 08 апреля 2011

Вы можете использовать SQL Server Profiler для проверки номера.доступа к базе данных, а также времени доступа к контенту вы можете проверить производительность

1 голос
/ 08 апреля 2011

Вы должны взглянуть на мастер исполнения Visual Studio.Эти инструменты могут анализировать выполнение несколькими различными способами.

1 голос
/ 08 апреля 2011

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

0 голосов
/ 08 апреля 2011

То, что вы ищете, это Profiler.

См. Этот веб-сайт

Или вы можете использовать класс StopWatch в пространстве имен System.Diagnostics для измерения времени.

Также взгляните на этот вопрос - .NET инструменты профилирования кода

0 голосов
/ 08 апреля 2011

Сравните, сколько DateTime.Ticks занимает каждый метод.

0 голосов
/ 08 апреля 2011

Чтобы получить общее потребление памяти, вы можете использовать GC Class

    //initialise objects/vairables subject to memory measurement

    long memUsageBefore = GC.GetTotalMemory(true); 

    //do something with some measured object

    long memUsageAftere  = GC.GetTotalMemory(true); 

    // make it ineligible for garbage collection from the start of the current routine to the point where this method is called. 
    GC.KeepAlive(measuredObject); 
0 голосов
/ 08 апреля 2011

Вы можете попробовать Eqatec Profiler .

...