|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
11.09.2018, 14:20 | #11 |
Форумчанин
Регистрация: 06.10.2013
Сообщений: 216
|
вероятно да, я и сам понимаю что обращаться из потока к форме не лучшая идея, сейчас немного понапрягал программу, она доходила до 1,5GB ОЗУ и до 50% процессора, и вот что было по завершению. я не знаю как в нормальный поток передать аргументы, может и правда лучше потоком забирать IP из списка?
|
11.09.2018, 14:31 | #12 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Это без разницы. Не хотите Synchronize, поставьте мьютекс.
Код:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
11.09.2018, 14:34 | #13 |
Форумчанин
Регистрация: 06.10.2013
Сообщений: 216
|
без этого обработчика вылетают сообщения о превышении времени на подключение (оно установлено на 500 миллисекунд)
я убрал проверку очередного адреса, нашел утечки в функции разбивающей ip диапазоны на адреса, дал ей циклом 100 или около того разных диапазонов и она их все в 1 переменную должны класть (stringlist) и когда программа занимает 1.8Gb памяти, вылетает out of memory, дополнительные стринг листы я очищаю (их содержимое тоже) и остается лишь 1 лист в котором хранятся нужные ip, делаю это вот так Код:
а вот и out of memory!!!! путем экспериментов, узнал следующее Код:
еще заметил что максимально возможное количество ip адресов - 4294967296, ровно столько же как и вместимость longword неужели не выйдет работать со всеми диапазонами сразу? Я нашел максимальную длину массива array of string[15], она равна 68427774, при этом если взять массив array of string[16], то при таком же его размере будет снова out of memory!!! но странно между 0.0.0.0 и 0.255.255.255 лежит 16777216 адресов, а значит в этом диапазоне он должен работать Последний раз редактировалось PTyTb32; 11.09.2018 в 17:59. |
11.09.2018, 17:55 | #14 |
Участник клуба
Регистрация: 07.12.2011
Сообщений: 1,025
|
в свежих delphi можно более высокоуровнево
Код:
Не стесняемся, плюсуем!
|
11.09.2018, 18:14 | #15 |
Форумчанин
Регистрация: 06.10.2013
Сообщений: 216
|
спасибо, а потом это все очищать от утечек?
|
11.09.2018, 19:07 | #16 |
Участник клуба
Регистрация: 07.12.2011
Сообщений: 1,025
|
не знаешь, не умничай...
убить надо HostList и ThreadPool но это где нибудь в OnClose... от же TTask - самоубьется по завершению. да и зачем гиговый HostList когда все хосты последовательные ip и можно на лету вычислить ip - прекрасно помещается в integer...
Не стесняемся, плюсуем!
Последний раз редактировалось Slym; 11.09.2018 в 19:15. |
11.09.2018, 19:15 | #17 |
Форумчанин
Регистрация: 06.10.2013
Сообщений: 216
|
|
11.09.2018, 19:41 | #18 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Кстати, там еще не завезли умные указатели что ли?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
11.09.2018, 19:52 | #19 |
Форумчанин
Регистрация: 06.10.2013
Сообщений: 216
|
|
11.09.2018, 19:55 | #20 |
Форумчанин
Регистрация: 06.10.2013
Сообщений: 216
|
че откопал!!!!
хотя уже делаю проверку на количество элементов в массиве.. жесть какая, сейчас попробую на лету их цеплять, и не записывать пока они не прошли проверку |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Потоки. Закрываются все потоки при ошибке в одном. | Son | Общие вопросы Delphi | 11 | 01.11.2013 09:32 |
потоки | Cpluser | C# (си шарп) | 1 | 28.10.2012 17:00 |
Потоки | _Mixer_ | Общие вопросы по Java, Java SE, Kotlin | 4 | 16.10.2011 19:25 |
Потоки С++ | Aleksin | Помощь студентам | 1 | 07.11.2010 18:15 |
потоки | tanek | Помощь студентам | 6 | 15.03.2010 21:42 |