|
0 / 0 / 0
Регистрация: 13.11.2012
Сообщений: 61
|
|
Долгое обращение к методу05.08.2017, 03:10. Показов 1748. Ответов 30
Доброго времени суток.
Имеем два потока: основной и дочерний. В основном потоке происходит некоторая обработка поступаемых данных с помощью метода, дочерний поток получает эти данные и отправляет обрабатываться в основной поток. Во время отправки данных происходит обращение к методу, который производит обработку. Когда происходит первая, самая первая отправка данных и обращение к этому методу, то возникает задержка от 30 до 60 секунд, при чем если проследить по брейк поинтам, то действительно - программа непонятно чем занимается и не сразу обращается к методу. Все последующие обращения к методу происходят без задержек. Метод, к которому идет обращение состоит из 30к строк. Подскажите, пожалуйста, в чем может быть загвоздка. Заранее спасибо.
0
|
|
| 05.08.2017, 03:10 | |
|
Ответы с готовыми решениями:
30
Обращение к методу в другом потоке Обращение к методу из другой формы
|
|
360 / 287 / 76
Регистрация: 21.06.2016
Сообщений: 1,115
|
|
| 05.08.2017, 19:57 | |
|
Т.е. метод вместо обработки чисел занимается обработкой точек??? Лезет в контролл с графиками и ищет точки прорисованные? Или все-таки делает математические расчеты. А статистика - это по сути работа над множествами. Или у Вас иначе? Я к чему.. если работа над массивами и числами - то Вам прямая дорога в СУБД, а не в работу у клиента.
0
|
|
|
0 / 0 / 0
Регистрация: 13.11.2012
Сообщений: 61
|
|
| 05.08.2017, 20:02 [ТС] | |
|
hoolygan, конечно математические расчеты! В контрол отдаются только координаты, но и отдаются только по завершению всех вычислений. В оправдание этого метода на 30к строк могу сказать, что по брейк поинтам он исполняется за несколько мс.
А как небольшой костыль, можно использовать таски и скидывать их друг за другом, а когда процесс отвиснет, то входящие данные должны будут обработаться, а время простоя сильно сократится, наверное.
0
|
|
|
Администратор
|
|
| 05.08.2017, 20:03 | |
|
ProjectName, c 30 тысячами строк кода в одном метода источником тормозов может быть JIT компилятор. Для проверки попробуй выполнить компиляции с помощью ngen и сравни производительность. Если тормоза при первом запуске пропадут, то значит точно JIT был виноват. Можно тогда всегда пользоваться ngen или заняться рефакторингом кода. Последнее в любом случае не помешает т.к. 30 тысяч строк в одном методе это перебор.
2
|
|
|
0 / 0 / 0
Регистрация: 13.11.2012
Сообщений: 61
|
|
| 05.08.2017, 21:04 [ТС] | |
|
OwenGlendower, вау, компиляция с помощью ngen помогла, как временное решение подойдет, но рефакторингом все таки надо заняться.
Спасибо вам. Добавлено через 32 минуты Хотя нет, после компиляции и запуске на другом пк проблема возвращается
0
|
|
|
Администратор
|
||
| 05.08.2017, 21:27 | ||
|
1
|
||
|
0 / 0 / 0
Регистрация: 13.11.2012
Сообщений: 61
|
|
| 05.08.2017, 23:02 [ТС] | |
|
OwenGlendower, а вот подскажите - как производить запуск ngen перед исполнением exe на клиентском компьютере? при условии, что на клиентском компьютере нет предустановленной среды разработки, но имеется framework.
В дополнение скажу что почитал что такое jit компилятор и что такое ngen, и осознал, что в случае с jit компиляцией пошел не верным путем, пихая все в один метод. Вывод: нужно провести рефакторинг этого кода, НО возникает вопрос - как можно отрефакторить метод, чтобы его компиляция с помощью jit не занимала большого количества времени? В свое оправдание скажу, что мал и несмышлен, ибо учусь, а проектов подобного этого раньше не было =( Помогите пожалуйста
0
|
|
|
Администратор
|
|||
| 05.08.2017, 23:13 | |||
|
1
|
|||
|
0 / 0 / 0
Регистрация: 13.11.2012
Сообщений: 61
|
|
| 05.08.2017, 23:19 [ТС] | |
|
OwenGlendower, и хотел бы сделать одно уточнение у вас - jit компилирует метод во время его первого вызова? Если так, то не повторится ли эта же задержка, если я вынесу код в отдельные методы и внутри этого метода буду обращаться к вынесенным методам?
Добавлено через 1 минуту А что касаемо железа, то на всех клиентских компьютерах используется довольно хорошее железо
0
|
|
|
Администратор
|
||||
| 05.08.2017, 23:26 | ||||
|
1
|
||||
|
0 / 0 / 0
Регистрация: 13.11.2012
Сообщений: 61
|
|
| 05.08.2017, 23:36 [ТС] | |
|
OwenGlendower, а с помощью какого ПО можно выполнить данную процедуру замера затрат Jit?
Добавлено через 4 минуты OwenGlendower, и спасибо вам огромной с разрешением проблемы))
0
|
|
|
Администратор
|
||
| 05.08.2017, 23:57 | ||
|
Также можно использовать xperf из состава Windows SDK. NGen: Measuring Warm Startup Performance with Xperf
1
|
||
| 05.08.2017, 23:57 | |
|
Обращение к методу.
Обращение методу в объекте**
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2.
Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
|
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 15.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её.
Всё это стресс конечно. Почему?. . .
|
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот.
Ларри Уингет
|
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
|
|
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров
В текущей версии модели успешно реализован ключевой механизм. . .
|
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям
Реализованные компоненты:
Механизм закисления почвы через протонную помпу
Конкуренция между типами микориз
pH как триггер сукцессии
C/ P соотношение. . .
|
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
|
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
|