powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Быстродействие при отладке
9 сообщений из 9, страница 1 из 1
Быстродействие при отладке
    #40039992
haicon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Может кто сталкивался с проблемой быстродействия при отладке приложения.
Заметил, что, если приложение запусать без отладки приложение, грузиться около минуты. но при отладке может грузиться 15-20 минут. Так же при работе приложения в отладке приложение притормаживает в основном при работе с бд. Я понимаю, что при отладке неизбежно приложение будет работать медленнее, но не в 15-20 раз. Профилирование программы показало, что в основном тормаза возникают при работе с бд. а конкретно 98% занимает выолнение
System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior, String).
...
Рейтинг: 0 / 0
Быстродействие при отладке
    #40039995
L.Otujktd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
haicon,

Советую посмотреть профилировщиком где больше всего тратится процессорного времени при запуске.
Также возможно где-то есть проверка на макрос debug и выполняется другая ветка, более медленная
...
Рейтинг: 0 / 0
Быстродействие при отладке
    #40039999
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
haicon
основном тормаза возникают при работе с бд
ну так это не приложение надо профилировать, а запросы к БД оптимизировать, индексы и т.п.

Минуту на запуск без отладки? Круто. Тут точно не с отладкой надо разбираться, а с запросами.
...
Рейтинг: 0 / 0
Быстродействие при отладке
    #40040000
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
haicon
без отладки приложение, грузиться около минуты

Это много! 5 сек еще можно потерпеть, ну 10 если очень уважаешь, но не минуту.
...
Рейтинг: 0 / 0
Быстродействие при отладке
    #40040003
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T
Это много! 5 сек еще можно потерпеть, ну 10 если очень уважаешь, но не минуту.

Ну, можно какую-нить сплэшку показать. Ничего, люди терпят. Знаю тех, что примерно минуту и любуется на сплэш SSMS.
Shocker.Pro
haicon
основном тормаза возникают при работе с бд
ну так это не приложение надо профилировать, а запросы к БД оптимизировать, индексы и т.п.
Минуту на запуск без отладки? Круто. Тут точно не с отладкой надо разбираться, а с запросами.

Насколько мне известно, запросы индифферентны к Debug/Release, там работают несколько другие факторы.
...
Рейтинг: 0 / 0
Быстродействие при отладке
    #40040004
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловны
Dima T
Это много! 5 сек еще можно потерпеть, ну 10 если очень уважаешь, но не минуту.

Ну, можно какую-нить сплэшку показать. Ничего, люди терпят. Знаю тех, что примерно минуту и любуется на сплэш SSMS.

Если некуда деваться, то терпят, смотрят на ... . Но это разве нормально? Я с линукса на виндавс вернулся потому что вроде быстро, но потом сплэшка и по времени я проиграл.
...
Рейтинг: 0 / 0
Быстродействие при отладке
    #40040007
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверняка из БД что-то читается. Я бы не сплешку показал, а неполноценный интерфейс, и по мере подгрузки нужных данных, появлялась бы нужная функциональность.

А у ТС приложение, судя по ExecuteReader вместо ExecuteReaderAsync, не про асинхронность.
...
Рейтинг: 0 / 0
Быстродействие при отладке
    #40040354
haicon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблема точно не в ветлении кода на Debug\Release, так запуск программы под Debeug и release без отладки примерно одинаково приемлимое. Вся просадка происходит в отладке. И именно в обращении к БД. Запросы к БД идут одинаковые не зависящие от релиза или отладки. оптимизация тут не причем так как при загрузке без отладки и с отладкой идут одинаковые и профилировщик бд выдает также приемлимые данные.
для наглядности рофилировка

97,31 % ExecuteReader • 417 719 ms • System.Data.Common.DbCommand.ExecuteReader(CommandBehavior)
97,31 % ExecuteDbDataReader • 417 719 ms • System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior)
97,31 % ExecuteReader • 417 719 ms • System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior, String)
7,88 % RunExecuteReader • 33 832 ms • System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior, RunBehavior, Boolean, String)
7,88 % RunExecuteReader • 33 832 ms • System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior, RunBehavior, Boolean, String, TaskCompletionSource, Int32, out Task, out Boolean, Boolean, Boolean)
7,85 % RunExecuteReaderTds • 33 679 ms • System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior, RunBehavior, Boolean, Boolean, Int32, out Task, Boolean, Boolean, SqlDataReader, Boolean)
7,59 % FinishExecuteReader • 32 564 ms • System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader, RunBehavior, String, Boolean, Boolean, Boolean)
7,57 % get_MetaData • 32 513 ms • System.Data.SqlClient.SqlDataReader.get_MetaData
7,57 % TryConsumeMetaData • 32 504 ms • System.Data.SqlClient.SqlDataReader.TryConsumeMetaData
7,57 % TryRun • 32 504 ms • System.Data.SqlClient.TdsParser.TryRun(RunBehavior, SqlCommand, SqlDataReader, BulkCopySimpleResultSet, TdsParserStateObject, out Boolean)
7,50 % TryReadByte • 32 211 ms • System.Data.SqlClient.TdsParserStateObject.TryReadByte(out Byte)
7,50 % TryPrepareBuffer • 32 211 ms • System.Data.SqlClient.TdsParserStateObject.TryPrepareBuffer
7,50 % TryReadNetworkPacket • 32 203 ms • System.Data.SqlClient.TdsParserStateObject.TryReadNetworkPacket
7,50 % ReadSniSyncOverAsync • 32 195 ms • System.Data.SqlClient.TdsParserStateObject.ReadSniSyncOverAsync
7,47 % SNIReadSyncOverAsync • 32 054 ms • SNINativeMethodWrapper.SNIReadSyncOverAsync(SafeHandle, ref IntPtr, Int32)
0,00 % [Garbage collection] • 18 ms
0,03 % 4 functions hidden • 140 ms total
0,00 % TryProcessHeader • 8 ms • System.Data.SqlClient.TdsParserStateObject.TryProcessHeader
►0,06 % TryProcessMetaData • 244 ms • System.Data.SqlClient.TdsParser.TryProcessMetaData(Int32, TdsParserStateObject, out _SqlMetaDataSet, SqlCommandColumnEncryptionSetting)
0,01 % 3 functions hidden • 33 ms total
0,00 % get_IsClosed • 9 ms • System.Data.SqlClient.SqlDataReader.get_IsClosed
0,01 % 2 functions hidden • 34 ms total
►0,14 % TdsExecuteRPC • 622 ms • System.Data.SqlClient.TdsParser.TdsExecuteRPC(SqlCommand, _SqlRPC[], Int32, Boolean, SqlNotificationRequest, TdsParserStateObject, Boolean, Boolean, TaskCompletionSource, Int32, Int32)
0,06 % 5 functions hidden • 252 ms total
►0,05 % ValidateAndReconnect • 225 ms • System.Data.SqlClient.SqlConnection.ValidateAndReconnect(Action, Int32)
0,03 % 2 functions hidden • 144 ms total
0,02 % 4 functions hidden • 71 ms total
...
Рейтинг: 0 / 0
Быстродействие при отладке
    #40040355
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так что тут удивительного-то? Без подключения отладчика/профилировщика расклад будет точно такой же. Синхронный метод ExecuteReader тупо тратит время на ожидание долгой операции обращения к БД.

Ты лучше покажи результат профилирования обращений к БД. Может быть у тебя там в цикле миллион обращений к БД идет. А то на этом трейсе даже количества вызовов не видно.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Быстродействие при отладке
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]