|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
01.08.2012, 18:54 | #1 |
Участник клуба
Регистрация: 03.12.2009
Сообщений: 1,013
|
idhttp + memo - вопрос быстродействия
Добрый вечер!
Такая ситуация - с помощью метода get компонента idhttp получаю код страницы и заношу его в memo. Выходит около 4 тысяч строк. Обработка самого кода в memo не занимает у меня много времени. Всего заношу около 202 страниц в memo. Хочется как-либо сократить время затрачиваемое программой на получение кода и в последующем внесением его в компонент memo - основная задержка по работе программы заключается именно в этом. Это возможно? Я думаю что есть альтернативные варианты для реализации моей задачи, но пока что мой багаж знаний еще маловат, если такие существуют и они позволят скоратить время обработки, пожалуйста просветите Благодарю! Последний раз редактировалось Базиля; 01.08.2012 в 21:27. |
01.08.2012, 19:27 | #2 |
Форумчанин
Регистрация: 25.04.2010
Сообщений: 881
|
ну я не уверен. но может стоит покопать в сторону winsock? не думаю что будет намного быстрее, не уверен что вопше будет быстрее) но попробовать можнО))
|
01.08.2012, 19:31 | #3 |
Участник клуба
Регистрация: 03.12.2009
Сообщений: 1,013
|
Pein95
Как раз прочитал, буквально пару минут назад, статью на эту тему Опробую чуть позже этот вариант. Может действительно выходит так что в данном случае за секундами не угонишься? |
01.08.2012, 20:08 | #4 |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
Откажись от мемо. Хранить можно в строке или TStringList, если методы оттуда какие-нить нужны. Если мемо всё=таки нужен, то его можно привязать к TStringList в самом конце работы.
|
01.08.2012, 20:42 | #5 |
Участник клуба
Регистрация: 03.12.2009
Сообщений: 1,013
|
eoln
Извиняюсь, забыл уточнить. Использовал также список строк, результаты по времени оказались одинаковыми. Насчет строк, их ведь никак тут не применить. Ведь метод get возвращает сразу целиковый код страницы объемом около 4тысяч строк. P.S. Маленькое НО, пользуюсь компонентом memo из пака TMS. Особо сущей роли конечно не играет, но все-таки. Последний раз редактировалось Базиля; 01.08.2012 в 20:48. |
01.08.2012, 21:06 | #6 |
Далеко не
Участник клуба
Регистрация: 11.08.2011
Сообщений: 1,512
|
setwindowtext(или setwindowcaption или sendmessage) так вроде можно попробовать, не уверен что быстрей будет если вообще будет
|
01.08.2012, 21:09 | #7 |
php / delphi
Форумчанин
Регистрация: 10.06.2007
Сообщений: 175
|
Несколько перечитал первый пост, но не понял что собственно просят ускорить ))
Будем рассуждать логически: как я понимаю, процесс состоит из 3 шагов: 1) получение // ускорение интернета 2) обработка // что за обработка какого-то кода я так и не понял )) 3) вывод в memo // вот тут могу помочь Ускорение memo: И в простейшем случае отказываться от memo совсем необязательно. Просто на время всех операций с memo остановить в нем отрисовку/обработку всех событий: Код:
Примеры использования можно тут найти: http://docwiki.embarcadero.com/CodeE...n_%28Delphi%29
G.Azamat { Web Development / Computer simulation }
Начинающий программист думает, что в килобайте 1000 байтов, а законченный уверен, что в километре 1024 метра. |
01.08.2012, 21:23 | #8 | ||||
Участник клуба
Регистрация: 03.12.2009
Сообщений: 1,013
|
InternetStranger
Цитата:
Как пример, просто на загрузку кода 100 страниц, одну за другой в мемо, занимает около 18 секунд. У меня стоит задача получать код 600 страниц - занимает достаточное время Отсюда у меня возникает вопрос, есть ли возможность ускорить процесс? Цитата:
Это я и имел ввиду. Цитата:
Но все равно опробовал этот момент - ничего не изменилось Кольша Цитата:
Я так и не понял. |
||||
01.08.2012, 21:37 | #9 |
php / delphi
Форумчанин
Регистрация: 10.06.2007
Сообщений: 175
|
Код:
Значит дело в скорости загрузки. Тут однозначно ускоритель интернета нужен. Получение за один запрос происходит? (Если несколько, то выручит объединение запросов). Если запрос один, и длится так долго, то тут gzip-сжатие в несколько раз поможет уменьшить объем получаемого трафика. Только вот не уверен какая библиотека может с ним работать. Навскидку стоит попробовать Synapse, CURL... ----------- UPD: Код:
Вот например с использованием GetTickCount. Кстати "600 строк" это сколько в мегабайтах ? PS: Тут все пытаются помочь ускорить третий шаг, когда проблема скорее всего в первом.
G.Azamat { Web Development / Computer simulation }
Начинающий программист думает, что в килобайте 1000 байтов, а законченный уверен, что в километре 1024 метра. Последний раз редактировалось InternetStranger; 01.08.2012 в 21:43. Причина: добавлено сообщение |
01.08.2012, 21:43 | #10 | ||||
Участник клуба
Регистрация: 03.12.2009
Сообщений: 1,013
|
Цитата:
Я думал что это относится только к визуальному оформлению Цитата:
Цитата:
Вот как у меня обустроено: Код:
Цитата:
|
||||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
вопрос о работе с IdHTTP | knopkodaf | Работа с сетью в Delphi | 0 | 26.05.2012 19:02 |
Вывод информации memo с компонентом (idhttp) | Arsenx777 | Работа с сетью в Delphi | 4 | 17.03.2011 13:19 |
Вопрос быстродействия | _Денис | C++ Builder | 1 | 14.11.2009 17:00 |
[Вопрос] IdHttp в несколько потоков | TilerDerton | Работа с сетью в Delphi | 3 | 22.09.2009 22:14 |
Вопрос по IdHTTP клиент | DHK | Работа с сетью в Delphi | 4 | 12.01.2009 22:05 |