![]() |
падение производительности Mshta.exe (IE9)
После недавней установки последних обновлений на Win 7 Professional, при помощи штатного центра обновлений, обнаружилась удивительная проблема. Начало тормозить собственноручно написанное полноэкранное приложение HTA, а конкретно отрисовка графики. Hta представляет собой один единственный HTML файл с необходимыми Hta-тегами и вызовом функции navigator('start') в <body>. Дальше работают JS и VBS скрипты которые строят интерфейс, переключают менюшки, двигают картинки и т.д. Именно на движении картинок и начало ощутимо чувствоваться торможение, которого еще недавно небыло. Осуществляется движение при помощи обычных методов Div.style.left и Div.style.top.
При этом что странно, в первое время после запуска все работает идеально. Торможение появляется в тот момент, когда я начинаю переключать окна или открывать новые или просто работаю с панелью задач. Изучение поведения Mshta через диспетчер задач показало, что при запуске оно ест свыше 60%-70% ресурсов. При движении графики нагрузка на процессор подскакивает примерно до тех же значений. При простое, конечно Mshta ресурсов не ест. Но после переключения на другие окна выделение процессорного времени для Mshta уже не превышает 25-30%. Изменение приоритета Mshta не дает никаких результатов. Равно как и отключение windows aero и службы работы с темами windows. Я попробовал покопаться в настройках нового IE9. Поменял отрисовку графики на программную, вместо граф.процессора - и ничего. С чего вдруг порог выделения процессорного времени становится так мал мне непонятно. Пробовал на разных компьютерах с процессорами: intel E8400 и intel E6850, разными видеокартами: amd 6850 и nVidia gts250, 260. Везде одинаково. На всех этих компах стоит лицензионный Windows 7 sp1 Professional с последними обновлениями. Из программ только лицензионные игры, Opera и касперский. Больше ничего. Настройки базовые. HTA приложение находится на локальном диске, вся графика соответственно тоже. Кто знает в чем подвох подскажите плиз куда копать, где что менять. Hta приложение очень нужно, работать с ним стало невозможно. P.s. Главное обновлять начал из-за того что новые ролики с youtube стали подтормаживать в проигрывателе встроенном в то же HTA. Теперь ролики не тормозят, тормозит сам HTA. (( |
Цитата:
2) Как в других браузерах кроме IE9 ведет себя Ваше приложение? 2) Попробуйте запустить IE без надстроек (в меню Пуск). |
Восстановление системы к сожалению отключено. Потому что ест свободное пространство, которого не очень много на винте. Знаю что глупо, но спасаюсь тем, что не устанавливаю на компьютер ничего кроме лицензионных игр, оперы и касперского. А также ничего не перенастраиваю.
В других браузерах к сожалению HTA не работает, потому что используются в основном VBS скрипты (порядка 7.5 тысяч строк). Они занимаются Html оформлением, работают с WSH, WMI и много чего еще. По этой причине работают только в Mshta. В Mshta кстати все работает прекрасно, проблема в том что через какое-то время производительность его падает. Конкретно это происходит после работы со смежными окнами. Выделение процессорного времени ограничивается 25-30%, хотя приоритет Mshta теми же скриптами повышется до наивысшего уровня. В IE у меня нет никаких ни надстроек, ни настроек вообще. Он меня при запуске до сих пор спрашивает: "хотите ли вы настроить правила безопасности ?". Я упорно отказываюсь. Как вы возможно догадались компы стоят в интернет-кафе, HTA растянут на весь экран и закрывает доступ к обычному интерфейсу Windows. Запуск всего осуществляется через него. P.s. Проблема после обновления проявилась на всех компьютерах, поэтому грешу только на него. |
Ну а вероятность того, что сам HTML-файл написан криво, Вы не исключаете? Я почему спрашиваю:
Цитата:
|
Обновлял я несколько дней назад, за этот период никаких исправлений в код я не вносил. Кстати после обновления заметил, что некоторые картинки (некоторые) грузятся c заметной задержкой. Буквально несколько самых новых сделанных мной баннеров. У меня есть что-то типа рекламного баннера, куда картинки грузятся случайным образом, при переходах из одного меню в другое. Я посмотрел чем эти картинки отличаются от тех, что грузятся быстро. Оказалось что я сохранил их в Photoshop CS 5 в прогрессивном формате. Недоглядел. Я их пересохранил в обычном формате, а так же вообще все картинки которые я так или иначе использую. Теперь они грузятся нормально, без лагов. Но недостаточная производительность при движении изображений все же осталась.
Немного поясню, Hta у меня состоит из одной страницы в котором из Html кода только: <body><script>navigator('start')</script></body>. И все. Все остальное делается на скриптах. Вся графика разом грузится в память, все расчеты производятся в момент запуска и записываются по массивам, процесс занимает в итоге около 100 мб. Но раньше ничего не тормозило. Все эти проблемы проявились только после обновления (в которое входило и обновление IE с v8 на v9). И я вот не пойму, что за ограничитель такой появился, который ограничиват нагрузку на проц до 25-30%, причем не сразу, а только после того как я несколько раз щелкну по другим окнам. Например запущу оперу или Steam или еще что-нибудь. |
deeman00, я ничего не смыслю в web верстке и дизайне, но исходя из Ваших пояснений, вопрос следует задать скорее в этот раздел: http://forum.oszone.net/forum-22.html
Можете еще попробовать: 1) Запустить свое приложение в Безопасном режиме; 2) Удалить все обновления, после установки которых возникла проблема. |
Ну точно. Удалил IE9 (соответственно восстановился IE8) и тормоза как рукой сняло. Процесс Mshta теперь запросто использует 70% процессорного времени. А вот новые ютюбовские ролики в IE8 подтормаживают, а в IE9 нет. И еще картинки с диска в IE9 все таки подгружаются быстрее. Вот блинский блин, как же сделать чтоб ничего не тормозило ? Придется наверно с dll'ками шаманить, подставлять в новый IE старые файлы и смотреть из-за какой новой библиотеки такие проблемы.
|
Время: 19:18. |
Время: 19:18.
© OSzone.net 2001-