ie уже обложили или я все пропустил?
От: Sheridan Россия  
Дата: 20.11.10 23:03
Оценка: :)
Приветствую!

Новый оптимизатор Internet Explorer 9 привел к завышению результатов теста SunSpider

Значительный прорыв производительности последней тестовой версии Internet Explorer 9 дал повод задуматься, каким образом разработчикам IE удалось кардинально поднять производительность браузера, переведя его из разряда отстающих в лидеры.Как оказалось, в последней тестовой версии была реализована техника оптимизации "Dead Code Elimination", основной задачей которой в данный момент является ускорение прохождения теста производительности SunSpider.

По сути оптимизация сводится к игнорированию определенных языковых конструкций, что пока влияет только на прохождение теста SunSpider, не ускоряя работу реальных сайтов. При этом даже незначительное изменение кода теста, приводит к значительному падению скорости его прохождения. Например, оптимизация уже перестает работать при замене переменных местами в условном выражении (т.е. если вместо "if (TargetAngle > CurrAngle)" написать "if (TargetAngle <= CurrAngle)"), при добавлении новой переменной или при изменении огранизации цикла (если вместо "for (Step = 0; Step < 12; Step++)" поставить "while(Step < 12)" или "for (Step = 12; Step > 0; Step--)").

Интересно, что добавление в код теста забытого "return" в конце функции приводит к замедлению работы IE в 20 раз (!), а подстановка в любое место кода пустого вызова "true" замедляет IE в 19 раз (!). Opera, Chrome и Firefox также были протестированы на предмет выборочной оптимизации тестов, но изменение кода SunSpider для данных браузеров не привело к изменению скорости прохождения теста.

Дополнение: представители Microsoft прокомментировали ситуацию тем, что в новой тестовой версии IE включена начальная поддержка нового механизма оптимизации, который пока нигде не применяется, но в течение нескольких недель будет адаптирован для ускорения реальных сайтов. Невероятное ускорение прохождения теста SunSpider объясняется тем, что в нем выполняются интенсивные типовые цикличные операции, после чего результаты данных вычислений в дальнейшем нигде не используются. Подобное синтетическое поведение теста как раз подпадает под действие нового оптимизатора, который как раз нацелен на удаление подобных вычислений, не приводящих к результату. О причинах сведения оптимизации на нет после добавления несущественных изменений в код SunSpider ничего не сказано.

Ц не мой


Комментарии? Опровержения?
avalon 1.0rc3 rev 306, zlib 1.2.3 (17.12.2009 01:06:14 MSK +03:00)(Qt 4.6.0)
Matrix has you...
Re: ie уже обложили или я все пропустил?
От: MxMsk Португалия  
Дата: 20.11.10 23:18
Оценка: 1 (1)
Здравствуйте, Sheridan, Вы писали:

S>Комментарии? Опровержения?

Вроде уже прокомментировали. Ситуация такова, что каждый воспринимает ее, как больше нравится. Лично я скачал бету и попробую посидеть на ней с недельку другую, а уже потом решу, лучше она Хрома или нет. Что там показывает SunSpider, мне пофигу.
Re[2]: ie уже обложили или я все пропустил?
От: Sheridan Россия  
Дата: 20.11.10 23:44
Оценка:
Приветствую, MxMsk, вы писали:

MM> Вроде уже прокомментировали. Ситуация такова, что каждый воспринимает ее, как больше нравится. Лично я скачал бету и попробую посидеть на ней с недельку другую, а уже потом решу, лучше она Хрома или нет. Что там показывает SunSpider, мне пофигу.


Что показывает спайдер — мне тоже пофигу. Но вот что вскрывает сама ситуация — уже веселее
avalon 1.0rc3 rev 306, zlib 1.2.3 (17.12.2009 01:06:14 MSK +03:00)(Qt 4.6.0)
Matrix has you...
Re: ie уже обложили или я все пропустил?
От: Antikrot  
Дата: 20.11.10 23:48
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Комментарии?

— статья (или перевод?) ламерская
— тест говно (очевидно! мы даже тут в КСВ такие тесты на плюсах обсуждали, когда получалось "время — 0.0с"), несмываемый позор тестописателям
— оптимизатор в IE9 ещё развивать и развивать. но направление правильное, авось тесты научатся нормальные писать.
Re[3]: ie уже обложили или я все пропустил?
От: Antikrot  
Дата: 20.11.10 23:49
Оценка: +5
Здравствуйте, Sheridan, Вы писали:

MM>> Вроде уже прокомментировали. Ситуация такова, что каждый воспринимает ее, как больше нравится. Лично я скачал бету и попробую посидеть на ней с недельку другую, а уже потом решу, лучше она Хрома или нет. Что там показывает SunSpider, мне пофигу.

S>Что показывает спайдер — мне тоже пофигу. Но вот что вскрывает сама ситуация — уже веселее
статья вскрывает исключительно никчёмность очень популярного теста
Re[2]: ie уже обложили или я все пропустил?
От: Sheridan Россия  
Дата: 21.11.10 00:06
Оценка:
Приветствую, Antikrot, вы писали:

A> — оптимизатор в IE9 ещё развивать и развивать. но направление правильное, авось тесты научатся нормальные писать.


Мне показалось или ты хотел сказать, что хаки применять (читай: обманывать) — хорошо?
avalon 1.0rc3 rev 306, zlib 1.2.3 (17.12.2009 01:06:14 MSK +03:00)(Qt 4.6.0)
Matrix has you...
Re[3]: ie уже обложили или я все пропустил?
От: Antikrot  
Дата: 21.11.10 00:07
Оценка: +5 :))) :)
Здравствуйте, Sheridan, Вы писали:

A>> — оптимизатор в IE9 ещё развивать и развивать. но направление правильное, авось тесты научатся нормальные писать.

S>Мне показалось или ты хотел сказать, что хаки применять (читай: обманывать) — хорошо?
мне показалось, или ты разбираешься в оптимизации еще меньше Дворкина?
Re: ie уже обложили или я все пропустил?
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 21.11.10 00:11
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Комментарии? Опровержения?


Вас это беспокоит? Его движок летает "как трофейный мессершмидт" (с) по сравнению с прошлыми версиями. С V8 конечно и рядом не стоял, но прорыв налицо. А то, что его распознаватель сбить легко, так давеча была статья-перевод на хабре, описывающая задачу распознавания метрвого кода и ее реализацию в IE. Оттуда даже линуксоиду будет понятно, что сия весьма нетривиально и на любой чих будет сбиваться, хоть то тест, хоть продуктивный код.

И если оптимизатор IE был заточен именно на тесты, какого ж хрена он тогда на нормальных скриптах так летает? Попутался и за тесты принял?
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[2]: ie уже обложили или я все пропустил?
От: Antikrot  
Дата: 21.11.10 00:16
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Вас это беспокоит? Его движок летает "как трофейный мессершмидт" (с) по сравнению с прошлыми версиями. С V8 конечно и рядом не стоял, но прорыв налицо. А то, что его распознаватель сбить легко, так давеча была статья-перевод на хабре, описывающая задачу распознавания метрвого кода и ее реализацию в IE.

а можно ссылку на реализацию? я читал на хабре что-то, но не помню что там была описана конкретная реализация в IE9 — они сами там в MS что-ли описали?

KV>Оттуда даже линуксоиду будет понятно, что сия весьма нетривиально и на любой чих будет сбиваться, хоть то тест, хоть продуктивный код.

ну не на любой чих, а на вполне конкретные безотносительно реализации, я могу предположить почему он сбился именно на описанные в первом сообщении чихи (и кстати, абсолютно уверен, что хоть они и выглядят безобидно, выбраны не случайно и "со знанием дела")
Re[4]: ie уже обложили или я все пропустил?
От: Sheridan Россия  
Дата: 21.11.10 00:17
Оценка:
Приветствую, Antikrot, вы писали:

A> мне показалось, или ты разбираешься в оптимизации еще меньше Дворкина?

Я слушаю.
avalon 1.0rc3 rev 306, zlib 1.2.3 (17.12.2009 01:06:14 MSK +03:00)(Qt 4.6.0)
Matrix has you...
Re[5]: ie уже обложили или я все пропустил?
От: Antikrot  
Дата: 21.11.10 00:19
Оценка:
Здравствуйте, Sheridan, Вы писали:

A>> мне показалось, или ты разбираешься в оптимизации еще меньше Дворкина?

S>Я слушаю.
я повторяю — тест кривой, DCE не является хаком — это общеизвестная оптимизация
Re[6]: ie уже обложили или я все пропустил?
От: Sheridan Россия  
Дата: 21.11.10 00:57
Оценка:
Приветствую, Antikrot, вы писали:


A> я повторяю — тест кривой, DCE не является хаком — это общеизвестная оптимизация

Гм... Тогда интересно — отчего при небольшом изменении кода внезапно оптимизация кудато пропадает?
avalon 1.0rc3 rev 306, zlib 1.2.3 (17.12.2009 01:06:14 MSK +03:00)(Qt 4.6.0)
Matrix has you...
Re[7]: ie уже обложили или я все пропустил?
От: Antikrot  
Дата: 21.11.10 01:07
Оценка: 1 (1)
Здравствуйте, Sheridan, Вы писали:

A>> я повторяю — тест кривой, DCE не является хаком — это общеизвестная оптимизация

S>Гм... Тогда интересно — отчего при небольшом изменении кода внезапно оптимизация кудато пропадает?
особенность реализации (возможно самого DCE, возможно каких-то других потрохов JS в IE9) — я надеюсь, Кочетков поделится ссылочкой — не поделится, так я попытаюсь высказать свои неподкреплённые предположения
оптимизация-то внешне нехитрая — код "мёртвый" — выкидываем, не мёртвый — код отрабатывает. дьявол в принятии решения о том, является ли этот код мёртвым. кода там много (по времени выполнения) выкидывается (или не выкидывается) — вот и эффект "внезапности". а про изменения я уже сказал — там не случайные изменения выбраны, наверняка автор имел опыт тестирования какого-либо оптимизатора и знал, "куда бить".
Re[3]: ie уже обложили или я все пропустил?
От: midcyber
Дата: 21.11.10 05:07
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Мне показалось или ты хотел сказать, что хаки применять (читай: обманывать) — хорошо?


Firefox использовал хак, чтобы показать лучший результат в тестах Acid
Re: ie уже обложили или я все пропустил?
От: Ларик Россия  
Дата: 21.11.10 05:15
Оценка:
Здравствуйте, Sheridan, Вы писали:

А может это не IE проблемы, а тех кто криво пишет. Я конечно не знаю как там с открытой документацией, но если сказать что писать нужно так, а мегаумный програмист написал так что все тормозит и на вопросы отвечает — а нефиг, используйте "Х"-браузер, то это проблемы его, програмиста?
ЗЫ Не пытаюсь защищать ИЕ просто постановка странная.
Самая большая в мире ложь — "Я прочел и согласен с условиями пользовательского соглашения".
Re: ie уже обложили или я все пропустил?
От: frogkiller Россия  
Дата: 21.11.10 08:32
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Комментарии?


А чего, там комментировать, всё ж понятно: при настройке эвристики оптимизатора ориентировались не на миллион случайных сайтов, а на определённые тесты. И таки да, успешно сумели их оптимизировать — уже немалый прогресс.
А что обобщили результаты теста на всё остальное и стали делать поспешные выводы — ну так это, скорее, вина их пиарщиков и менеджеров, а не слабость технологии.

ЗЫ. Субъективно движок IE9 существенно уступает по скорости как Хрому, так и Опере, что бы тут не говорили.
Курица — это инструмент, с помощью которого одно яйцо производит другие.
Re[2]: ie уже обложили или я все пропустил?
От: MxMsk Португалия  
Дата: 21.11.10 08:51
Оценка: 1 (1) +1
Здравствуйте, frogkiller, Вы писали:

F>ЗЫ. Субъективно движок IE9 существенно уступает по скорости как Хрому, так и Опере, что бы тут не говорили.

Мне пока кажется, что IE9 уступает не столько движком, сколько отзывчивостью интерфейса. Медленее работают такие функции, как "Открыть в новой вкладке". В Хроме зажимаешь Ctrl и пошел по ссылкам щелкать, в IE9 же на третьей-четвертой ссылке начинаются тормоза GUI, приходится немного ждать. Такое ощущение, что это просто какое-то хроническое заболевание IE.
Re[3]: ie уже обложили или я все пропустил?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 21.11.10 09:19
Оценка: :)
Здравствуйте, Sheridan, Вы писали:

MM>> Вроде уже прокомментировали. Ситуация такова, что каждый воспринимает ее, как больше нравится. Лично я скачал бету и попробую посидеть на ней с недельку другую, а уже потом решу, лучше она Хрома или нет. Что там показывает SunSpider, мне пофигу.


S>Что показывает спайдер — мне тоже пофигу. Но вот что вскрывает сама ситуация — уже веселее


И что вскрыла ситуация ? Что в бете оптимизатор никакой и справляется пока только с синтетикой ?

Ну так это бета.
Re[3]: ie уже обложили или я все пропустил?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 21.11.10 09:22
Оценка:
Здравствуйте, Sheridan, Вы писали:

A>> — оптимизатор в IE9 ещё развивать и развивать. но направление правильное, авось тесты научатся нормальные писать.


S>Мне показалось или ты хотел сказать, что хаки применять (читай: обманывать) — хорошо?


Где ты углядел обман ?

Ты хотел что бы за полгода до релиза челы выпустили бету в которой будет все как в релизе а то и лучше ?
Re[7]: ie уже обложили или я все пропустил?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 21.11.10 09:27
Оценка:
Здравствуйте, Sheridan, Вы писали:

A>> я повторяю — тест кривой, DCE не является хаком — это общеизвестная оптимизация

S>Гм... Тогда интересно — отчего при небольшом изменении кода внезапно оптимизация кудато пропадает?

Потому что бета.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.