Что нового

Ненормальное ускорение выполнения скрипта

Radik

Новичок
Сообщения
71
Репутация
1
Есть простой скрипт, цикл, открываем нужный сайт, логинимся, mouseclick-ом открываем новые окна, логаут, все окна убиваем и по новой уже под другим логином.
Вначале все норм, но, по мере работы все начинает ускоряться, и Internet Explorer не успевает за выполнением команд.
Причем ставлю, например, sleep(10000), не ждет 10 сек. В чем проблема?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Предупреждение За нарушение общих правил (пункт В.8):
Так как эта конференция называется "Русское сообщество AutoIt", язык общения на ней - Русский. Названия фирм или программных продуктов, аббревиатуры и т.д. должны быть написаны так, как они пишутся в оригинале, например не следует писать УСБ вместо USB. На форуме крайне не рекомендуется намеренно искажать русский язык и использовать "сетевой жаргон" на подобии "Аффтар выпей йадау!".


С уважением, ваш Глобальный модератор.
 

Shinoby

Новичок
Сообщения
81
Репутация
2
Код:
_ieloadwait()
пробовал?
ну а так, без кода - сложно что-то сказать.

задержками ты не решишь все вопросы. если у тебя будет трабл со связью - то "ускорение" ты поймаешь еще на первых циклах.
 
Автор
R

Radik

Новичок
Сообщения
71
Репутация
1
все что касется IE (IELoadWait, IECreate и т.д.) отрабатывает норм, потом идут mouseclick-sleep, иногда еще send, вот выполнение этих команд ускоряется так, что IE не успевает.
 

СН3СН2ОН

Знающий
Сообщения
78
Репутация
12
Поддерживаю тему.
Недавно написал скрипт автоматического посещения сайта, все сделано на IE.au3. Просто ходит по нужным ссылкам. Ну и сделал логи (у меня все проги с логами). Обычно логи за сутки не больше 100кб.
Суть. Интернет закончился. Логи за сутки стали по 2-3 Гигабайта. Вот ускорение)
Вопрос: как боретесь?
Еще есть варианты?
http://autoit-script.ru/index.php?topic=8687.0
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Честно говоря, у меня всё с точностью до наоборот.
(заметил ещё года три назад, когда делал бота под браузерку и попытался вставить задержки)
Sleepы как-то дурно влияют на IE. При появлении в коде Sleepов, IE начинает очень долго открывать страницы.
Для примера вот нехитрый скрипт
Код:
#Include <Timers.au3>
#include <IE.au3>

$oIE = _IECreate("http://autoit-script.ru/")
$oIE1 = _IECreate()

$timer = _Timer_Init()

$oTags = _IETagNameGetCollection($oIE, "a")
$i = 0
For $oTag In $oTags
	If StringInStr($oTag.outerhtml, "php?topic") Then
		_IENavigate($oIE1, $oTag.href)
		$i+=1
	EndIf
Next

$timer1 = Floor(_Timer_Diff($timer)/1000)
ConsoleWrite($i&" ссылок без Sleep "&$timer1&" сек"&@CR)

$timer = _Timer_Init()

$i=0
For $oTag In $oTags
	If StringInStr($oTag.outerhtml, "php?topic") Then
		_IENavigate($oIE1, $oTag.href)
		Sleep(1000)
		$i+=1
	EndIf
Next

$timer2 = Floor(_Timer_Diff($timer)/1000)

ConsoleWrite($i&" ссылок с Sleep "&$timer2&" сек"&@CR)

У меня даёт результаты
Код:
30 ссылок без Sleep 80 сек
30 ссылок с Sleep 187 сек
извините за столь долгое время - касперский беспредельничает...

Хотя при задержке в секунду на каждую ссылку разница должна быть, сами понимаете, 30 секунд, а не 100.

А вот результат сего необъяснимого безобразия, в принципе, такой же - Internet Explorer не успевает за выполнением команд.
Но не потому что скрипт ускоряется, а потому что IE тормозит при использовании Sleep.
 

firex

AutoIT Гуру
Сообщения
943
Репутация
208
C2H5OH
Код:
32 ссылок с Sleep 35 сек
29 ссылок с Sleep 66 сек
У себя такого не заметил :smile:

Radik
У меня конечно нет предположений каким образом пауза может отражаться на скорости IE, но вполне вероятно, что вы наблюдаете не ускорение, а скажем переход на страницы у вас не происходит. Да десятки возможных проблем. Приложите код и мы его глянем.

И как аналог:
Код:
Func _Sleep( $ms )
    Local $timer = TimerInit()

    While TimerDiff( $timer ) < $ms
        WEnd
EndFunc
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
C2H5OH
Вот мои результаты:
Код:
31 ссылок без Sleep 59 сек
31 ссылок с Sleep 81 сек
>Exit code: 0    Time: 145
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Хм. Давайте сверими исходные данные.
У меня - ХР, IE8
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
У меня Windows 7 Ultimat; IE 11; AutoIt 12.0
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
C2H5OH [?]
сверим исходные данные
AutoIt 3.3.12.0

WinXP x86, IE8
29 ссылок без Sleep 73 сек
29 ссылок с Sleep 88 сек

Win7 x86, IE10
29 ссылок без Sleep 40 сек
29 ссылок с Sleep 63 сек

Win8.1 x86, IE11 (VMware Player)
28 ссылок без Sleep 302 сек
28 ссылок с Sleep 28 сек

На Win8.1 переход по страницам не осуществляется, поэтому и результаты такие странные. Может из-за виртуалки...
 
Автор
R

Radik

Новичок
Сообщения
71
Репутация
1
Блин, даже как-то неудобно, щас ржать будете, просто меня все устраивало:
Win2003
IE8
AutoIt 2.28
 
Верх