![]() |
Цитата:
|
Евген_21
duzzy Есть вопрос по запуску менеджера для JS плейлиста , как сейчас это работает без AHK ? Так-же интересует старт (скорость) плеера - учитывая проверки тем цветов для градиентов регуляторов сик и звука и тд .. Евген_21 еще Tы спрашивал как-то за регулировку индикаторов кнопками в 7-ке . попробуй те файлы , что по пути: 4Icar_13_5_MPS_UNI\foobar2000\Emul\Windows_7\Wheel D.exe 4Icar_13_5_MPS_UNI\foobar2000\Emul\Windows_7\Wheel Up.exe заметить в папку Emul |
seriousstas
Только до нормального компа добрался))) в секции преппроцессора... pss.GetPanel(11); /*PANEL: [milk]*/// ==PREPROCESSOR== могут возникнуть ошибки при компиляции, лучше убрать(секция препроцессора очень чувствительная штука, на глаз все может работать без проблем, но могут возникать утечки, глюки при вызовах, непонятные артефакты и другие неприятные штуки). работает шустро, стартует тоже быстро, вроде все как должно быть... Заметил загрузку проца примерно до 10% процентов при проигрывании и покое но это не критично с учетом кол-ва скриптов и бегущей строки.(тяжелые скрипты можно поставить в отсроченную загрузку "Delay Load" галка в редакторе скрипта) Вопрос, а чего не сделал автопереключение по времени ? Я пробовал с Икаром работает очень даже не плохо:yes2: Цитата:
Расскажи плиз схему работы вызова вкратце... интересно как устроено:smile2: |
Цитата:
Цитата:
Цитата:
Экран утоплен слегка - запас яркости у этого старичка-Самсунга предостаточный, чтоб четко видеть все элементы даже при прямом солнце .. + есть небольшой отвлекающий момент . Может со временем, когда победим рестарт .. :) Цитата:
получается в среднем 1-2%(проц купил 8 лет назад))), если первый запуск и состояние покоя - опускается до 0.3 иногда (если не сложно сними что-то типа ,что-б понять, где нагрузка максимальная) : Цитата:
|
На кнопке простой переключатель (два состояния) :
Код:
man++; Код:
[start_man] Код:
function togglePlaylistManager_1(){ При вызове пишу единицу, а самой функции (JS) её обнуляю, что-б не грузить проц : utils.WriteINI( set_path + 'settings.ini', 'start_man', 'man_off', 0); Далее - это для кнопки "закрыть" (ты её рисовал - знешь где :) ) : utils.WriteINI( set_path + 'settings.ini', 'close_man', 'man_off', 2); - внутри function togglePlaylistManager_2() - показываю открытую панель, при закрытии - обнуляю . в WSHplaylistmanager.js пишу тройку при закрытии (крестиком) : utils.WriteINI( set_path + 'settings.ini', 'close_man', 'man_off', 3); В МПС принимаю и обнуляю эту тройку здесь (это чтоб переключатель window.SetProperty("SYS.Man Switch", man); стал в правильное положение) : if (TAB_set_off = utils.ReadINI( set_path + 'settings.ini', 'close_man', 'man_off')==3){ tab_switch_check() } Здесь смотрим за значениями в главном скрипте JS : Код:
function on_paint(gr) { Код:
p.playlistManager.check("down", x, y); Код:
function on_timer(id) { |
seriousstas
Вот видосик по нагрузке в покое и без... мой проц уже стар по нынешним меркам, поэтому нагрузку видно хорошо. И я еще повторюсь, нагрузка не критичная просто подметил что она есть... Последнее время просто стараюсь оптимизировать функции убрав лишнюю нагрузку. Интересная схема ;) Цитата:
смотри у тебя опрос стоит в on_paint(gr)... лучше заменить на интервальный таймер например с опросом каждые пять секунд, тем самым уберешь нагрузку на проц и графику и постоянный опрос файла settings.ini на диске... а в таком варианте function on_paint(gr) { if (utils.ReadINI( set_path + 'settings.ini', 'close_man', 'man_off')==1){ togglePlaylistManager_1(); получается постоянное чтение файла с диска из функции он_паинт что может подтормаживать графику на медленных системах... я у себя переделал по таймеру и лишняя нагрузка ушла... Мой совет лучше сделай отдельную функцию опроса, что то вроде этой... Код:
var time_to_refresh = window.GetProperty("Check_Pl_Manager", 5000); |
спасибо за видео - очень наглядно !
Цитата:
Цитата:
Я ведь показываю 1-цу и сразу прячу , как-бы это работало в общей схеме ? Нажимаю - жду 5 сек - появляется менеджер , но даже если так, как он появится ,если я уже обнулил 1-цу) ? Судя и по видео и по моим тестам - в покое особой нагрузки нет тк нет действий, кроме опроса ини . Допустим если-бы при 0-ле скрипт всегда пытался закрыть панель - тогда да - растет нагрузка .. |
seriousstas
Пожалуйста ! Да я имею в виду так же как я делал с панелью ДСП при переключении пресета... Т.е. постоянно работает интервальный таймер например на на 5-ть секунд, и каждые 5-ть секунд идет опрос файла settings.ini на предмет смены флага... т.е. по сути нужно просто заменить это в JS... Код:
function on_paint(gr) { Код:
var time_to_refresh = window.GetProperty("Check_Pl_Manager", 5000); Цитата:
Т.е. закрытие менеджера может произойти как через 1-ну секунду может через две, три или через 5-ть... зависит от того до какого времени отмотался таймер как в примере установленный на 5-ть секунд. По сути ты будешь делать тоже самое что было ранее в он_паинт в JS но по установленному тобой интервалу времени, а не постоянно как было в он_паинт... Просто как мне кажется это постоянная лишняя нагрузка которой можно избежать, тем более что менеджер-плейлистов не так часто вызывается. -------------------------------- только что проверил в твоей сборке, все работает как надо... :) не забудь только потом проверку из он_паинт убрать интервал 5-ть сек. и опрос итервал 5-ть сек. и опрос... и т.д. твоя сборка в режиме стоп... ;) http://jpegshare.net/images/a6/dd/a6...ed48866f50.png загрузка проца 0% |
Цитата:
мгновнно, но даже при таком опросе уже меньше грузит проц (оставлю так)... Цитата:
Интересно , почему function on_timer(id) { в МПС ничего не грузит (если ты заметил , там несколько проверок) , хотя так-же отслеживает изменения в ini онлайн , без таймеров |
seriousstas
Цитата:
Но я бы все же поставил хотя бы 3000 мс - 3 сек. потому как 100-200 мс это ооочень часто... можешь сам посмотреть в консоли трейсом --- fb.trace("тут пишем что угодно"); прописываешь трейс в функцию опроса затем открываешь консоль и видишь в ней количество вызовов этой функции... прописать можно сюда... ... } fb.trace("тут пишем что угодно, текст который будет отображаться в консоли"); }, time_to_refresh); }; Цитата:
Цитата:
Создаются таймеры по ID которые работают изолированно друг от друга и поэтому не оказывают влияния на другие процессы. Цитата:
И у тебя там еще window.RepaintRect(...) прописан для каких-то целей... тоже постоянно что то перерисовывающий, по хорошему его бы тоже в таймер нужно прописать а не в общую функцию, либо прописать там где нужен репаинт в зависимости от события... я бы подсказал куда прописать но не знаю для чего нужен репаинт... :) |
Часовой пояс GMT +4, время: 20:29. |
Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot