|
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
|
||||||
Исключения безбожно отнимают ресурсы процессора?03.07.2012, 16:37. Показов 2084. Ответов 14
Метки нет (Все метки)
Вот такой код (тело потока Thread), отнимает 60-70% ресурсов процесса (Intel Core 2 Duo, 2,53)
подозреваю - исключения сокета, работа в потоке. Где правда?
0
|
||||||
| 03.07.2012, 16:37 | |
|
Ответы с готовыми решениями:
14
Как организовать задержку в 5 мс, которая не занимает ресурсы процессора? Oracle 11g поедает все ресурсы процессора странным образом |
|
123 / 121 / 6
Регистрация: 21.12.2011
Сообщений: 348
|
|
| 03.07.2012, 16:59 | |
|
pincet, заноси в блоки try {} catch() только те операции, которые могут кинуть exception, а не все подряд как у тебя.
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|
| 03.07.2012, 18:23 | |
|
Создание исключения, конечно, процедура не из дешевых, но не настолько чтобы забивать процессор.
У вас там кроме исключений всякой вуду-магии полно, которая тормозить может.
0
|
|
|
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
|
||
| 03.07.2012, 18:32 [ТС] | ||
|
0
|
||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||||||
| 03.07.2012, 18:37 | ||||||
|
pincet, проведите простой эксперимент: создайте новое консольное приложение и в главном методе пропишите примерно такой код:
Можно добавить несколько вложенных методов - время создания исключения пропорционально размеру стека вызова.
0
|
||||||
|
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
|
|
| 03.07.2012, 18:43 [ТС] | |
|
печаль в том, что данные из сокета приходят нечасто. Соответсвтенно и Parse() также. А проц нагружается сразу после Thread.Start()
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|
| 03.07.2012, 18:47 | |
|
0
|
|
|
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
|
||
| 03.07.2012, 18:55 [ТС] | ||
|
не совсем. сокет неблокирующий. Исключение 10035 кидает постоянно. На это грешу. Или ошибочно?
Добавлено через 5 минут сейчас код собрал в C#Develop 3.2. Ранее- VS 2005
0
|
||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|
| 03.07.2012, 19:00 | |
|
А, ну так исключение все-таки постоянно бросается.
Попробуйте убрать весь код из обработчика исключения и посмотрите - упадет ли нагрузка.
0
|
|
|
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
|
|||||||
| 03.07.2012, 19:21 [ТС] | |||||||
|
убрать из обработчика чтение из неблокирующего сокета - никак, винда заорет на необработанное исключение. Придется, видно, использовать асинхронные сокеты. Использовать блокирующий - тоже не айс вроде, теряем соединение. Сейчас оправляю т.н. "Heartbeat Request" время от времени. Девайс отвечает - соединение не рвется
Добавлено через 2 минуты Добавлено через 6 минут короче, печаль. 3 экземпляра кода,
0
|
|||||||
|
123 / 121 / 6
Регистрация: 21.12.2011
Сообщений: 348
|
|
| 03.07.2012, 19:25 | |
|
pincet, валится на строках soc.Send() ?
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||
| 03.07.2012, 23:18 | ||
|
Попробуйте заменить ловлю исключения проверкой на наличие соединения.
0
|
||
|
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
|
|
| 04.07.2012, 09:37 [ТС] | |
|
так проблема в том, что исключение возникает не только при отсутствии соединения, но и (т.к. сокет неблокирующий) при отсутствии данных в канале (исключение 10035)
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|||||||
| 04.07.2012, 10:44 | |||||||
|
У класса Socket есть свойство Available, которое возвращает количество готовых к считыванию данных. Сделайте перед считыванием проверку: если значение равно 0, то считывать не надо, а то словите исключение. Как-то так:
1
|
|||||||
|
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
|
||||||
| 04.07.2012, 12:51 [ТС] | ||||||
|
Ларчик просто открывался?
Добавил в тело потока ожидание
0
|
||||||
| 04.07.2012, 12:51 | |
|
Помогаю со студенческими работами здесь
15
две кнопки - клики по которым прибавляют или отнимают Тормозит безбожно интернет
безбожно тупит 620 д-линк Вирус. тормозит комп безбожно! Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2.
Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники".
В. . .
|
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии.
. . .
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3.
Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
|