Guest LeonPRO Posted August 13, 2011 Share Posted August 13, 2011 Добрый день. Никто не замерял скорость выполнения скриптов? Допустим, сколько времени занимает 1000 вызовов несложной ф-ции на получение данных из к.л. глобальной переменной или сколько времени нужно, чтобы пробежаться по 1000 условиям и проверить на соответствие значению If(filter) then {do_someone;} Это, конечно просто написать самому и замерить, однако с моим знанием синтаксиса, написание тестового скрипта в данный момент займет много времени, так что если у кого есть опыт в написании вычислительно-ресурсоемкого кода для аллодов - поделитесь ощущениями от скорости, пожалуйста. UPD.1 И ещё вопрос Как можно обмениваться данными между аддонами? В офф. документации только написано, что можно через события, но как конкретно - не указано. Quote Link to comment Share on other sites More sharing options...
icreator Posted August 14, 2011 Share Posted August 14, 2011 смотри AddonManager Quote Link to comment Share on other sites More sharing options...
Guest LeonPRO Posted August 14, 2011 Share Posted August 14, 2011 Не, ну я смотрел не только его (но особенно его), но сложно найти что-то, не зная даже как оно точно должно выглядеть. Я посмотрел конструкции использующие имена эвентов, попробовал так и сяк вставлять в свой код. Пыхтел часа два до 4 утра, но не осилил и пошел спать -_- Эх, так надеялся на ответ сегодня выходные заканчиваются... Quote Link to comment Share on other sites More sharing options...
Setras Posted August 14, 2011 Share Posted August 14, 2011 Айси как всегда в своем репертуаре. Человек несильный в синтаксисе, смотри аддон который написан на таком брейнфаке, что легко разобраться можно в нем если опыт у тебя программирования приличный есть и сила темной стороны. Могу ответить на вопрос в первом сообщении не заданный, но схожей тематики - скрипты выполняются 1 раз в кадр, т.е. делят очередь выполнения с разнообразными другими системами АО, самая тяжелая из которых - графическая, т.е. при большой графической нагрузке получаем меньшее кол-во кадров в секунду - реже могут юзаться скрипты. При большой скриптовой нагрузке получаем более редкую прорисовку кадров - падает ФПС. Однако сколько времени занимают определенные элементарные действия я не засекал. В принципе как я понял тебе нужно что-то типа: Global("Ololo",1) LogInfo(mission.GetLocalTimeHMS().s,"s, ",mission.GetLocalTimeHMS().ms,", ms") for i = 1, 1000 do Ololo = Ololo + 1 end LogInfo(mission.GetLocalTimeHMS().s,"s, ",mission.GetLocalTimeHMS().ms,", ms") Quote Link to comment Share on other sites More sharing options...
Guest LeonPRO Posted August 14, 2011 Share Posted August 14, 2011 Setras, спасибо, сейчас нагенерирую "нагрузку" и замерю ) А что на счет межаддонового обмена данными с помощью событий? Я знаю как написать отловить событие по его имени, но как создать новое событие и "сгенерировать" его, а также сделать его "видимым" для другого аддона - пока не разобрался. Quote Link to comment Share on other sites More sharing options...
Setras Posted August 14, 2011 Share Posted August 14, 2011 LogInfo(mission.GetLocalTimeHMS().s,"s, ",mission.GetLocalTimeHMS().ms,", ms") for i = 1, 100000 do Ololo = Ololo + 1 end LogInfo(mission.GetLocalTimeHMS().s,"s, ",mission.GetLocalTimeHMS().ms,", ms") Выдало: Info: addon TestingButton: 7s, 135, ms Info: addon TestingButton: 7s, 144, ms Я х.з. если честно что и как конкретно тебе хочется замерить, скажу лишь что перерисовка пользовательского интерефйса дпс метра "DarkDPS" каждый кадр уже значительно уменьшает кол-во кадров в секунду (поэтому его переделали - интерфейс обновляется каждую секунду, на арене уменьшал до неиграбельного состояния). А вычисления всяких циферек... Мм... Никто пока не жаловался Quote Link to comment Share on other sites More sharing options...
Setras Posted August 14, 2011 Share Posted August 14, 2011 userMods.SendEvent( eventName, eventParams ) Использование: userMods.SendEvent( "MY_EVENT_NAME", params ) Первый параметр - имя. Второй параметр - переменная, можешь передать таблицу в которой понапихано всякой фигни. Quote Link to comment Share on other sites More sharing options...
Setras Posted August 14, 2011 Share Posted August 14, 2011 При этом добавление после Ololo = Ololo + 1 строки LogInfo(Ololo) "Притормозило" игру на 25 секунд и выдало Info: addon TestingButton: 46s, 616, ms Info: addon TestingButton: 4s, 708, ms (Ясное дело - открыть файл, записать в него, закрыть файл, и так 100000 раз). Quote Link to comment Share on other sites More sharing options...
Guest LeonPRO Posted August 14, 2011 Share Posted August 14, 2011 >> Выдало: >> Info: addon TestingButton: 7s, 135, ms >> Info: addon TestingButton: 7s, 144, ms Cупер! Спасибо. У меня совсем не использует графику, но будет много блоков условий, вплоть до сотни или двух. P.S. Я вчера случайно рекурсивно вызвал метод - игра зависла намертво и лог-файл мгновенно вырос до нескольких десятков килобайт ) >> Использование: >> userMods.SendEvent( "MY_EVENT_NAME", params ) Огромное спасибо!!! Работает! А я использовал common.SendEvent("MY_EVENT_NAME", params ) и ничерта не получалось Quote Link to comment Share on other sites More sharing options...
Setras Posted August 14, 2011 Share Posted August 14, 2011 Самые последние изменения в API лежат в доках в папке с игрой. Вполне возможно когда-то оно и было common. Quote Link to comment Share on other sites More sharing options...
icreator Posted August 17, 2011 Share Posted August 17, 2011 короче графика грузит процессор - особенно Contaier а простые вычисления мало жрут процессор. передача данных через прерывания - тоже затратная - но не особо Quote Link to comment Share on other sites More sharing options...
Loss Posted August 24, 2011 Share Posted August 24, 2011 Скорость цикла в игре достаточно хорошая. перебежать около 1000 предметов сохраненных в файле user.cfg и сравнить с ними какие либо строки для игры вообще не заметно. даже если подряд происходит проверка 50 таких проверок. только вот сохранение хромает =( сохранить 40-50 элементов(по одному) в файл размером 300кб занимает около 5-15с. при этом игра висит((( Quote Link to comment Share on other sites More sharing options...
icreator Posted August 24, 2011 Share Posted August 24, 2011 а зачем их по 1му сохранять?? ведь сохраняться то будут все равно ВСЕ - так как перезаписывается вся секция config для этого аддона. Если в чат выводить (используя LogToChat из ScriprLIB) по 10-20 строчек то тоже заметны зависы. Причем чем чем больше строк уже в чате есть, тем больше тормозит - поэтому у меня в библиотеке еще удаление из чата запускается на АП с размером панели в 24 панельки целей и с полной анимацией меток на этих целях - еле заметно притормаживание 2Д графики. Quote Link to comment Share on other sites More sharing options...
Loss Posted August 24, 2011 Share Posted August 24, 2011 сохраняются именно не все. а только те которых нет. Поэтому происходит поиск нет ли такого в базе, поэтому перебирается каждый элемент. Это было сделано специально. Что бы не конвертировать строки. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.