URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 72642
[ Назад ]

Исходное сообщение
"Разработчики Internet Explorer 9 уличены в накрутке результа..."

Отправлено opennews , 20-Ноя-10 13:36 
Значительный прорыв производительности последней тестовой версии 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 ничего не сказано.

URL: http://digitizor.com/2010/11/17/internet-explorer-9-caught-c.../
Новость: https://www.opennet.ru/opennews/art.shtml?num=28717


Содержание

Сообщения в этом обсуждении
"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено ананим , 20-Ноя-10 13:36 
нравится мне эта компания! :D

"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено User294 , 20-Ноя-10 18:11 
Им давно пора переименоваться в Lies & cheats, ltd :)

"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено twilight , 21-Ноя-10 08:50 
есть и более "понятные" названия - ACME ltd, например.

"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено zazik , 22-Ноя-10 10:16 
> есть и более "понятные" названия - ACME ltd, например.

ООО "Вектор"?


"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено Michael Shigorin , 22-Янв-11 00:45 
Не, Рога и Копыта, инкорытейтед.

"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено Аноним , 20-Ноя-10 13:42 
они такие жалкие. это даже не смешно

"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено Аноним , 20-Ноя-10 13:45 
Срам какой!
attached: facepalm.mkv

"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено Анонимус_б6 , 20-Ноя-10 13:47 
буквально два дня назад читал высер обного из руководителей МС о том, что подгонка браузеров под прохождение определенных тестов есть УГ (с тонким намеком на хром) и что для ИЕ9 будут заниматься ТОЛЬКО улучшением производительности для реальных сайтов. мс такие мс, убогие они да, но богатые)

"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено Slavaz , 20-Ноя-10 21:43 
> буквально два дня назад читал высер обного из руководителей МС о том,
> что подгонка браузеров под прохождение определенных тестов есть УГ (с тонким
> намеком на хром) и что для ИЕ9 будут заниматься ТОЛЬКО улучшением
> производительности для реальных сайтов. мс такие мс, убогие они да, но
> богатые)

Господа, вы уж определитесь: или MS, или мс... а то я чёйта каждый раз нервно вздрагиваю...


"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено Veter , 20-Ноя-10 13:49 
Микрософт нашел для себя новое призвание и составил конкуренцию Петросяну :-) Пусть дальше отжигают!

"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено Инкогнито , 20-Ноя-10 14:02 
Неужели у них уже ВСЕ так плохо.

"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено Инкогнито , 20-Ноя-10 14:04 
Они же фактически расписались в собственном бессилии. Ничего с этим бегемотом поделать уже не могут.

"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено Гога , 20-Ноя-10 14:24 
> Они же фактически расписались в собственном бессилии. Ничего с этим бегемотом поделать
> уже не могут.

Могут. Например перевести на движок Gecko или Webkit :)


"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено User294 , 20-Ноя-10 18:14 
> Могут. Например перевести на движок Gecko или Webkit :)

И чем он будет лучше оригинальных мозиллы и хрома? :)


"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено spanasik , 21-Ноя-10 10:46 
Не могут. IE - это помимо всего прочего ещё и COM-библиотека, поэтому куча приложений зависит от деталей его внутренней реализации. Написать враппер вокрут webkit можно, но он не будет пвторять функциональность на 100%, а совместимость для M$ имеет больший приоритет, чем производительность.

"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено анонимус , 20-Ноя-10 14:10 
Зачем, зачем делать ТАКИЕ глупости?!!

Ведь эффект от (совершенно неизбежного) разоблачения жульничества многократно превысит любой пиар от "тестов"!

Неужелти у них уже все нормальные люди разбежались и остался один шлак?


"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено ананим , 20-Ноя-10 14:47 
там у них столько несовместимых ни с чем технологий, которые кстати уже даже идут в разрез с их же новыми, что...
ие6 многие вынуждены ещё держать, т.к. в своё время завязались на "инновации" от мс.

"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено User294 , 20-Ноя-10 18:22 
> Неужелти у них уже все нормальные люди разбежались и остался один шлак?

Вы это только сейчас заметили?

ЗЫ а еще google://ie7 team photo ;).


"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено sfstudio , 20-Ноя-10 19:18 
IE9 Team круче http://www.google.ru/imglanding?q=ie9%20team%20pho...

Просто рыдаль...


"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено Аноним , 21-Ноя-10 19:15 
такие люди не могут программировать

"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено Аноним , 22-Ноя-10 09:57 
Ты тоже заметил, что внизу справа до 7 посчитать не смогла?

"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено dmj , 20-Ноя-10 14:19 
Ну, допустим, опубликованные диффы с добавленными бесполезными "true;" и "return;" действительно доказывают читерство. Но пример из этой статьи с
>> вместо "if (TargetAngle > CurrAngle)" написать "if (TargetAngle <= CurrAngle)"

я что-то не понял. С каких пор эти два выражения могут считаться логически идентичными?


"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено Аноним , 20-Ноя-10 14:24 
Но замедление в 20 раз при замене < на <= явно указывает на жульничество.

"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено Аноним , 20-Ноя-10 15:21 
Скорее всего ошиблись, и if (TargetAngle > CurrAngle) заменяли на if (CurrAngle <= TargetAngle)
Эти выражения вроде как тождественны )

"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено anonymous from da LOR , 20-Ноя-10 17:26 
Неа, не тождественны.

"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено Аноним , 20-Ноя-10 17:37 
> Неа, не тождественны.

На результата вычисления в цикле замена не влияет, наоборот замена проверки делает цикл бессмысленным, так как условие при "<=" заведомо _никогда_ не выполняется, а при > выполняется определенное число итераций. Оптимизатор IE игнорирует ">", но полностью выполняет все итерации для заведомо бессмысленного "<=".

Вот кусок кода из того теста:

    TargetAngle = FIXED(28.027);
    CurrAngle = 0;
    for (Step = 0; Step < 12; Step++) {
       var NewX;
       if (TargetAngle > CurrAngle) {
               NewX = X - (Y >> Step);
               X = NewX;
               CurrAngle -= Angles[Step];
           }
           Step++;
       }
   }


"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено Lexa3110 , 20-Ноя-10 14:23 
И почему меня это не удивляет? :)

"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено User294 , 20-Ноя-10 18:23 
> И почему меня это не удивляет? :)

Потому что не в первый раз.


"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено mirya , 20-Ноя-10 14:25 
Они не идентичны, но весь noop блок тестового кода, в который в том числе входит эта проверка, должен был быть вырезан оптимизатором, работай их "Dead Code Elimination" как задумано, независимо от того, какая там проверка.

"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено dmj , 20-Ноя-10 14:28 
Спасибо, дошло.

"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено Vernat , 20-Ноя-10 14:26 
грустно всё это

"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено анонимус , 20-Ноя-10 14:28 
Нисколько не грустно - весьма радостно!
Побольше m$ таких провалов!

"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено Трухин_Юрий_Владимирович , 20-Ноя-10 15:05 
а в чем провал? вы целиком читаете?

"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено анонимус , 20-Ноя-10 15:25 
Поймали на жульничестве m$-компашку!

"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено Аноним , 20-Ноя-10 15:51 
> Поймали на жульничестве m$-компашку!

тоже мне новость. жульничество везде, где только можно - бизнес модель m$.


"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено NMorozov , 20-Ноя-10 21:29 
И что тесты прочитает много больше людей, чем это разоблачение

"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено szh , 20-Ноя-10 15:57 
> вы целиком читаете?

Да. И даже больше.

> а в чем провал?

Глючащая оптимизация работаютщая быстро в тесте, и неправильно обрабатывающая javascript в других случаях.

http://blog.mozilla.com/rob-sayre/2010/11/17/dead-code-elimi.../


"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено zazik , 20-Ноя-10 14:32 
Цель оправдывает средства. Акулы капитализма как они есть.

"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено Square , 20-Ноя-10 14:38 
Вообще после того как эту новость разобрали по косточкам и обсудили как и почему так происходит - появление ее тут  в таком дико красноглазом пересказе - просто умиляет :)))

Вот тут объясняется как это произошло:
http://blogs.msdn.com/b/ie/archive/2010/11/17/html5-and-real...

Вот тут - русский перевод (частично):
http://habrahabr.ru/blogs/browsers/108355/

Вот тут:
http://habrahabr.ru/blogs/browsers/108313/
Обсуждается как и почему это произошло


"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено pavlinux , 20-Ноя-10 14:58 
> Обсуждается как и почему это произошло

Мы добиваемся не правды, а эффекта. :)



"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено Square , 20-Ноя-10 15:04 
>> Обсуждается как и почему это произошло
> Мы добиваемся не правды, а эффекта. :)

Да это то понятно...увидели то что хотели увидеть..


"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено Трухин_Юрий_Владимирович , 20-Ноя-10 15:41 
хоть бы заголовок новости поправили. нет же

"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено мимотут , 20-Ноя-10 15:51 
Заголовок верно написан. Данный dead code elimination работает только для операций в одной функции из теста sunspider и в реальной жизни не имеет практического применения. Самый настоящий мухлёж.

Как только в тест добавят легкий side effect, IE9 с первой позиции переместится в конец, где ему и место.



"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено анонимус , 20-Ноя-10 15:24 
> Обсуждается как и почему это произошло

Хм, вообще-то там обсуждается "обман при прохождении SunSpider JS" ;-))


"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено Трухин_Юрий_Владимирович , 20-Ноя-10 15:39 
ага, мне всегда забавно читать такие "честные и правдивые" новости тут

"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено pavlinux , 20-Ноя-10 15:45 
клин, клином вышибают. И ничего личного, просто война. :)

"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено fyjybv , 20-Ноя-10 23:21 
Павлинукс, тут ты не прав. Опен сорс таким гнилым как майкрософт никогда не был и не будет.

"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено Аноним , 20-Ноя-10 23:27 
Он уже стал гнилым. ибо сообстветво GNU держится только на ненависти к MS.
убери MS и станет вопрос как жить.. а по другому они не умеют - будут экстренно искать врага.

"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено pavlinux , 20-Ноя-10 23:54 
> а по другому они не умеют - будут экстренно искать врага.

Тут иная война, методом естественного отбора, и никакого гуманизма. :)


  


"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено анон , 21-Ноя-10 02:03 
> Он уже стал гнилым. ибо сообстветво GNU держится только на ненависти к MS.
> убери MS и станет вопрос как жить.. а по другому они не
> умеют - будут экстренно искать врага

Будут воевать с Эплом или Ораклом. А после того, как "революция" начнет пожирать своих детей, полетят головы с верхушки. И выживет только самый умный и хитрый



"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено Аноним , 21-Ноя-10 19:17 
> Он уже стал гнилым. ибо сообстветво GNU держится только на ненависти к
> MS.
> убери MS и станет вопрос как жить.. а по другому они не
> умеют - будут экстренно искать врага.

Это не правда, Ричард показывает нам путь истинный!


"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено Аноним , 20-Ноя-10 15:52 
> ага, мне всегда забавно читать такие "честные и правдивые" новости тут

тогда почему при добавлении лишней переменной, несущественном для логики изменении условии, изменении цикла и добавлении nop-ов оптимизатор сразу перестает считать код мертвым  ???? Ведь как не использовались результаты, так они и не используются.


"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено arachnid , 20-Ноя-10 17:02 
вообще во всех трех обсуждениях пишут тоже самое - что скорее всего это специальная оптимизация под тест. или Вы так - лишь бы что сказать?

"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено User294 , 20-Ноя-10 23:40 
> ага, мне всегда забавно читать такие "честные и правдивые" новости тут

Ну так нефиг оптимизить только под тесты, тогда и читать коменты людей о том что они думают о такой "оптимизации" не придется. Думаете, SunSpider единственный тест в мире? Индусы из команды надеятся что такая халтура как оптимизация под конкретный тест не всплывет? Ну да, щаззз, мечтайте. Если в одном тесте выперли вперед а в 20 других в опе - тут все и дураку понятно ;)


"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено мимотут , 20-Ноя-10 15:42 
А вот тут объясняется, что отмазка от МС это хорошая мина при плохой игре:

http://blog.mozilla.com/rob-sayre/2010/11/17/dead-code-elimi.../


"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено Аноним , 20-Ноя-10 15:58 
> Вообще после того как эту новость разобрали по косточкам и обсудили как
> и почему так происходит - появление ее тут  в таком
> дико красноглазом пересказе - просто умиляет :)))
>Вот тут объясняется как это произошло:
>http://blogs.msdn.com/b/ie/archive/2010/11/17/html5-and-real...

Первое же "Tuning the JavaScript Engine for Real world patterns" это и есть та самая подгонка эвристического характера. Dead Code Elimination - давно известные алгоритмы, если бы в данном случае была бы честная оптимизация, то проблем с производительностью при столь тривиальных изменениях кода не могло возникнуть.


"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено evgeny_t , 20-Ноя-10 18:39 
и что там обсудили ?
здесь заданы конкретные вопросы на них не получены конкретные ответы...
так что пока ms  в жопе

"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено Трухин_Юрий_Владимирович , 20-Ноя-10 20:27 
так ты еще на сайте по генту спроси по ie9 и жди ответов...

"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено user , 21-Янв-11 21:24 
По существу сказать что-нибудь можешь, или как работодатель, только глупые отмазки писать будешь?

"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено Sylvia , 20-Ноя-10 15:05 
молодцы , интересно что они еще придумают в другой раз ?
"бенчмарк" на открытие страничек MSN перед камерой и замеры по секундомеру уже был :)
На кого они расчитывают с такими методиками тестов ? Вы еще ругаете Фороникс ? Тогда , что называется, MS идет к вам!

"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено hhg , 20-Ноя-10 18:08 
в следующий раз они придумают свой единственно правильный закрытый набор тестов, а все остальные объявят ошибочными и глючными. и в этих тестах они будут белями и пушистыми, а все остальные - неудачниками.

"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено vkni , 20-Ноя-10 20:17 
> молодцы , интересно что они еще придумают в другой раз ?

Ваши любимые компиляторы gcc умеют делать подобные оптимизации с чёрт знает какой версии. Может быть просто не в таком мощном объёме.

Поэтому сама оптимизация DCE - дело прекрасное и нужное. Конечно, реализация убогая.

Почему так получилось - думаю, что просто народ, который кодировал DCE в IE, ориентировался на этот тест. И, как обычно, считал, что УМВР и ладушки :-).

А был подлог или нет со стороны МС, можно узнать только раскопав, как же аннонсировалась эта фича. Было ли это заявлено, как "термоядерное ускорение JS" или как DCE. Если как DCE, то подлога нет - просто реализовано мастером http://caricatura.ru/top/best/url/parad/oleg_docjak/6050/ . :-)

-------------------
Что надо делать -  это исправлять тест, так чтобы DCE не мешало; делать специальные тесты на DCE; исправлять DCE в IE. Я думаю, так всё и произойдёт.


"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено Аноним , 20-Ноя-10 21:02 
>> молодцы , интересно что они еще придумают в другой раз ?
> Ваши любимые компиляторы gcc умеют делать подобные оптимизации с чёрт знает какой
> версии. Может быть просто не в таком мощном объёме.

GCC умеет это делать для языка Си. В блоге мозилловцев ясно показано, почему это будет приводить к нескончаемым проблемам в JavaScript:

  function func(a, b) {
        var x;
        var i = 300;
        while (i--) {
            x = a + b; // dead store
        }
    }

Вроде цикл можно пропустить, так как очевидно, что x = a + b можно вынести вне цикла.
А теперь, но все меняется если вызвать функцию например так:

func(1, { valueOf: function() { alert("Hi Dean!"); return 2; } });


"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено vkni , 20-Ноя-10 21:15 
> GCC умеет это делать для языка Си. В блоге мозилловцев ясно показано, почему это будет приводить к нескончаемым проблемам в JavaScript:

В языке С оптимизации тоже приводят к "нескончаемым проблемам". :-( Поэтому-то они и вводятся очень осторожно - см., к примеру, чудесную монографию А. Фога - http://agner.org/optimize/optimizing_cpp.pdf

Но это не повод же совсем ничего не делать. Насколько я понимаю, IE - это первая команда, которая делает DCE. Верно?


"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено Аноним , 20-Ноя-10 21:28 
>IE - это первая команда, которая делает DCE. Верно?

Похоже они эту версию ради отмазки сочинили.
А оптимизацию под конкретные сайты Опера пыталась сделать.


"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено User294 , 21-Ноя-10 01:36 
> IE - это первая команда, которая делает DCE. Верно?

Ага, только вот избирательная оптимизация под sunspider выглядит как-то подозрительно.


"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено Vkni , 21-Ноя-10 09:29 
>> IE - это первая команда, которая делает DCE. Верно?
> Ага, только вот избирательная оптимизация под sunspider выглядит как-то подозрительно.

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

Взяли бы сначала другой тест, была бы избирательная оптимизация под него :-).

Тут же в комментариях умные товарищи говорят, что сильно неочевидно то, что DCE даст в результате больше времени, чем потратит на анализ. Поэтому разумно взять какой-нибудь модный тест и реализовать DCE "под него".

Пусть криво, но хотя бы оценить полезность DCE - точно ли время сэкономит? Или больше потратит?


"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено тоже Аноним , 21-Ноя-10 10:03 
Если оптимизация идет не от общего к частному, а наоборот - это не оптимизация, а накрутка конкретных моментов и костыли.
DCE, в частности, должен делать АНАЛИЗ кода, а не поиск знакомых шаблонов. Да еще такой топорный, что это приводит к ошибкам в похожем коде.

"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено анн , 21-Ноя-10 10:44 
>поиск знакомых шаблонов

тоже нормальная практика, особенно на регэксах


"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено pavlinux , 21-Ноя-10 00:01 
> В блоге мозилловцев ясно показано, почему это будет приводить
> к нескончаемым проблемам в JavaScript:

Ну если они себя считают умнее компилятора, тогда почему не юзают
volatile, restrict, #pragma GCC optimize ("O0"), и прочие феньки?!

>     while (i--) {
>            x = a + b; // dead store
>        }
>    }
> Вроде цикл можно пропустить, так как очевидно, что x = a + b можно вынести вне цикла.

Не всегда! Например в дривере нивиди "а" и "b", это указатели на TSC и RTC (часы) :)

> ... но все меняется если вызвать функцию например так:
> func(1, { valueOf: function() { alert("Hi Dean!"); return 2; } });

Вы язык не перепутали?

Хотя пофигу, в C оно всё равно один раз присвоится.


function func(a, b) {
        var x;
        var i = 300;
        while (i--) {
            x = a + b; // dead store
        }
  }

func(1, { valueOf: function() { alert("Hi Dean!"); return 2; } });

И будет равносильно:

x = 1;
y = (valueOf : function() { alert("Hi Dean!"); return 2; });

func(x, y);   :D


"Новый оптимизатор Internet Explorer 9 привел к завышению рез..."
Отправлено мимотут , 20-Ноя-10 15:39 
Забыли добавить, что новый оптимизатор не берёт в расчёт гибкость javascript в прототипировании и запросто приводит к багам на ровном месте.

http://blog.mozilla.com/rob-sayre/2010/11/17/dead-code-elimi.../


"Новый оптимизатор Internet Explorer 9 привел к завышению рез..."
Отправлено pavlinux , 20-Ноя-10 15:51 
Предлагаю Микрософту в эксплорире замутить "Dead Code Elimination" для всех возможных
конструкций JavaScript и в подарок, каждому установившему, дарить массив на 16Тб.



"Новый оптимизатор Internet Explorer 9 привел к завышению рез..."
Отправлено strange , 20-Ноя-10 16:26 
Я так понял, подобный код, ничего не возвращающий и далее не использующийся, возможен только на сайтах, специально его размещающих. Т.е. как раз синтетические тесты. В реальной жизни такого не увидишь. А если код сайта позволяет себя так лихо "оптимизировать", то странный какой-то код. Я не сайтостроитель, не могу судить насколько верно размышляю.

"Новый оптимизатор Internet Explorer 9 привел к завышению рез..."
Отправлено pavlinux , 20-Ноя-10 16:44 
Подобный код,
        Ничего не возвращающий
                       И далее не использующий,
Возможен только на сайтах,
                      Специально его размещающих.


Стих прям, вариации на тему Маяковского, лови плюс :)


"Новый оптимизатор Internet Explorer 9 привел к завышению рез..."
Отправлено strange , 20-Ноя-10 16:48 
да уж... сумбурно высказался, мысли в кучу не собрал :)

"Новый оптимизатор Internet Explorer 9 привел к завышению рез..."
Отправлено Damage.inc , 20-Ноя-10 16:55 
Еще как верно. Дело в том что мс девелоперов держит за человекоподобных обезьян(возможно это связано с обилием таковых в штате самой компании).

"Новый оптимизатор Internet Explorer 9 привел к завышению рез..."
Отправлено vkni , 20-Ноя-10 20:05 
> Я так понял, подобный код, ничего не возвращающий и далее не использующийся,
> возможен только на сайтах, специально его размещающих. Т.е. как раз синтетические
> тесты. В реальной жизни такого не увидишь.

Что вы, что вы.

В реальной жизни, в долгоживущих компилируемых программах такое сплошь и рядом. И DCE в С++ компиляторах присутствует с незапамятных времён. Другое дело, что компиляторные оптимизации могут вносить ошибки и оставлять вроде очевидные куски никогда невыполняемого кода.

И с С++ тестами такие проколы встречаются очень часто. Но это считается проколом теста, а отнюдь не компилятора.

Конечно, на реальных сайтах ускорения в 10 раз не будет, так на то и тесты синтетические.


"Новый оптимизатор Internet Explorer 9 привел к завышению рез..."
Отправлено Dorif , 20-Ноя-10 16:58 
На ЛОРе неплохое обсуждени6еполучилось: http://www.linux.org.ru/forum/talks/5585331

"Новый оптимизатор Internet Explorer 9 привел к завышению рез..."
Отправлено yurik81 , 20-Ноя-10 18:05 
не понятно на кого рассчитаны эти тесты, ведь целевая аудитория этой поделки вряд ли даже знает о существовании других браузеров.

"Новый оптимизатор Internet Explorer 9 привел к завышению рез..."
Отправлено denis111 , 20-Ноя-10 18:57 
Целевая аудитория не знает, что такое браузер вообще. Для них это "интернет".

"Новый оптимизатор Internet Explorer 9 привел к завышению рез..."
Отправлено pavlinux , 20-Ноя-10 19:25 
> Целевая аудитория не знает, что такое браузер вообще. Для них это "интернет".

Если не гацкие хацкеры, сидел бы сейчас юзер, зомбированный микрософтом,
и по командам венды ходил бы в туалет. Windows стоил бы 3000$, компутер - 1$,
самостоятельная установка софта на комп - статья УК Микрософтской республикии россия,
до 15 лет на кремниевых рудниках. Подключение к интернету без прав доступа, мед. справки
из псих. диспансера, окулиста, проктолога, венеролога - до 5 лет рудников.

  


"Новый оптимизатор Internet Explorer 9 привел к завышению рез..."
Отправлено Anonim , 21-Ноя-10 17:12 
Подключение к интернету без мед. справки из псих. диспансера - до 5 лет рудников... Мечта...

"Новый оптимизатор Internet Explorer 9 привел к завышению рез..."
Отправлено zazik , 22-Ноя-10 13:13 
> Подключение к интернету без мед. справки из псих. диспансера - до 5
> лет рудников... Мечта...

А то, что справка на совсем небольшую сумму покупается - ничего?


"Новый оптимизатор Internet Explorer 9 привел к завышению рез..."
Отправлено Аноним , 21-Ноя-10 19:13 
На корпоративных покупателей, т.е. на кого-то вроде начальников IT-отделов.

"Новый оптимизатор Internet Explorer 9 привел к завышению рез..."
Отправлено Bx , 20-Ноя-10 20:03 
Хм, експлорера нет, но вот вопрос по оптимизатору opera.

По образу и подобию теста с хабра наваяно:

1. Отрабатывает как и положено
<html><body>
<script language="Javascript">
        var start = new Date();
        for (var i = 0; i < 10; i++) {
                if (1)
                        alert(i);
                else
                        alert("WTF???");
        }
        alert(new Date() - start);
        alert(i);
</script>
</body></html>

2. Стоит добавить "dead code", как в opera(gentoo, winxp под virtualbox) начинается феерическая фигня. В firefox и chromium-bin что в gentoo, что в vbox оба скрипта работают идентично. Я чего-то не понимаю?

<html><body>
<script language="Javascript">
        var start = new Date();
        for (var i = 0; i < 10; i++) {
                if (1) {
                        for (var j = 0; j < 1000; j++)
                                var k = i + j;
                        alert(i);
                } else
                        alert("WTF???");
        }
        alert(new Date() - start);
        alert(i);
</script>
</body></html>


"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено Вася , 21-Ноя-10 00:54 
Мне плевать на MS, но я похоже чего то не понимаю. Вчера в очередной раз занимался оптимизацией скорости работы своего интерпритатора. Статистика выполнения одного из блоков показывала очень большое время. Потрати сутки на переделку алгоритма и теперь этот блок выполняется почти мгновенно. Так что - я жулик ?

"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено Square , 21-Ноя-10 01:00 
> Мне плевать на MS, но я похоже чего то не понимаю. Вчера
> в очередной раз занимался оптимизацией скорости работы своего интерпритатора. Статистика
> выполнения одного из блоков показывала очень большое время. Потрати сутки на
> переделку алгоритма и теперь этот блок выполняется почти мгновенно. Так что
> - я жулик ?

Если ты ненавидишь микрософт- то ты герой. Добился высокой производительности и оптимизации. В противном случае - естественно жулик :) Только гейтсоненавистники имеют моральное право на оптимизацию.


"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено User294 , 21-Ноя-10 01:54 
Не, все не так как вы вещаете. Предъявы начнутся если Вася вылезет со своим интерпретером и скажет что его интерпретер всех заруливает. При том как доказательство предоставит тест состоящий из блока который Вася недавно заоптимизил как раз, и только его. Специально подогнанный такой тест. На остальных тестах ессно Васин интерпретер не покажет ничего сверхъестественного.

Ну так вот, в духе MS по жизни было заявить "windows server обгоняет Linux" и привести в качестве примера такие вот высосанные из пальца случаи, задвинув на 100500 остальных, менее удобных ситуаций. Вроде бы и не соврали, и себя красиво выставили, вот только всю правду - не сказали. Оптимизация - хорошо. А вот когда оптимизируют с прицелом на кульные попугаи в писькомере а на остальное забивают - вот это уже попахивает мошенничеством. Если бы микрософт не попадался много раз на сомнительных жонглированиях фактами - ни у кого бы и претензий не было. Тут им видимо слегка попортили очередную попытку пиара - "смотрите, как мы всех ловко рвем в SunSpider". Ну да, в одном тесте может и зарулят всех. А толку? Вебмастеров интересует общая производительность движка, а не синтетически накрученные попугаи в одном конкретном тесте.


"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено Аноним , 21-Ноя-10 01:47 
>Мне плевать на MS, но я похоже чего то не понимаю

Думается, вам не плевать. Иначе, после столь информативного обсуждения, с кучей внешних ссылок, вы бы не задавали такие вопросы. Очень хорошо было разобрано - у МС оптимизация под один тест. Другого профита нет.


"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено анонимус , 21-Ноя-10 09:35 
> Потрати сутки на переделку алгоритма и теперь этот блок выполняется почти мгновенно. Так что - я жулик ?

Если этот блок присутствует _только_ в одном-единственом тесте (который тебе предоставил начальник/заказчик и т.д.) - ты самый настоящий жулик.
Т.к. в реале от твоих телодвижений никакой пользы.


"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено Alexey , 21-Ноя-10 14:28 
Думаю IE ведет себя аналогично во всех тестах, где есть dead code. Просто на них его не тестировали. Понятное дело, что их эвристика пока ошибается достаточно часто, все-таки они первые кто встраивает такую оптимизацию в свой JavaScript движок.

"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено Аноним123321 , 22-Ноя-10 02:49 
> ..., все-таки они первые кто встраивает такую оптимизацию в свой JavaScript движок.

и надеюсь посление :-)

https://www.opennet.ru/openforum/vsluhforumID3/72642.html#113


"Новый оптимизатор Internet Explorer 9 привел к завышению рез..."
Отправлено Аноним , 21-Ноя-10 15:25 
Это все конечно "замечательно", но ИМХО к тематике сайта не относится.
У нас ведь не www.MicroSoftHaters.ru

"Новый оптимизатор Internet Explorer 9 привел к завышению рез..."
Отправлено Аноним , 21-Ноя-10 20:13 
> Это все конечно "замечательно", но ИМХО к тематике сайта не относится.
> У нас ведь не www.MicroSoftHaters.ru

IMHO, очень даже относится. Когда IE заявляет, что теперь самый быстрый браузер, нужно отстаивать честь открытых Firefox и Chromium, раскрывая глаза на то, в чем на самом деле дело.


"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено Аноним123321 , 22-Ноя-10 01:54 
куда ктится этот мир ... ох уж эти марктойдо-программисты :-) [я про тех программистов, которые ориентирют свои взгляды основываясь на красивых теориях... которые наверняка придумали маркетологи :-D]

ну вот ОБЪЯСНИТЕ -- НАФИГА ВООБЩЕ нужно чтобы браузер удалял "мёртвый" код?

не лучше ли просто в своих javascript-приложениях НЕ_ПИСАТЬ пустых цыклов?

....ну вот КАКОЙ смысл javascript-программисту от этих оптимизаий? %) %)

как только javascript-алгоритм будет чуть более сложный (чуть более в функциональном стиле) и состоять из невероятной кучи переменых function-типа -- и нельзя будет прото-глядя на алгоритм сказать есть-ли-там-пустые-цыклы так как адреса конкретных функций будут храниться (и изменяться) внутри переменных -- вся эта говно-"оптимизация" нифига работать не будет. а будет только тормазить процесс выполнения...

ну очевидно же!! :-)


"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено Трухин_Юрий_Владимирович , 22-Ноя-10 09:01 
бесспорно лучше писать всегда и всем идеальные программы. почему не так? потому и существуют dce

"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено Аноним123321 , 22-Ноя-10 12:00 
ничего "идеального" не существует :-) ... но тем не менее -- может напишешь ХОТЯБЫ ОДИН случай когда инженеру может понадобиться написать пустой цикл в [не тестовом] javascript-приложении?

"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено Lain_13 , 22-Ноя-10 12:57 
Неравномерно работающие в разных браузерах паузы "через опу" для, например, анимации от программистов с тяжелым васик-детством. Хотя таких лучше сразу пристрелить на всякий случай.

"Новый оптимизатор Internet Explorer 9 привел к завышению рез..."
Отправлено Сергей , 22-Ноя-10 09:18 
Все так делают, вспомним драйывера от Nvidia, оптимизированыые под тесты...

"Новый оптимизатор Internet Explorer 9 привел к завышению рез..."
Отправлено ano , 22-Ноя-10 10:40 
Вот только ms-овцы совсем недавно втирали, что жульничать с тестами больше не будут, а займуться производительностью для реальных сайтов.

"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено XoRe , 26-Ноя-10 01:50 
Это все фигня.
Вы сюда посмотрите:
http://www.microsoft.com/india/msidc/

Microsoft® India Development Center.
Я плакаль...
Microsoft экономит на программистах, которые создают основные продукты на продажу.
Чего ждать от их ПО.
А вас фейлы IE9 будоражат.


"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено Square , 26-Ноя-10 07:51 
> Это все фигня.
> Вы сюда посмотрите:
> http://www.microsoft.com/india/msidc/
> Microsoft® India Development Center.
> Я плакаль...
> Microsoft экономит на программистах, которые создают основные продукты на продажу.
> Чего ждать от их ПО.
> А вас фейлы IE9 будоражат.

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


"Разработчики Internet Explorer 9 уличены в накрутке результа..."
Отправлено XoRe , 27-Ноя-10 02:55 
>> Это все фигня.
>> Вы сюда посмотрите:
>> http://www.microsoft.com/india/msidc/
>> Microsoft® India Development Center.
>> Я плакаль...
>> Microsoft экономит на программистах, которые создают основные продукты на продажу.
>> Чего ждать от их ПО.
>> А вас фейлы IE9 будоражат.
> Индийские программисты лучшие в мире.

По количеству кода? Не спорю =)

> Их услугами помимо Майкрософта пользуется тот же Оракл.

Есть предположение, что МС платит за количество кода, а Оракл платит более адекватно.
Потому что, раз они лучшие, то чего же они пишут индусский код?