Во-первых, почему так медленно работает эмулятор? Страницы в браузере обычном открываются намного быстрее.
Во-вторых, (как следствие из первого) как можно реализовать многопоточность эмулятора? Потому что если нужно сделать много действий, то в одном потоке до скончания века можно будет регистрировать аккаунты на гугле (к примеру).
На данный момент вижу несколько причин препятствующих многопоточности:
1. биндинг эмулятора на конкрентый порт (рашаемо наверное как-то)
2. наследование настроек от ИЕ (куки там, прокси и пр.). решаемо наверное, но гораздо сложнее.
3. что-то еще наверняка, чего я не учел
Что думают разработчики?
Вообще по мне лично - это довольно актуально и не позволяет использовать эмулятор в промышленных масштабах.
Быстродействие и многопоточность
По поводу медленной загрузки страниц - тоже замечал такое. Но это, видимо, проблема с IE-компонентом в C#.
Запустить XHE на заданном порту можно, надо юзать ключ /port:xxxx при запуске.
Основная проблема многопоточности - общее пространство настроек у всех запущенных копий. Настройки (отображение картинок, настройки прокси) хранятся в реестре, в одном месте. Изменение их, например, изменение прокси, естественно, ведет за собой изменение прокси во всех клиентах. Куки тоже на всех одни - штатные IEшные.
Вот если бы у каждой запущенной копии XHE было свое личное пространство настроек/кук - вот тогда было бы счастье. А пока нет. А сделать это реально - у конкурентов ZennoPoster успешно работает многопоточно. Написан он на C#, как и, подозреваю, XHE.
Товарищи разработчики, кстати, скажите, вы так видите внедрение возможностей многопоточности как я описал, или как-то иначе ?
Запустить XHE на заданном порту можно, надо юзать ключ /port:xxxx при запуске.
Основная проблема многопоточности - общее пространство настроек у всех запущенных копий. Настройки (отображение картинок, настройки прокси) хранятся в реестре, в одном месте. Изменение их, например, изменение прокси, естественно, ведет за собой изменение прокси во всех клиентах. Куки тоже на всех одни - штатные IEшные.
Вот если бы у каждой запущенной копии XHE было свое личное пространство настроек/кук - вот тогда было бы счастье. А пока нет. А сделать это реально - у конкурентов ZennoPoster успешно работает многопоточно. Написан он на C#, как и, подозреваю, XHE.
Товарищи разработчики, кстати, скажите, вы так видите внедрение возможностей многопоточности как я описал, или как-то иначе ?
А если надо в 500 потоков пустить?JpS писал(а):Я вижу простейший способ разделения настроек - это Run As User. Причем ничего делать особенно не надо при этом, просто сам эмулятор запустить под разными юзверями. Тогда настройки прокси, кеша, кук и пр. будут отдельные.
Правда проблему производительности это только ухудшит.
предложенный мной способ годится как временная "затычка". скорее всего на 500 юзеров не заработает. просто памяти не хватит (я думаю), хотя можно попробовать.ergelaser писал(а):А если надо в 500 потоков пустить?
но по правильному конечно же надо делать это внутри программы, а именно при создании объекта эксплорера создавать отдельные экземпляры контекста окружения.
P.S. сам эмулятор у меня в памяти "весит" 20М без загруженных каких-либо скриптов. если запустить 500 копий, то это получается тупо 10Гигов памяти, так что думаю вообще задача не факт что решаемая на данном эмуляторе.
Ну, про пицот я загнул, да. Ну потоков 50-100 хотя-бы.JpS писал(а):предложенный мной способ годится как временная "затычка". скорее всего на 500 юзеров не заработает. просто памяти не хватит (я думаю), хотя можно попробовать.ergelaser писал(а):А если надо в 500 потоков пустить?
но по правильному конечно же надо делать это внутри программы, а именно при создании объекта эксплорера создавать отдельные экземпляры контекста окружения.
P.S. сам эмулятор у меня в памяти "весит" 20М без загруженных каких-либо скриптов. если запустить 500 копий, то это получается тупо 10Гигов памяти, так что думаю вообще задача не факт что решаемая на данном эмуляторе.