Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
86 / 13 / 1
Регистрация: 24.05.2010
Сообщений: 590
.NET 4.x

Понимание результатов профилирования

05.03.2015, 18:17. Показов 1346. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет!

Есть приложение типа сервер, которое принимает и обрабатывает входящие tcp подключение от клиентов. Периодически возникает проблема, когда приложение съедает почти полностью процессор. Приходится убивать процесс и перезапускать его.

Проблема проявляется хаотично. Несколько недель приложение работает без нареканий, а потом за день по несколько раз его клинит. Опять неделю-другую без проблем. Потом снова может климануть. Как отследить в каком месте и какова причина - не знаю.

От безысходности попробовал запустить профилировщик в Visual Studio. Съимитировал действия подключения нескольких клиентов сразу друг за другом. Проц поднапрягся. Не полностью, но процентов на 25 на какое-то время он озадачился. Возможно причина нагрузки проца в моем "нагрузочном тесте" и в реальной работе одна и та же. Поэтому я бы хотел разобраться с результатами профилирования, т.к. сам на 100% не уверен в том, что мне говорит студия.

После окончания профилирования вот первое, что мне показала студия:



Дальше я клацнул на строку, по которой указан "Включающие выборки %" 99,47 и переместился сюда:



В 2 словах что это за функция. Когда на сервер от клиента поступает "сигнал", он (сервер) берет клиента и ставит его себе в пул для дальнейшего приема сообщений от него. Собственно, функция ReceiveMessagesFromClient крутится в отдельном потоке, который инициируется из AcceptClientForProcessing, и принимает сообщения.

На картинке видно, что 98,8% находится в самом начале функции ReceiveMessagesFromClient, до выполнения её первой строки. Собственно, что это вообще за цифра 98,8%? Название колонки "Включающие выборки" мне лично не много о чем говорит. Но есть предположение, что это процент вызова этой функции по отношению к другим. Так ли это? Если нет, то что это за цифра? Или же я вообще не то и не туда смотрю?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.03.2015, 18:17
Ответы с готовыми решениями:

Программа для профилирования .NET приложений
Здравствуйте подскажите, какие есть программы для тестирования .NET приложений на то сколько памяти потребляют объекты в приложении и...

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

Вычитание результатов одного запроса из результатов другого
Есть 2 запроса,подскажите возможно ли вычесть одно из второго

3
86 / 13 / 1
Регистрация: 24.05.2010
Сообщений: 590
11.03.2015, 16:51  [ТС]
Тема актуальна.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
11.03.2015, 16:58
Лучший ответ Сообщение было отмечено Psilon как решение

Решение

V0fka, это значит 98.8% времени процессор проводит за выполнением этой функции. HotPath показывает самый затратный для процессора путь.
0
86 / 13 / 1
Регистрация: 24.05.2010
Сообщений: 590
15.03.2015, 21:27  [ТС]
Psilon, спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.03.2015, 21:27
Помогаю со студенческими работами здесь

Понимание С++
Приветствую. У меня такой вопрос. Если я сейчас учусь с++ (читаю книгу), то нужно в этой книге каждый пример понимать и что-то с ним...

Понимание синтаксиса
В PHP я делаю вот так <? $per = 1; $per++; echo $per; ?> И получаю увеличенное значение на 1

Правильное понимание
ifstream file; file.open(way1.c_str()); getline(file, name); getline(file, fam); getline(file, otchestvo); file >> age;...

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

Понимание JavaScript
Уважаемые форумчне, недавно занялся изучением ЯП а именно JavaScript, но меня пугают некоторые вещи, например: читаю учебник, и там дается...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru