LINUX.ORG.RU

node-webkit внезапно начинает тормозить

 , , ,


0

2

В процессе тестирования app обнаружились внезапно появляющиеся и вненезапно исчезающие тормоза.

Одни и те же действия нормально выполняювшиеся предыдущие раз 50 на 51 й могут вдруг затормозить, так что чем-то связать их появление пока не могу. После после появления тормозов так уже лагает всё: простой скроллинг жрёт на оно ядро на 100%, в покое же процессор не нагружен. Потребление памяти не возрастает. Через несколько минут само по себе проходит - всё работает быстро как до.

Прилагаю скриншот хромиумоского профайлера - http://storage7.static.itmages.ru/i/14/0510/h_1399744990_5307603_f649ceeaa5.png

От тормозных :visible селекторов - избавился. Казалось было помогло - но нет.


Ответ на: комментарий от swwwfactory

Тики, тики... так GetTickCount() - не то, а - нервный тик, да, перечитал - ужас. Суббота, пьянка - сорри.

varchar
() автор топика
Ответ на: комментарий от swwwfactory

может все дело в тиках?

jQuery.fx.interval? К сожалению это не влияет, даже при 1000 миллисекунд вместо 13-ти.

Мне кажется javascript тут вообще не причём. После того как затормозит, тормозит уже сам браузер, скроллинг я уже упоминал в первом посте, так вот - в профайлере, при (жутко лагающем) скроллинге туда-сюда, только «50% idle» и «50% program» и всё. При этом одно ядро процессора загружено на 100%. Без скроллинга нагрузки на процессор нет.

Что же это такое? Может кому-то это что-то напоминает, любые догадки... Может какие-то советы по отладке самого процесса node-webkit и/или javascript, пожалуйста, нуждаюсь в любых советах, Буду очень благодарен.

varchar

anonymous
()
Ответ на: комментарий от anonymous

https://developer.mozilla.org/en-US/docs/Web/API/window.setInterval в конце страницы «Dangerous usage»

Код, использующий setInterval желательно чтобы был в таком каркасе, например.

Надо пересмотреть, какой вариант реализован в приложении или в окружении.

swwwfactory ★★
()
Ответ на: комментарий от swwwfactory

Победил тормоза таки! Давно уже, но дай-ка отчитаюсь. А дело было... В общем... App - страница с кучей скрытых дивов:

<div id="1" style="display: none;">some content 1</div>
<div id="2" style="display: none;">some content 2</div>
<div id="3" style="display: none;">some content 3</div>
Один из них (для упрощения) в данный момент показан (скажем див id=1) и получил из кода фокус (чтобы скроллить). Если кликнуть где-то на его содержимом (скажем тексте) и перейти к следующему (id=«2») (что важно - следующему объявленному в html-файле) - всё ок. Но если кликнуть или выделить что-то на диве с id=«3», а затем попытаться перейти к диву id=«1» (див 3 в коде html находится ниже чем див id=«1»), то привет тормоза. Вот так.

Сумбурно... снова пьян... Я ХЗ можно ли что-нибудь понять из вышеизложенного, короче, устранились тормоза следующей строчкой:

document.getSelection().removeAllRanges();
перед сокрытием дива.

varchar
() автор топика
Ответ на: комментарий от varchar

два чая, минералки и бутылочку пива тебе на утро! спасибо что отписал.

dib2 ★★★★★
()
Ответ на: комментарий от varchar

Поздравляю - иногда упорство вознаграждается, но юдительность не помешает.

Не хотелось бы выдергивать из контекста, но ничего что id в дивах начинаются с цифр т.е. не совсем валидные?

http://www.w3.org/TR/html401/types.html#type-id

http://stackoverflow.com/questions/1077084/what-characters-are-allowed-in-dom...

swwwfactory ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.