Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Кукла в хроме не тянет *большие треды* #1197

Closed
NEONZARIN opened this issue Mar 18, 2018 · 27 comments
Closed

Кукла в хроме не тянет *большие треды* #1197

NEONZARIN opened this issue Mar 18, 2018 · 27 comments
Labels
bug Something isn't working done

Comments

@NEONZARIN
Copy link

NEONZARIN commented Mar 18, 2018

Не знаю как правильно сформулировать. Напишу как есть.
Беру чистый хром устанавливаю куклу и захожу в тред с 2500 постами. Видно что страница загружается примерно до 2300 постов и вкладка виснет наглухо. Выгдят так как вроде кукла не переваривает жирные треды. И так постоянно при открытии перезагрузке таких вот больших тредов. С обычными тредами до 1к - 2к постов которые такого не наблюдается.

С чистой лисой таких проблем с зависанием нет начиная с 58 версии. Страничка загружается в течении ~28 секунд, без зависаний без таких проблем как в хроме.

@Y0ba
Copy link
Collaborator

Y0ba commented Mar 18, 2018

Интересно было бы посмотреть выхлоп профайлера. Можешь сделать? Гугли "chrome javascript cpu profiler" там будет написано как это сделать.

@SthephanShinkufag
Copy link
Owner

А у вас предзагрузка картинок в настройках случайно не включена? Она очень прожорлива.
С дефолтными настройками пробовали загружать?

@NEONZARIN
Copy link
Author

NEONZARIN commented Mar 18, 2018

Настройки дефолтные, кукла из маркета хрома, пробовал последнюю версию с гитхаба при помощи виолентманкей все равно зависает. Предзагрузка картинок не включена. Выхлоп профайлера сегодня сделаю.

@NEONZARIN
Copy link
Author

NEONZARIN commented Mar 18, 2018

default
На графике внизу это без куклы. С куклой постоянно висит вот так как на скрине. Или нужно сам файл выхлопа? Как его тогда получить если оно висит?
Если что, оперативки ещё почти 2 гига свободно.
Проц на 96% гонит. Подожду подольше, может отвиснет...

@NEONZARIN
Copy link
Author

Profile-20180318T062949.zip
Вот. 4 минуты висит. Рендерило чет собака.

@Y0ba
Copy link
Collaborator

Y0ba commented Mar 18, 2018

Забавно. Проблема в CSS. Какой-то селектор куклы занимает кучу времени в крупных тредах. JS в профиле почти не видно.

@Y0ba
Copy link
Collaborator

Y0ba commented Mar 18, 2018

Или не CSS. Больше всего времени занимает обновление стилей, которое триггерится при вызове функции $script. Странно это.

@NEONZARIN
Copy link
Author

Собственно именно поэтому я и ушел с хрома на лису. Я вообще думал что это у меня моя пекарня не тянет большие треды. А в лисе все норм оказалось.
Для сравнения загрузка такого вот треда 2500 постов без куклы что в лисе с 58 что в хроме/его форках последних версий ~18 секунд. С куклой лиса 58 ~28 секунд, хром соответственно висит наглухо.

@Y0ba
Copy link
Collaborator

Y0ba commented Mar 18, 2018

Да, если CSS куклы полностью отключить, то всё работает очень быстро. К сожалению, профайлер CSS из хрома убрали, поскольку разработчики посчитали, что их движок достаточно быстрый, чтобы проблем со скоростью обработки CSS ни у кого никогда не возникало и потому профайлить его нет смысла.

Видимо придётся самому искать правила, которые замедляют браузер.

@NEONZARIN
Copy link
Author

Хех, Violentmonkey + https://github.com/SthephanShinkufag/Dollchan-Extension-Tools/raw/master/src/Dollchan_Extension_Tools.es6.user.js загрузка быстрее 3.4 min. Инструмент профилирования или как его там не зависал и показывал сколько времени оно там загружается.
Profile-20180318T070126.zip

@NEONZARIN
Copy link
Author

Это вот это типо?
default

@Y0ba
Copy link
Collaborator

Y0ba commented Mar 18, 2018

Разверни его. Там первым в списке будет Recalculate Style с огромным self time.

@Y0ba
Copy link
Collaborator

Y0ba commented Mar 18, 2018

В лисе, кстати, тоже профайлер показывает около 50% времени инициализации тратится на обработку стилей. Просто лиса делает это быстрее.

@NEONZARIN
Copy link
Author

28 секунд всего...

@Y0ba
Copy link
Collaborator

Y0ba commented Mar 18, 2018

Как я и предполагал, всё это из-за CSS счётчика постов. Видимо придётся переписать их на JS. Всяко быстрее будет.

@Y0ba Y0ba added the bug Something isn't working label Mar 18, 2018
@Y0ba
Copy link
Collaborator

Y0ba commented Mar 18, 2018

Можешь попробовать найти в скрипте .de-post-counter::after { counter-increment: de-cnt 1; content: counter(de-cnt); color: #4f7942; } и заменить на /* .de-post-counter::after { counter-increment: de-cnt 1; content: counter(de-cnt); color: #4f7942; } */. Тогда скрипт срабатывает мгновенно с единственной потерей функционала: счётчика постов.

@NEONZARIN
Copy link
Author

NEONZARIN commented Mar 18, 2018

А как/чем правильно редактировать? Пробовал notepad/Editplus при любом изменении скрипта он потом не пашет. Устанавливается но не пашет.

@Y0ba
Copy link
Collaborator

Y0ba commented Mar 18, 2018

Если установлено как расширение - то никак. А так можно в *манки встроенным редактором.

@NEONZARIN
Copy link
Author

Ну нифига себе! ПРЯМО КАК В ЛИСЕ 29 СЕКУНД СТАЛО. Никаких фризов, ничего.
Profile-20180318T074912.zip
Во, теперь и можно на хром обратно вернутся.

@NEONZARIN
Copy link
Author

NEONZARIN commented Mar 18, 2018

В лисе вот опять проверил секундомером на смарте (не разобрался в лисьем профайлере где так же в секундах глянуть) - 28 секунд.
Так а почему именно в хроме такой баг со счетчиком постов?

@Y0ba
Copy link
Collaborator

Y0ba commented Mar 18, 2018

Просто правило counter недостаточно оптимизировано и в больших тредах начинает сильно глючить. В лисе там же недавно крутой многопоточный css-движок встроили написанный на расте, вот он эту фигню без проблем и переваривает.

@NEONZARIN
Copy link
Author

Я бы даже сказал он ее игнорирует. Т.к я и в лисе закоментировал эту строчку счетчика. Изменений по времени загрузки не видно.

@Y0ba
Copy link
Collaborator

Y0ba commented Mar 18, 2018

Не игнорирует, просто выполняется настолько быстро, что не заметно на глаз.

@SthephanShinkufag
Copy link
Owner

Круто! Я знал, что у хрома были проблемы с css-движком, но это вообще аллес.
А счётчик постов на JS не замедлит лису? Нужно будет делать ветвление - для хрома счётчик на JS, а для лисы оставить как есть.

@Y0ba
Copy link
Collaborator

Y0ba commented Mar 18, 2018

Не замедлит (там всего-то подредактировать html, который и так вставляется в dom). Там самое сложное будет - обновление счётчика после удаления постов. С CSS это делается автоматом.

@SthephanShinkufag
Copy link
Owner

Готово. Счётчик постов теперь расставляется посредством JavaScript.
Учёт при удалении постов и при автоподгрузке тредов с удалёнными постами, отображение в превью, всё работает.

@NEONZARIN
Copy link
Author

NEONZARIN commented Mar 21, 2018

Очень интересно теперь стало!
Хром - тред 2630 постов полная загрузка страницы до ~50 секунд. Без полных зависаний как раньше.
Лиса - тред 2630 постов полная загрузка страницы ~42 секунды.
В общем кукла на лисе в больших тредах/и вообще работает быстрее на ~5 секунд.
Да, и ещё у меня при этом включен ublock который снижает загрузку тредов на 4 секунды в обоих браузерах одинаково. Без него соответственно загрузка на 4 секунды быстрее.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working done
Projects
None yet
Development

No branches or pull requests

3 participants