| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > VB6 > Повышение производительности программы |
| Автор: ProgramerForever 3.7.2009, 21:55 |
| Доброго времени суток, уважаемые форумчане. Я написал приложение для просмотра Web страничек. Каждый экземпляр приложения содержит WebBrowser и немного другой "обвязки". Мне надо одновременно запускать их 50-100 штук. Уже при 40 комп виснет (хотя комп у меня не хилый). Не подскажите пути уменьшения нагрузки на комп. Вот что придумал я: 1.) Отключение графики в IE (уже сделал, немного помогло) 2.) Сделать компонент WebBrowser (или всю форму) невидимым, чтобы не происходила отрисовка (не пробовал, но, насколько я помню, возникают проблемы с загрузкой) 3.) Убить фреймы в страничках (99% страничек состоят из 2х фреймов. Первый из них важен и содержит мало кода и картинок. Второй же наоборот- не важен, но несёт основную нагрузку.) Нужно занулить ("about:blank") или совсем убрать второй фрейм ( frames(1) ) (не знаю, как сделать) |
| Автор: ProgramerForever 4.7.2009, 14:06 | ||
А какая разница, где грузить компонент: в отдельном окне, или в одном-единственном (мне вариант с 50 приложениями более предпочтителен, т.к. эта программа простматривает огромное количество сайтов, и порой, благодаря эксплойтам, подвисает. Так пусть она одна зависнет, я её отключил, и забыл.) |
| Автор: neic 5.7.2009, 01:51 | ||||||
Т.е. ты хочешь запускать 50 отдельных программ О_О?
Больно на DDOS атаку похоже А теперь:
В том, что для каждой вкладки ты сможешь смотреть на какой комопнент идёт и отображать его в том случае если он открыт. Например:
А при нажатии, смотрим, если файл есть, то открываем его, после отображения удаляем. Но я говорю, это нужно проверить ещё. |
| Автор: ProgramerForever 5.7.2009, 03:46 | ||||||
Да, нужно запускать 50 отдельных программ.
Нет, это не DDoS, это программа для набора кредитов в т.н. автосёрфингах. При просмотре таких сайтов в обычных браузерах нижний фрейм (рекламируемый сайт) нередко разрушает верхний, что приводит к остановке автосёрфинга. А эта программа периодически обновляет страничку, дабы избежать таких ситуаций. Кстати, занулить второй фрейм мне удалось. Так:
|
| Автор: neic 5.7.2009, 10:11 |
| Понятно. |
| Автор: SOLAMON 21.7.2009, 17:08 |
| Есть конечно геморойный фариант в наглую через SOCKET (компонент MSWINSCK.OCX) . Открываем сокет, делаем GET Затем что нужно обновляем. IE не используем . До 500 страниц за раз думаю - легко обработает. Токо кода прилично писать. |
| Автор: neic 21.7.2009, 18:10 |
| SOLAMON, человеку нужно показывать странички. GET вернёт исходный код страницы (на сколько я знаю), а следовательно чтобы показать этот код (назовём это действие так) нужно воспользоваться браузером, либо писать свой обработчик этого кода (писать свой браузер=изобретать велосипед). Можно конечно юзать не IE, а другие движки, например от FireFox или Oper'a (в какой-то теме это уже было сказано). Как с ними работать есть в нете. |
| Автор: DeMONiZ 22.7.2009, 09:39 |
| ProgramerForever я смотрю ты с фреймами работаешь может подскажешь как получить исходный код второго фрейма? |
| Автор: ProgramerForever 7.9.2009, 05:00 | ||||||
Вот кусок рабочего кода:
Добавлено через 1 минуту и 26 секунд Только если на страничке нет фреймов, то программа вылетет с ошибкой. Нужно обработчик отключать строчкой
|
| Автор: ProgramerForever 27.3.2010, 00:23 |
Показывать, кстати, необязательно. Буду рыть в направлении MSWINSCK.OCX |