|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
06.01.2013, 11:35 | #1 |
Форумчанин
Регистрация: 04.11.2012
Сообщений: 151
|
idHttp, парсинг, томрожение
Доброго времени суток, формучане. Прошу помощи.
В общем, имеем 2525 страниц с пользователями. На каждой странице по 20 пользователей. Требуется быстренько спарсить всех пользователей со всех страниц. Кусок ХТМЛ кода такой: (не хочу выкладывать сылку, дабы не было рекламы)) Код:
Вот код. Посмотрите пожалуйста: Код:
Буду благодарен за любую помощь. Последний раз редактировалось _ZixeL_; 06.01.2013 в 11:42. |
06.01.2013, 12:20 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Что сразу бросилось в глаза - утечки памяти - 2525 раз создается 3 стриглиста без освобождения памяти. Остальное даже смотреть не стал
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
06.01.2013, 12:36 | #3 |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
А ещё синхронизации нет (а зачем вообще тут поток, можно и без него прекрасно обойтись). В случае одного потока можно положиться на "авось пронесёт", а при 2-х и более это точно фатально будет.
|
06.01.2013, 13:04 | #4 | ||
Форумчанин
Регистрация: 04.11.2012
Сообщений: 151
|
Цитата:
Цитата:
Как я знаю, синхронизация нужна только между потоками. А у меня тут один поток. Или я ошибаюсь? Последний раз редактировалось _ZixeL_; 06.01.2013 в 13:10. |
||
06.01.2013, 13:15 | #5 | |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
Цитата:
ИМХО, лучше всего в потоке не иметь ничего общего с формой и компонентами до завершения работы. IdHTTP создать динамически, а добавление в ричедит и лэйбл синхронизировать. В этом случае можно параллельно запустить несколько потоков; на поведение формы это влиять не будет, надёжность резко возрастёт, скорость тоже может повысится (этот факт индивидуален для каждого отдельного случая) |
|
06.01.2013, 13:24 | #6 | |
Форумчанин
Регистрация: 04.11.2012
Сообщений: 151
|
Цитата:
Можно поподробней про синхронизацию? А то не очень понятно, как синхронизировать добавление в ричедит. Сделал как Вы посоветовали. Ничего общего с формой и компонентами. Создал динамически IdHTTP и лейбл. Убрал ричедит. Смотрю по лэйблу какая скорость парсинга страниц. И проблема всё та же. Со временем затормаживается. Код:
Код:
Последний раз редактировалось _ZixeL_; 06.01.2013 в 13:37. |
|
06.01.2013, 14:00 | #7 |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
page не освобождается.
label не надо создавать в потоке К тому же, создавать и освобождать надо вне цикла, в самом цикле только clear оставить Проверить может сервер шлёт за слишком частые запросы. Про synchronize можно почитать в сети |
06.01.2013, 14:35 | #8 | |
Форумчанин
Регистрация: 04.11.2012
Сообщений: 151
|
Цитата:
Код:
К сожалению, я не знаю как проверить что сервер шлёт. Включил http analyzer и увидел, что duration(s) увеличивается. Тоесть, как я понял, время загрузки страницы увеличивается. Где первый Гет запрос загрузился за 0,375s, где 200ый - за 1,702s Последний раз редактировалось _ZixeL_; 06.01.2013 в 14:41. |
|
07.01.2013, 15:55 | #9 |
Форумчанин
Регистрация: 04.11.2012
Сообщений: 151
|
Ребят, больше никто ничего не может посоветовать?
Выручайте, а то не знаю что делать) |
07.01.2013, 18:20 | #10 |
Участник клуба
Регистрация: 07.12.2011
Сообщений: 1,025
|
размножай потоки... одного мало... 10-30 в самый раз
Не стесняемся, плюсуем!
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Парсинг | Gudzik11 | Общие вопросы Delphi | 50 | 22.06.2012 10:18 |
парсинг | gunguru | PHP | 1 | 07.06.2012 11:49 |
Парсинг | DJ_LINZA | Работа с сетью в Delphi | 6 | 31.01.2011 10:15 |
Парсинг. | igor90 | Microsoft Office Excel | 1 | 03.11.2010 02:41 |