Pull to refresh
0
0
Андрей Параничев @paranichev

User

Send message
Я — создатель интернетов! Я JLBY-REY!
Почему-то у меня опера с каждой новой версией все хуже и хуже (в плане производительности) работает с сайтами, на которых много контента обновляется динамически: gmail.com, некоторые сайты, использующие comet-сервера для обновления, например 1chan.ru
Я специально пересмотрел исходники недавних трех проектов и не нашел ни одного места, которое можно было бы считать «мертвым кодом». Действительно ли у многих встречается ситуация циклов, которые ничего не делают, или функций, которые выполняют операции только в локальной области видимости? Я понимаю еще на сервере можно мертвым кодом назвать код, который не участвует в данной генерации страницы, но JS…

Оптимизация это под конкретный скрипт-тест, или хитрый оптимизатор — IE9 выполняет этот тест быстрее, потому что не выполняет его. Вряд ли это такой уж хороший результат, сомневаюсь, что в реальных условиях эта оптимизация много чего даст.
Не более, чем к любому другому примитиву, например к строке. Попробуйте сделать изменения, которые никак не могут касаться глобальной области видимости. Хотя true никак её не касается, поскольку это примитив, хотя и инстанс Boolean с ленивой инициализацией.
Да проименуйте хотя бы цикл:
Steps: for (Step = 0; Step < 12; Step++) {

Это тоже не должно сильно затронуть производительность.
Проверьте это. Да и если вы даже и правы, то «true;» никак на это не может повлиять.
Ваша теория очень интересна и правдоподобна.
В IE9 есть JIT-компиляция кода, которая работает в фоне
Она есть не только там. И я очень сомневаюсь, что разница в 21мс это «минус время инициализации и парсинга».

Я бы попробовал сделать принципиально другой пример этого теста, т.е. тестировать этот же функционал, но скрипте с другим кодом. Если там эта оптимизация не проявится, то все встанет на свои места.
Ваш комментарий это монолог облажавшегося парсера IE9?
Ок. Это просто хитрая оптимизация, которая работает, если где-нибудь кто-нибудь не поставит return; или true;. Это сразу рушит хитрый алгоритм определения SunSpider эвристического анализа скрипта.
А вы думаете они довольны тем, что им приходится предлагать всем установку браузера на выбор? Или довольны падением популярности и доверия к Internet Explorer даже среди крупных корпораций?

Сейчас мера измерения браузера это скорость, если новый IE9 будет не самым быстрым, то все больше и больше людей будут переходить на другие браузеры, поскольку этот фактор в приоритете. Я бы не удивился, если бы они пошли даже на оптимизацию под тест, опера делала такое даже в продакшне под некоторые большие сайты (в browser.js).

Я бы проверил в IE9 скрипт без модификации и скрипт с модификацией и сравнил время, потом попробовал бы вводить другие модификации, не true, а проименовал бы цикл, например. И посмотрел бы на результаты. Если любая модификация увеличивает время выполнения до одного и того же значения, то тут все ясно.
Интересно, правда меня больше впечатлил эмулятор NES на Javascript — benfirshman.com/projects/jsnes/
А связка с другими языками? Например с python?
Отличная работа. Насколько, ориентировочно, это приложение стабильно?
Т.е. имеет ли смысл сейчас перестраиваться под него в разрабатываемом проекте?

Сейчас, используется нечто похожее, только с использованием memcacheq, но решение с отдельным демоном мне нравится больше, тем более, что у вас уже все реализовано и на стороне php и на стороне клиента.
… кроме ie версии 6 и ниже, поскольку использовался png24-fix, который сильно сажает производительность. В chrome работало практически идеально, в других браузерах — практически неразличимые подтормаживания.

Кстати есть еще вариант с svg/vml графикой, или использованием canvas. Оба эти варианта работают чуть быстрее (с растровой графикой, перемещением и анимацией), чем просто матрешки. Однако эти решения нетривиальны, имеют свои ограничения, а canvas, к тому же, работает не во всех браузерах.

Но специфика проекта была такая, что графика была «под 8-битку» и анимации были дерганные «by design». Так что если нужна красочная, плавная анимация, то лучше посмотреть в сторону плагинов (flash, silverlight и т.д. и т.п.).
Практика показывает, что вариант с overflow: hidden и изменением координат слоя в контейнере работает чуть быстрее и плавнее, чем background-position.
Если интерфейс будет завязан на Javascript, и связь кадров анимации со скриптами будет прямая, то выбор, на мой взгляд, очевиден. Я как-то реализовывал игровое поле, которое само состояло из ~15 слоев, плюс спрайты с анимацией, которые работали через матрешки, контролируемые Javascript. Причем сами спрайты тоже были многослойные — т.е. поверх анимированного слоя был еще один, тоже анимируемый. Проще говоря, было много анимаций и наложенных друг на друга слоев. Все управлялось Javascript, причем одним глобальным таймером анимации (а не каждой анимации свой таймер). Работало все это дело с нормальной скоростью, везде, кроме ie
А я узнал 4 года назад, понимаете к чему я клоню?
Просто у меня от этих мемов, как вы говорите, «баттхерт».
Есть одно обязательное условие успешного поста на Хабре — интересная тема. Если пост не стал «успешен», то причина, уверяю, только в теме. А вот причина преднамеренного использования мемов может быть одна — показать, что вы причастны к той, или иной «субкультуре». Иначе её использование просто бессмысленно.

Поскольку Хабр все-таки ресурс серьезный, мемы анонимных имейджборд, так же как и «сказочный» стиль повествования (который изредка на Хабре проскакивает), или текст полностью состоящий из шуток и каламбуров — отвратительны и, как минимум, раздражают. И не только меня.
1

Information

Rating
Does not participate
Location
Санкт-Петербург и область, Россия
Date of birth
Registered