![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 04.11.2012
Сообщений: 151
|
![]()
Доброго времени суток, формучане. Прошу помощи.
В общем, имеем 2525 страниц с пользователями. На каждой странице по 20 пользователей. Требуется быстренько спарсить всех пользователей со всех страниц. Кусок ХТМЛ кода такой: (не хочу выкладывать сылку, дабы не было рекламы)) Код:
Вот код. Посмотрите пожалуйста: Код:
Буду благодарен за любую помощь. Последний раз редактировалось _ZixeL_; 06.01.2013 в 11:42. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Что сразу бросилось в глаза - утечки памяти - 2525 раз создается 3 стриглиста без освобождения памяти. Остальное даже смотреть не стал
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
![]()
А ещё синхронизации нет (а зачем вообще тут поток, можно и без него прекрасно обойтись). В случае одного потока можно положиться на "авось пронесёт", а при 2-х и более это точно фатально будет.
|
![]() |
![]() |
![]() |
#4 | ||
Форумчанин
Регистрация: 04.11.2012
Сообщений: 151
|
![]() Цитата:
Цитата:
Как я знаю, синхронизация нужна только между потоками. А у меня тут один поток. Или я ошибаюсь? Последний раз редактировалось _ZixeL_; 06.01.2013 в 13:10. |
||
![]() |
![]() |
![]() |
#5 | |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
![]() Цитата:
ИМХО, лучше всего в потоке не иметь ничего общего с формой и компонентами до завершения работы. IdHTTP создать динамически, а добавление в ричедит и лэйбл синхронизировать. В этом случае можно параллельно запустить несколько потоков; на поведение формы это влиять не будет, надёжность резко возрастёт, скорость тоже может повысится (этот факт индивидуален для каждого отдельного случая) |
|
![]() |
![]() |
![]() |
#6 | |
Форумчанин
Регистрация: 04.11.2012
Сообщений: 151
|
![]() Цитата:
Можно поподробней про синхронизацию? А то не очень понятно, как синхронизировать добавление в ричедит. Сделал как Вы посоветовали. Ничего общего с формой и компонентами. Создал динамически IdHTTP и лейбл. Убрал ричедит. Смотрю по лэйблу какая скорость парсинга страниц. И проблема всё та же. Со временем затормаживается. Код:
Код:
Последний раз редактировалось _ZixeL_; 06.01.2013 в 13:37. |
|
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
![]()
page не освобождается.
label не надо создавать в потоке К тому же, создавать и освобождать надо вне цикла, в самом цикле только clear оставить Проверить может сервер шлёт за слишком частые запросы. Про synchronize можно почитать в сети |
![]() |
![]() |
![]() |
#8 | |
Форумчанин
Регистрация: 04.11.2012
Сообщений: 151
|
![]() Цитата:
Код:
К сожалению, я не знаю как проверить что сервер шлёт. Включил http analyzer и увидел, что duration(s) увеличивается. Тоесть, как я понял, время загрузки страницы увеличивается. Где первый Гет запрос загрузился за 0,375s, где 200ый - за 1,702s Последний раз редактировалось _ZixeL_; 06.01.2013 в 14:41. |
|
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 04.11.2012
Сообщений: 151
|
![]()
Ребят, больше никто ничего не может посоветовать?
Выручайте, а то не знаю что делать) |
![]() |
![]() |
![]() |
#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 |