Страница 1 из 1

Быстродействие и многопоточность

Добавлено: 10 май 2009, 16:57
JpS
Во-первых, почему так медленно работает эмулятор? Страницы в браузере обычном открываются намного быстрее.

Во-вторых, (как следствие из первого) как можно реализовать многопоточность эмулятора? Потому что если нужно сделать много действий, то в одном потоке до скончания века можно будет регистрировать аккаунты на гугле (к примеру).
На данный момент вижу несколько причин препятствующих многопоточности:
1. биндинг эмулятора на конкрентый порт (рашаемо наверное как-то)
2. наследование настроек от ИЕ (куки там, прокси и пр.). решаемо наверное, но гораздо сложнее.
3. что-то еще наверняка, чего я не учел

Что думают разработчики?
Вообще по мне лично - это довольно актуально и не позволяет использовать эмулятор в промышленных масштабах.

Добавлено: 10 май 2009, 23:16
medar2
По поводу медленной загрузки страниц - тоже замечал такое. Но это, видимо, проблема с IE-компонентом в C#.

Запустить XHE на заданном порту можно, надо юзать ключ /port:xxxx при запуске.

Основная проблема многопоточности - общее пространство настроек у всех запущенных копий. Настройки (отображение картинок, настройки прокси) хранятся в реестре, в одном месте. Изменение их, например, изменение прокси, естественно, ведет за собой изменение прокси во всех клиентах. Куки тоже на всех одни - штатные IEшные.

Вот если бы у каждой запущенной копии XHE было свое личное пространство настроек/кук - вот тогда было бы счастье. А пока нет. А сделать это реально - у конкурентов ZennoPoster успешно работает многопоточно. Написан он на C#, как и, подозреваю, XHE.

Товарищи разработчики, кстати, скажите, вы так видите внедрение возможностей многопоточности как я описал, или как-то иначе ?

Добавлено: 15 май 2009, 01:34
JpS
Я вижу простейший способ разделения настроек - это Run As User. Причем ничего делать особенно не надо при этом, просто сам эмулятор запустить под разными юзверями. Тогда настройки прокси, кеша, кук и пр. будут отдельные.
Правда проблему производительности это только ухудшит.

Добавлено: 15 май 2009, 15:09
ergelaser
JpS писал(а):Я вижу простейший способ разделения настроек - это Run As User. Причем ничего делать особенно не надо при этом, просто сам эмулятор запустить под разными юзверями. Тогда настройки прокси, кеша, кук и пр. будут отдельные.
Правда проблему производительности это только ухудшит.
А если надо в 500 потоков пустить?

Добавлено: 17 май 2009, 23:15
JpS
ergelaser писал(а):А если надо в 500 потоков пустить?
предложенный мной способ годится как временная "затычка". скорее всего на 500 юзеров не заработает. просто памяти не хватит (я думаю), хотя можно попробовать.

но по правильному конечно же надо делать это внутри программы, а именно при создании объекта эксплорера создавать отдельные экземпляры контекста окружения.

P.S. сам эмулятор у меня в памяти "весит" 20М без загруженных каких-либо скриптов. если запустить 500 копий, то это получается тупо 10Гигов памяти, так что думаю вообще задача не факт что решаемая на данном эмуляторе.

Добавлено: 19 май 2009, 14:17
ergelaser
JpS писал(а):
ergelaser писал(а):А если надо в 500 потоков пустить?
предложенный мной способ годится как временная "затычка". скорее всего на 500 юзеров не заработает. просто памяти не хватит (я думаю), хотя можно попробовать.

но по правильному конечно же надо делать это внутри программы, а именно при создании объекта эксплорера создавать отдельные экземпляры контекста окружения.

P.S. сам эмулятор у меня в памяти "весит" 20М без загруженных каких-либо скриптов. если запустить 500 копий, то это получается тупо 10Гигов памяти, так что думаю вообще задача не факт что решаемая на данном эмуляторе.
Ну, про пицот я загнул, да. Ну потоков 50-100 хотя-бы.

Добавлено: 12 дек 2009, 00:07
bigfozzy
сделано