Yoko
http://forum.yoko.com.ua/

по поводу памяти которую жрёт инжа со временем
http://forum.yoko.com.ua/viewtopic.php?f=1&t=8098
Page 1 of 1

Author:  meidan [ 2006-06-29 03:14:23 ]
Post subject:  по поводу памяти которую жрёт инжа со временем

поиск результатов не дал.
скрипт кидать не буду - т.к. он всеравно взят с форума урезан и немного переделан под шард с добавлением использования EasyUO (изя ходит - командует инже копать и кидать) инжект только выполнет копание вокруг себя и выкидывание в сундук.
мининг или ламбер не важно.
через час работы уже берёт 100 метров кеша винды
к утру все 300-500 метров. (клиент 3.0.0с с LowCPU - кстати очень помогло)
НЕюзает поиски тайлов - просто обкапывает вокруг себя.
ходит домой пешком изей - кидает в сундук инжой и все.
но памяти жрёт ДОФИГА.
люди есть какое-то решение проблемы? или как хоть это объяснется?
а то совсем грустно.
или может есть какая-то комманда - при которой он освобождает кэш?

вот модули инжы:

Code:
sub mine()
UO.DeleteJournal()
var x, y, i, tmp, inside, goto_x, st, first
st=0
first=UO.GetX()
start:
inside=0
y=-3
for y=-1 to 1
x=-3
for x=-1 to 1
try:
if UO.Hidden()==0 then
UO.Exec ("useskill Hiding")
i=0
while UO.Hidden()<> 1 and i<10
i=i+1
wait (500)
wend
endif
UO.Exec ("waittargettile "+" 1340 "+STR(UO.GEtX()+x)+" "+STR(UO.GetY()+y)+" 0")
UO.exec ("usetype 0x0F39")
#UO.Print (""+STR(x))
#UO.Print (""+STR(y))
i=0
while i< 100
if UO.InJournal("Вы не смогли") or UO.InJournal("You loosen") then
 wait (1000)
 i=200
 UO.DeleteJournal()
 goto try
endif
if UO.InJournal("You put") then
 i=200
 UO.DeleteJournal()
 goto try
endif
if UO.InJournal("You must wait to perform another action") then
 wait (1000)
 i=200
 UO.DeleteJournal()
 goto try
endif
if UO.InJournal("There is nothing here to mine") or UO.InJournal("Try mining") then
wait (1000)
 i=200
 UO.DeleteJournal()
endif
if UO.InJournal("You have no line of sight to that location") then
 wait (1000)
 i=200
 UO.DeleteJournal()
endif
wait (1000)
i=i+1
wend
next
next

uo.SetEasyUO(3,"1")

goto start
end sub

и второй на выкидывание.

sub drop() ####### DROP ######################

UO.Exec ("setreceivingcontainer 0x400053D3")

while UO.Count ("0x1BE9") > 0
uo.exec("findtype 0x1BE9")
UO.Exec ("grab 500 finditem")
wait (700)
wend

while UO.Count ("0x1BF5") > 0
uo.exec("findtype 0x1BF5")
UO.Exec ("grab 500 finditem")
wait (700)
wend

while UO.Count ("0x0EED") > 0
uo.exec("findtype 0x0EED")
UO.Exec ("grab 500 finditem")
wait (700)
wend

while UO.Count ("0x1BEF") > 0
uo.exec("findtype 0x1BEF")
UO.Exec ("grab 500 finditem")
wait (700)
wend

while UO.Count ("0x0f8c") > 0
uo.exec("findtype 0x0f8c")
UO.Exec ("grab 500 finditem")
wait (700)
wend

while UO.Count ("0x0F29") > 0
uo.exec("findtype 0x0F29")
UO.Exec ("grab 500 finditem")
wait (700)
wend

UO.Exec ("unsetreceivingcontainer")
uo.SetEasyUO(3,"1")

end sub ######## DROP ######################

мож его урезать надо? или "причесать"?
вас нагружать не хочу. поэтому прошу лишь подсказки/совета

ОГРОМНОЕ СПАСИБО ЗАРАНЕЕ

Author:  DerMeister =) [ 2006-06-29 14:07:44 ]
Post subject: 

Скорее всего у тя такая шняго, что есть саб, который постоянно используется как вызываемая процедура, а в этой процедуре есть строчка var тырыпыры... Тоесть получается что инжект постоянно создаёт всё новые и новые переменные, а старые не чистит...

Author:  Edred [ 2006-06-29 16:25:59 ]
Post subject: 

Я думаю, что дело в переходах goto внутри и наружу циклов for и while. Скрипт просмотрел наискосок, хочешь чтобы его изучали нормально - запости как следует, используя теги для кода и отступы для уровней.

Author:  meidan [ 2006-06-29 16:31:05 ]
Post subject: 

DerMeister =) wrote:
Скорее всего у тя такая шняго, что есть саб, который постоянно используется как вызываемая процедура, а в этой процедуре есть строчка var тырыпыры... Тоесть получается что инжект постоянно создаёт всё новые и новые переменные, а старые не чистит...

прошу прощения зе делитантский вопрос. а как их можно уничтожать?

Edred wrote:
Я думаю, что дело в переходах goto внутри и наружу циклов for и while. Скрипт просмотрел наискосок, хочешь чтобы его изучали нормально - запости как следует, используя теги для кода и отступы для уровней.

прошу прощения. обязательно учту. спасибо за совет.

Author:  DerMeister =) [ 2006-06-29 23:18:25 ]
Post subject: 

meidan wrote:
DerMeister =) wrote:
Скорее всего у тя такая шняго, что есть саб, который постоянно используется как вызываемая процедура, а в этой процедуре есть строчка var тырыпыры... Тоесть получается что инжект постоянно создаёт всё новые и новые переменные, а старые не чистит...

прошу прощения зе делитантский вопрос. а как их можно уничтожать?

Выведи все var тырыпыры за сабы + учти чо, что тебе Едред подсказал...
ЗЫ: Перезоди на пинжект, там с этим проблем нет...

Author:  Edred [ 2006-06-30 02:05:34 ]
Post subject: 

DerMeister =) wrote:
Выведи все var тырыпыры


Ты бы хоть на его скрипты взглянул. Там вообще практически переменных нет. И не жрут они так память. Память от переменных не высвобождается только если скрипт прерывать по terminate, при нормальном завершении - все освобождается.

Author:  meidan [ 2006-07-09 04:26:56 ]
Post subject: 

люди. продолжим тему?
я тут решил детально разобраться. оказывается скрипт тут нипричём.
я запускаю УО. начинаю бегать - просто бегать на 3 экрана туда-сюда
и слежу за КЭШ памятью(виндозный файл подкачки) в "Диспетчере задач" и заметил что на 1 экран уходит от 0,5 до 2 метров загрузки и выгрузка всего процентов 10%
пробовал галочки инжекта ставить-снимать - эффекта 0.
менял версии инжы. то же самое.
думаете пинжект изменит что-то?
ведь в пинжекте только языковый модуль меняется.
сама инжа та-же вроде.

есть мысли?
заранее спасибо.

Author:  Grin [ 2006-07-09 10:36:10 ]
Post subject: 

Пинжект был тее предложен из -за догадки что проблема в скрипте...
Поможет только соскриптами и ничем больше.

Author:  omi4 [ 2006-07-09 12:08:38 ]
Post subject: 

При появлении объекта на экране инжект сохраняет его у себя в памяти, любой поиск происходит именно в ней, а не на экране как считают многие. Иногда сервер дает команду удалить объект, но это происходит не всегда(1/100). Например, израсходовал ресурс.

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

Author:  meidan [ 2006-07-09 14:00:42 ]
Post subject: 

omi4 wrote:
При появлении объекта на экране инжект сохраняет его у себя в памяти, любой поиск происходит именно в ней, а не на экране как считают многие. Иногда сервер дает команду удалить объект, но это происходит не всегда(1/100). Например, израсходовал ресурс.

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

и никак это не победить? :(

Author:  Grin [ 2006-07-09 14:08:27 ]
Post subject: 

почему никак;)
Страно только одно что трек ворлдитем тебе не помог...
а так было несколько команд для чистки "левых" объектов
,forget far и тд
и чтото еще с флешем;)

Author:  omi4 [ 2006-07-09 15:31:20 ]
Post subject: 

Ворлдитем и не должен помогать. Он следит за дистанцией до объекта, а удалять он не может.
Есть такая мысль что он вычисляет расстояние до всех объектов хранимых инжой…

Удаление объектов командой возможна только теоретически, объектов тысячи…
Отлов, сортировка и удаление с помощью скрипта практически не реализуема.

Author:  meidan [ 2006-07-09 15:39:21 ]
Post subject: 

то есть лекарства нет в принципе?
или может возможно сделать скрипт, который удалит ВСЕ обьекты. а я потом в нём же пропишу нужные. и в цикл его. по необходимости.
как думаете реально? в смысле - реализуемо?
если да. то какими командыми?

и ещё раз спасибо за Ваше время.

Author:  meidan [ 2006-07-09 15:44:09 ]
Post subject: 

P.S. ,Forget far
проверил... первый раз слетел клиент. потом просто не работает.
инжа 312.

Author:  Grin [ 2006-07-09 17:27:59 ]
Post subject: 

;) Не изучал механизм трека, н опо логике как раз он и должен был бы отвечать за за пись объектов в свою память;) Инче без ТВИ как мы знаем макросить почти не возможно так как индект не знает даже то что у нас в паке лежит;) и проблема не в дистанции;) Помнится чтото было со збросом памяти итемов на в кладке мейн даже кнопка была...

Page 1 of 1 All times are UTC+02:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/