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>Гм... Тогда интересно — отчего при небольшом изменении кода внезапно оптимизация кудато пропадает?

Потому что бета.
Re[4]: ie уже обложили или я все пропустил?
От: aloch Россия  
Дата: 21.11.10 09:51
Оценка:
Здравствуйте, Ikemefula, Вы писали:


I>Ну так это бета.


Это даже не бета — это тестовая версия. В бете этого нет.


Re[4]: ie уже обложили или я все пропустил?
От: Sheridan Россия  
Дата: 21.11.10 10:00
Оценка:
Приветствую, midcyber, вы писали:

m> Firefox использовал хак, чтобы показать лучший результат в тестах Acid

Сволочи. Дальше что?
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 уже обложили или я все пропустил?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 21.11.10 10:11
Оценка:
Здравствуйте, aloch, Вы писали:

I>>Ну так это бета.


A>Это даже не бета — это тестовая версия. В бете этого нет.


IE9 Beta не бета а тестовая версия ?
ок
От: Sheridan Россия  
Дата: 21.11.10 10:12
Оценка:
Приветствую, aloch, вы писали:

a> I>Ну так это бета.

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 уже обложили или я все пропустил?
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 21.11.10 10:56
Оценка: :)
Здравствуйте, Sheridan, Вы писали:

S>Приветствую, midcyber, вы писали:


m>> Firefox использовал хак, чтобы показать лучший результат в тестах Acid

S>Сволочи. Дальше что?

А хром не использовал. Правда милашки?
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>

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

A>Здравствуйте, kochetkov.vladimir, Вы писали:


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

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

Я неправильно выразился. Там были высказаны предположения о реализации. http://habrahabr.ru/blogs/browsers/108515/ вот, в общем и по ссылкам.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[6]: ie уже обложили или я все пропустил?
От: Sheridan Россия  
Дата: 21.11.10 11:00
Оценка:
Приветствую, kochetkov.vladimir, вы писали:

Прямо говори, чего хотел сказать то?
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 уже обложили или я все пропустил?
От: frogkiller Россия  
Дата: 21.11.10 11:31
Оценка:
Здравствуйте, MxMsk, Вы писали:

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

MM>Мне пока кажется, что IE9 уступает не столько движком, сколько отзывчивостью интерфейса. Медленее работают такие функции, как "Открыть в новой вкладке". В Хроме зажимаешь Ctrl и пошел по ссылкам щелкать, в IE9 же на третьей-четвертой ссылке начинаются тормоза GUI, приходится немного ждать. Такое ощущение, что это просто какое-то хроническое заболевание IE.

Про интерфейс я ничего не могу сказать, у меня он после первой же перезагрузки стал вылетать с ошибкой — и я его успешно похоронил для себя. Но перед этим я всё-таки прогнал все доступные мне браузеры вот на такой штуке: http://js1k.com/demo/195 . Так можно сравнить чистый движок на мат. операциях и отрисовке. Я уже тут как-то писал о результатах — IE9 был на уровне FF, но они оба существенно уступали Опере, не говоря уже о Хроме, который просто летал.
Курица — это инструмент, с помощью которого одно яйцо производит другие.
Re[4]: ie уже обложили или я все пропустил?
От: frogkiller Россия  
Дата: 21.11.10 11:57
Оценка:
Здравствуйте, frogkiller, Вы писали:

F>Но перед этим я всё-таки прогнал все доступные мне браузеры вот на такой штуке: http://js1k.com/demo/195 . Так можно сравнить чистый движок на мат. операциях и отрисовке. Я уже тут как-то писал о результатах — IE9 был на уровне FF, но они оба существенно уступали Опере, не говоря уже о Хроме, который просто летал.


Да, разумеется, это было до всей этой истории с оптимизацией мёртвого кода.

Кстати, сейчас подумалось: то, что эти товарищи оптиммизировали опреацию '>', но не оптимизировали '<=', говорит, скорее о том, что делали они это не вручную (человек вряд ли бы забыл это сделать), а с помощью какого-то искухсственого интеллекта, которому скормили движок и набор тестов. В тестах просто не было некоторых операций, поэтому они остались неохваченными. Если это так, то скоро ему скормят побольше разных обучающих примеров, и следует ожидать ускорения и на реальных задачах, а не только в синтетике. Понятно, что результаты будут не столь впечатляющими, но по мне это всё равно хорошо — т.к. усилит конкуренцию.
Курица — это инструмент, с помощью которого одно яйцо производит другие.
Re[3]: ie уже обложили или я все пропустил?
От: frogkiller Россия  
Дата: 21.11.10 12:07
Оценка:
Здравствуйте, MxMsk, Вы писали:

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

MM>Мне пока кажется, что IE9 уступает не столько движком, сколько отзывчивостью интерфейса. Медленее работают такие функции, как "Открыть в новой вкладке". В Хроме зажимаешь Ctrl и пошел по ссылкам щелкать, в IE9 же на третьей-четвертой ссылке начинаются тормоза GUI, приходится немного ждать. Такое ощущение, что это просто какое-то хроническое заболевание IE.

Предположу ещё, что тормоза при открытии нескольких вкладок обусловлены не очень удачной политикой закачки страниц (вероятно, используется очень мало одновременных соединений). А ещё тем, что там шарится память между страницами — тут гораздо более вероятно повиснуть на каких-нибудь блокировках, чем в случае Хрома, который все скрипты транслирует независимо. Наверняка IE будет подтормаживать на открытии нескольких одновременных страниц, если они все используют, например, jquery, но с разными плагинами.
Курица — это инструмент, с помощью которого одно яйцо производит другие.
Re[2]: ie уже обложили или я все пропустил?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 21.11.10 13:13
Оценка:
Здравствуйте, MxMsk, Вы писали:

MM>Здравствуйте, Sheridan, Вы писали:


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

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

Мне тоже всегда была пофигу браузерная писькометрия. Обычно в реальной работе с браузером узнаешь о нем (и зачастую его авторах) гораздо больше, чем смотря результаты тестов.

IE9 Beta пока не блещет производительностью, заметно уступая хрому, но рвет оперу и ФФ. А вот вкладки там как были кривые, так и остались.
Re[6]: ie уже обложили или я все пропустил?
От: aloch Россия  
Дата: 21.11.10 13:31
Оценка:
Здравствуйте, Ikemefula, Вы писали:


I>IE9 Beta не бета а тестовая версия ?


см. в начальном сообщении — "... в последней тестовой версии была реализована техника оптимизации..."

У IE9 есть бета тетовая версия — http://ie.microsoft.com/testdrive/info/downloads/Default.html

Это разные программы (ну почти).

Со времени выхода беты вышло (по моему) две тестовых версии, до выхода беты их было шлуки три или четыре.


Re[7]: ie уже обложили или я все пропустил?
От: aloch Россия  
Дата: 21.11.10 13:33
Оценка:
Здравствуйте, aloch, Вы писали:

> бета тетовая версия


бета и тетовая версия


Re[2]: ie уже обложили или я все пропустил?
От: iHateLogins  
Дата: 21.11.10 13:50
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

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


Прикол в том, что IE9 уже быстрее хрома Могут ведь, когда захотят!
Re[7]: ie уже обложили или я все пропустил?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 21.11.10 15:05
Оценка:
Здравствуйте, aloch, Вы писали:


A>У IE9 есть бета тетовая версия — http://ie.microsoft.com/testdrive/info/downloads/Default.html


A>Это разные программы (ну почти).


A>Со времени выхода беты вышло (по моему) две тестовых версии, до выхода беты их было шлуки три или четыре.


Ага, понял, уже подпаливаю тесты
Re[4]: ie уже обложили или я все пропустил?
От: Antikrot  
Дата: 21.11.10 16:30
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

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

A>>а можно ссылку на реализацию? я читал на хабре что-то, но не помню что там была описана конкретная реализация в IE9 — они сами там в MS что-ли описали?
KV>Я неправильно выразился. Там были высказаны предположения о реализации. http://habrahabr.ru/blogs/browsers/108515/ вот, в общем и по ссылкам.
хм, интересно, не нашёл там *ни слова* про реализацию ну то есть там написано *что* он делает, но не написано *как*.
впрочем, статейка не отличается точностью:

you can only use the operators -, +, ++, <<, +=, -=, and if(<)

при том что в случае sunspider были выкинуты if(>) и for(<), а в примерах в блоге MS используются while(i--) и if(!=)
всё это наводит на размышление что "Выбранное для оптимизации множество операций, похоже, совпадает с тем, которое используется в математических тестах в SunSpider." не есть правда

единственно что я там интересного нашёл — показана говнистость языков с динамической типизацией, впрочем на mozilla.com автора хорошо попинали на тему глобального анализа...

а вообще прикольно получилось — MS заставила мозилловцев искать у себя баги на бета-этапе
Re[2]: ie уже обложили или я все пропустил?
От: Antikrot  
Дата: 21.11.10 16:41
Оценка:
Здравствуйте, frogkiller, Вы писали:

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

по идее, бенчмарк преставляет собой набор кусков реальных приложений, так что его использование "при настройке эвристики оптимизатора" очень даже оправдано (кстати, что ты понимаешь под "эвристическим оптимизатором", и допустимо ли использование эвристики в случае DCE?)

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

да не, это вина не их пиарщиков и менеджеров, а тех, кто судит (и кто придумал судить) о программе исключительно по бенчмаркам, то есть, в том числе это и вина пользователей
Re[5]: ie уже обложили или я все пропустил?
От: Antikrot  
Дата: 21.11.10 16:43
Оценка:
Здравствуйте, frogkiller, Вы писали:

F>Кстати, сейчас подумалось: то, что эти товарищи оптиммизировали опреацию '>', но не оптимизировали '<=', говорит, скорее о том, что делали они это не вручную (человек вряд ли бы забыл это сделать), а с помощью какого-то искухсственого интеллекта, которому скормили движок и набор тестов.

а мне подумалось ровно наоборот
Re[3]: ie уже обложили или я все пропустил?
От: frogkiller Россия  
Дата: 21.11.10 17:10
Оценка:
Здравствуйте, Antikrot, Вы писали:

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

A>по идее, бенчмарк преставляет собой набор кусков реальных приложений, так что его использование "при настройке эвристики оптимизатора" очень даже оправдано (кстати, что ты понимаешь под "эвристическим оптимизатором", и допустимо ли использование эвристики в случае DCE?)

Бенчмарк — это всё-таки довольно небольшой набор тестов, каждый из которых покрывает по возможности наибольший кусок функциональности. Поэтому неудивительно, что в нём не было операции >=.
А под настройкой эвристики я подразумеваю подбор разных констант, типа там на какую глубину функции раскрывать, какие циклы разматывать, какие куски кода заменять на эквивалентные. Ну вот такой автомат перебирает разные варианты, и смотрит, в каком случае будет наибольший выигрыш по времени по сумме тестов при сохранении функциональности. Понятно, что перебрать все варианты невозможно, поэтому придумывают какие-то стратегии, чтобы уменьшить число тестов. Вероятно, так оптимизатор и посчитал бесперспективным раскрутку веток с некоторыми операциями

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

A>да не, это вина не их пиарщиков и менеджеров, а тех, кто судит (и кто придумал судить) о программе исключительно по бенчмаркам, то есть, в том числе это и вина пользователей

Курица — это инструмент, с помощью которого одно яйцо производит другие.
Re[4]: ie уже обложили или я все пропустил?
От: Antikrot  
Дата: 21.11.10 18:35
Оценка:
Здравствуйте, frogkiller, Вы писали:

F>Бенчмарк — это всё-таки довольно небольшой набор тестов, каждый из которых покрывает по возможности наибольший кусок функциональности. Поэтому неудивительно, что в нём не было операции >=.

F>А под настройкой эвристики я подразумеваю подбор разных констант, типа там на какую глубину функции раскрывать, какие циклы разматывать, какие куски кода заменять на эквивалентные. Ну вот такой автомат перебирает разные варианты, и смотрит, в каком случае будет наибольший выигрыш по времени по сумме тестов при сохранении функциональности.
в данном-то случае "при сохранении функциональности" довольно скользкая формулировка — ведь речь о том, чтобы выкинуть нафиг часть(ненужную) функциональности. причём без права на ошибку в плане определения ненужности.
Re: ie уже обложили или я все пропустил?
От: alzt  
Дата: 21.11.10 19:23
Оценка:
Здравствуйте, Sheridan, Вы писали:

При оптимизации стараются улучшить среднее время работы программы. Очень часто приходится жертвовать производительностью на редких путях выполнения программы для ускорения на путях, которые выполняются часто.

S>вместо "for (Step = 0; Step < 12; Step++)" поставить "for (Step = 12; Step > 0; Step--)").


1й вариант чаще встречается. Второй — довольно редкий случай.

S>а подстановка в любое место кода пустого вызова "true" замедляет IE в 19 раз (!).


Это вообще странный случай. Зачем так делать? Разработчики посчитали, что подобное в реальной жизни встречается не так часто. Так что результатом оптимизации могло быть замедление программы на таком коде.
Re[2]: ie уже обложили или я все пропустил?
От: Antikrot  
Дата: 21.11.10 20:20
Оценка:
Здравствуйте, alzt, Вы писали:

A>При оптимизации стараются улучшить среднее время работы программы. Очень часто приходится жертвовать производительностью на редких путях выполнения программы для ускорения на путях, которые выполняются часто.

S>>вместо "for (Step = 0; Step < 12; Step++)" поставить "for (Step = 12; Step > 0; Step--)").
A>1й вариант чаще встречается. Второй — довольно редкий случай.
я вообще подозреваю оптимизатор там просто работает с циклами вида for(i' = 0; i' < ub; ++i') сделают приведение "к нормальному виду" — и для второго случая заработает. интереснее было бы сделать Step < 100500 (чтобы убрать вполне возможный для <12 complete unrolling), чтобы проверить работает ли там DCE с циклами вообще

S>>а подстановка в любое место кода пустого вызова "true" замедляет IE в 19 раз (!).

A>Это вообще странный случай. Зачем так делать? Разработчики посчитали, что подобное в реальной жизни встречается не так часто. Так что результатом оптимизации могло быть замедление программы на таком коде.
а что реально делает true; в JS? если совсем ничего, так откуда там мб замедление? скорее всего они его просто не учли пока, либо таки эта запись влияет на результат (я js не знаю)
Re[3]: ie уже обложили или я все пропустил?
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 25.11.10 09:00
Оценка:
Здравствуйте, iHateLogins, Вы писали:

HL>Здравствуйте, kochetkov.vladimir, Вы писали:


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


HL>Прикол в том, что IE9 уже быстрее хрома Могут ведь, когда захотят!


... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.