The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

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

20.11.2010 13:32

Значительный прорыв производительности последней тестовой версии 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 ничего не сказано.

  1. Главная ссылка к новости (http://digitizor.com/2010/11/1...)
  2. OpenNews: Microsoft добавит в Internet Explorer поддержку HTML5 тэгов audio и video
  3. OpenNews: Microsoft провела сравнение Internet Explorer 8 с Firefox и Google Chrome
  4. OpenNews: Microsoft уличили в подтасовке результатов оценки совместимости IE с web-стандартами
  5. OpenNews: Консорциум W3C провел тестирование уровня поддержки HTML5 в web-браузерах
Лицензия: CC-BY
Тип: Тема для размышления
Короткая ссылка: https://opennet.ru/28717-test
Ключевые слова: test, browser, benchmark
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (103) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, ананим (?), 13:36, 20/11/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +11 +/
    нравится мне эта компания! :D
     
     
  • 2.59, User294 (ok), 18:11, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Им давно пора переименоваться в Lies & cheats, ltd :)
     
     
  • 3.90, twilight (ok), 08:50, 21/11/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    есть и более "понятные" названия - ACME ltd, например.
     
     
  • 4.118, zazik (ok), 10:16, 22/11/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > есть и более "понятные" названия - ACME ltd, например.

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

     
     
  • 5.129, Michael Shigorin (ok), 00:45, 22/01/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Не, Рога и Копыта, инкорытейтед.
     

  • 1.2, Аноним (-), 13:42, 20/11/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +13 +/
    они такие жалкие. это даже не смешно
     
  • 1.3, Аноним (-), 13:45, 20/11/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Срам какой!
    attached: facepalm.mkv
     
  • 1.4, Анонимус_б6 (?), 13:47, 20/11/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +11 +/
    буквально два дня назад читал высер обного из руководителей МС о том, что подгонка браузеров под прохождение определенных тестов есть УГ (с тонким намеком на хром) и что для ИЕ9 будут заниматься ТОЛЬКО улучшением производительности для реальных сайтов. мс такие мс, убогие они да, но богатые)
     
     
  • 2.77, Slavaz (ok), 21:43, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • –6 +/
    > буквально два дня назад читал высер обного из руководителей МС о том,
    > что подгонка браузеров под прохождение определенных тестов есть УГ (с тонким
    > намеком на хром) и что для ИЕ9 будут заниматься ТОЛЬКО улучшением
    > производительности для реальных сайтов. мс такие мс, убогие они да, но
    > богатые)

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

     

  • 1.6, Veter (??), 13:49, 20/11/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +9 +/
    Микрософт нашел для себя новое призвание и составил конкуренцию Петросяну :-) Пусть дальше отжигают!
     
  • 1.7, Инкогнито (?), 14:02, 20/11/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Неужели у них уже ВСЕ так плохо.
     
     
  • 2.8, Инкогнито (?), 14:04, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Они же фактически расписались в собственном бессилии. Ничего с этим бегемотом поделать уже не могут.
     
     
  • 3.14, Гога (?), 14:24, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Они же фактически расписались в собственном бессилии. Ничего с этим бегемотом поделать
    > уже не могут.

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

     
     
  • 4.60, User294 (ok), 18:14, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Могут. Например перевести на движок Gecko или Webkit :)

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

     
  • 4.96, spanasik (ok), 10:46, 21/11/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не могут. IE - это помимо всего прочего ещё и COM-библиотека, поэтому куча приложений зависит от деталей его внутренней реализации. Написать враппер вокрут webkit можно, но он не будет пвторять функциональность на 100%, а совместимость для M$ имеет больший приоритет, чем производительность.
     

  • 1.10, анонимус (??), 14:10, 20/11/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Зачем, зачем делать ТАКИЕ глупости?!!

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

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

     
     
  • 2.21, ананим (?), 14:47, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • +2 +/
    там у них столько несовместимых ни с чем технологий, которые кстати уже даже идут в разрез с их же новыми, что...
    ие6 многие вынуждены ещё держать, т.к. в своё время завязались на "инновации" от мс.
     
  • 2.61, User294 (ok), 18:22, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Неужелти у них уже все нормальные люди разбежались и остался один шлак?

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

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

     
     
  • 3.65, sfstudio (ok), 19:18, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • –2 +/
    IE9 Team круче http://www.google.ru/imglanding?q=ie9%20team%20photo&imgurl=http://ieblog.members.winisp.net/images/ie-idc.jpg&imgrefurl=http://blogs.msdn.com/b/ie/archive/2005/10/28/486491.aspx%3FPageIndex�

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

     
     
  • 4.106, Аноним (-), 19:15, 21/11/2010 [^] [^^] [^^^] [ответить]  
  • –3 +/
    такие люди не могут программировать
     
  • 4.117, Аноним (-), 09:57, 22/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Ты тоже заметил, что внизу справа до 7 посчитать не смогла?
     

  • 1.11, dmj (?), 14:19, 20/11/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Ну, допустим, опубликованные диффы с добавленными бесполезными "true;" и "return;" действительно доказывают читерство. Но пример из этой статьи с
    >> вместо "if (TargetAngle > CurrAngle)" написать "if (TargetAngle <= CurrAngle)"

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

     
     
  • 2.13, Аноним (-), 14:24, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Но замедление в 20 раз при замене < на <= явно указывает на жульничество.
     
  • 2.28, Аноним (-), 15:21, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Скорее всего ошиблись, и if (TargetAngle > CurrAngle) заменяли на if (CurrAngle <= TargetAngle)
    Эти выражения вроде как тождественны )
     
     
  • 3.53, anonymous from da LOR (?), 17:26, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Неа, не тождественны.
     
     
  • 4.55, Аноним (-), 17:37, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Неа, не тождественны.

    На результата вычисления в цикле замена не влияет, наоборот замена проверки делает цикл бессмысленным, так как условие при "<=" заведомо _никогда_ не выполняется, а при > выполняется определенное число итераций. Оптимизатор 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++;
           }
       }

     

  • 1.12, Lexa3110 (ok), 14:23, 20/11/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    И почему меня это не удивляет? :)
     
     
  • 2.62, User294 (ok), 18:23, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    > И почему меня это не удивляет? :)

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

     

  • 1.15, mirya (?), 14:25, 20/11/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Они не идентичны, но весь noop блок тестового кода, в который в том числе входит эта проверка, должен был быть вырезан оптимизатором, работай их "Dead Code Elimination" как задумано, независимо от того, какая там проверка.
     
     
  • 2.17, dmj (?), 14:28, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо, дошло.
     

  • 1.16, Vernat (ok), 14:26, 20/11/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    грустно всё это
     
     
  • 2.18, анонимус (??), 14:28, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Нисколько не грустно - весьма радостно!
    Побольше m$ таких провалов!
     
     
  • 3.26, Трухин_Юрий_Владимирович (ok), 15:05, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • –27 +/
    а в чем провал? вы целиком читаете?
     
     
  • 4.30, анонимус (??), 15:25, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • +10 +/
    Поймали на жульничестве m$-компашку!
     
     
  • 5.38, Аноним (-), 15:51, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > Поймали на жульничестве m$-компашку!

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

     
  • 5.74, NMorozov (?), 21:29, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    И что тесты прочитает много больше людей, чем это разоблачение
     
  • 4.42, szh (ok), 15:57, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > вы целиком читаете?

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

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

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

    http://blog.mozilla.com/rob-sayre/2010/11/17/dead-code-elimination-for-beginn

     

  • 1.19, zazik (ok), 14:32, 20/11/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Цель оправдывает средства. Акулы капитализма как они есть.
     
  • 1.20, Square (ok), 14:38, 20/11/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • –10 +/
    Вообще после того как эту новость разобрали по косточкам и обсудили как и почему так происходит - появление ее тут  в таком дико красноглазом пересказе - просто умиляет :)))

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

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

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

     
     
  • 2.23, pavlinux (ok), 14:58, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Обсуждается как и почему это произошло

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


     
     
  • 3.25, Square (ok), 15:04, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >> Обсуждается как и почему это произошло
    > Мы добиваемся не правды, а эффекта. :)

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

     
     
  • 4.34, Трухин_Юрий_Владимирович (ok), 15:41, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • –18 +/
    хоть бы заголовок новости поправили. нет же
     
     
  • 5.39, мимотут (?), 15:51, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Заголовок верно написан. Данный dead code elimination работает только для операций в одной функции из теста sunspider и в реальной жизни не имеет практического применения. Самый настоящий мухлёж.

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


     
  • 2.29, анонимус (??), 15:24, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    > Обсуждается как и почему это произошло

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

     
  • 2.33, Трухин_Юрий_Владимирович (ok), 15:39, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • –19 +/
    ага, мне всегда забавно читать такие "честные и правдивые" новости тут
     
     
  • 3.36, pavlinux (ok), 15:45, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    клин, клином вышибают. И ничего личного, просто война. :)
     
     
  • 4.79, fyjybv (?), 23:21, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Павлинукс, тут ты не прав. Опен сорс таким гнилым как майкрософт никогда не был и не будет.
     
     
  • 5.80, Аноним (-), 23:27, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Он уже стал гнилым. ибо сообстветво GNU держится только на ненависти к MS.
    убери MS и станет вопрос как жить.. а по другому они не умеют - будут экстренно искать врага.
     
     
  • 6.82, pavlinux (ok), 23:54, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    > а по другому они не умеют - будут экстренно искать врага.

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


      

     
  • 6.89, анон (?), 02:03, 21/11/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Он уже стал гнилым. ибо сообстветво GNU держится только на ненависти к MS.
    > убери MS и станет вопрос как жить.. а по другому они не
    > умеют - будут экстренно искать врага

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


     
  • 6.109, Аноним (-), 19:17, 21/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    > Он уже стал гнилым. ибо сообстветво GNU держится только на ненависти к
    > MS.
    > убери MS и станет вопрос как жить.. а по другому они не
    > умеют - будут экстренно искать врага.

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

     
  • 3.41, Аноним (-), 15:52, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    > ага, мне всегда забавно читать такие "честные и правдивые" новости тут

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

     
  • 3.50, arachnid (ok), 17:02, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    вообще во всех трех обсуждениях пишут тоже самое - что скорее всего это специальная оптимизация под тест. или Вы так - лишь бы что сказать?
     
  • 3.81, User294 (ok), 23:40, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    > ага, мне всегда забавно читать такие "честные и правдивые" новости тут

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

     
  • 2.35, мимотут (?), 15:42, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    А вот тут объясняется, что отмазка от МС это хорошая мина при плохой игре:

    http://blog.mozilla.com/rob-sayre/2010/11/17/dead-code-elimination-for-beginn

     
  • 2.43, Аноним (-), 15:58, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    > Вообще после того как эту новость разобрали по косточкам и обсудили как
    > и почему так происходит - появление ее тут  в таком
    > дико красноглазом пересказе - просто умиляет :)))
    >Вот тут объясняется как это произошло:
    >http://blogs.msdn.com/b/ie/archive/2010/11/17/html5-and-real...

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

     
  • 2.63, evgeny_t (ok), 18:39, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    и что там обсудили ?
    здесь заданы конкретные вопросы на них не получены конкретные ответы...
    так что пока ms  в жопе
     
     
  • 3.70, Трухин_Юрий_Владимирович (ok), 20:27, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • –12 +/
    так ты еще на сайте по генту спроси по ie9 и жди ответов...
     
     
  • 4.128, user (??), 21:24, 21/01/2011 [^] [^^] [^^^] [ответить]  
  • +/
    По существу сказать что-нибудь можешь, или как работодатель, только глупые отмазки писать будешь?
     

  • 1.27, Sylvia (ok), 15:05, 20/11/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    молодцы , интересно что они еще придумают в другой раз ?
    "бенчмарк" на открытие страничек MSN перед камерой и замеры по секундомеру уже был :)
    На кого они расчитывают с такими методиками тестов ? Вы еще ругаете Фороникс ? Тогда , что называется, MS идет к вам!
     
     
  • 2.58, hhg (ok), 18:08, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    в следующий раз они придумают свой единственно правильный закрытый набор тестов, а все остальные объявят ошибочными и глючными. и в этих тестах они будут белями и пушистыми, а все остальные - неудачниками.
     
  • 2.69, vkni (?), 20:17, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Ваши любимые компиляторы gcc умеют делать подобные оптимизации с чёрт знает како... большой текст свёрнут, показать
     
     
  • 3.71, Аноним (-), 21:02, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >> молодцы , интересно что они еще придумают в другой раз ?
    > Ваши любимые компиляторы 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; } });

     
     
  • 4.72, vkni (?), 21:15, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > GCC умеет это делать для языка Си. В блоге мозилловцев ясно показано, почему это будет приводить к нескончаемым проблемам в JavaScript:

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

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

     
     
  • 5.73, Аноним (-), 21:28, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >IE - это первая команда, которая делает DCE. Верно?

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

     
  • 5.86, User294 (ok), 01:36, 21/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    > IE - это первая команда, которая делает DCE. Верно?

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

     
     
  • 6.91, Vkni (?), 09:29, 21/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >> IE - это первая команда, которая делает DCE. Верно?
    > Ага, только вот избирательная оптимизация под sunspider выглядит как-то подозрительно.

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

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

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

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

     
     
  • 7.94, тоже Аноним (ok), 10:03, 21/11/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если оптимизация идет не от общего к частному, а наоборот - это не оптимизация, а накрутка конкретных моментов и костыли.
    DCE, в частности, должен делать АНАЛИЗ кода, а не поиск знакомых шаблонов. Да еще такой топорный, что это приводит к ошибкам в похожем коде.
     
     
  • 8.95, анн (?), 10:44, 21/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    тоже нормальная практика, особенно на регэксах... текст свёрнут, показать
     
  • 4.83, pavlinux (ok), 00:01, 21/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Ну если они себя считают умнее компилятора, тогда почему не юзают volatile, rest... большой текст свёрнут, показать
     

  • 1.32, мимотут (?), 15:39, 20/11/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Забыли добавить, что новый оптимизатор не берёт в расчёт гибкость javascript в прототипировании и запросто приводит к багам на ровном месте.

    http://blog.mozilla.com/rob-sayre/2010/11/17/dead-code-elimination-for-beginn

     
  • 1.40, pavlinux (ok), 15:51, 20/11/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Предлагаю Микрософту в эксплорире замутить "Dead Code Elimination" для всех возможных
    конструкций JavaScript и в подарок, каждому установившему, дарить массив на 16Тб.


     
  • 1.45, strange (??), 16:26, 20/11/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Я так понял, подобный код, ничего не возвращающий и далее не использующийся, возможен только на сайтах, специально его размещающих. Т.е. как раз синтетические тесты. В реальной жизни такого не увидишь. А если код сайта позволяет себя так лихо "оптимизировать", то странный какой-то код. Я не сайтостроитель, не могу судить насколько верно размышляю.
     
     
  • 2.46, pavlinux (ok), 16:44, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Подобный код,
            Ничего не возвращающий
                           И далее не использующий,
    Возможен только на сайтах,
                          Специально его размещающих.


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

     
     
  • 3.47, strange (??), 16:48, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    да уж... сумбурно высказался, мысли в кучу не собрал :)
     
  • 2.48, Damage.inc (?), 16:55, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Еще как верно. Дело в том что мс девелоперов держит за человекоподобных обезьян(возможно это связано с обилием таковых в штате самой компании).
     
  • 2.68, vkni (?), 20:05, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    > Я так понял, подобный код, ничего не возвращающий и далее не использующийся,
    > возможен только на сайтах, специально его размещающих. Т.е. как раз синтетические
    > тесты. В реальной жизни такого не увидишь.

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

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

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

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

     

  • 1.49, Dorif (ok), 16:58, 20/11/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    На ЛОРе неплохое обсуждени6еполучилось: http://www.linux.org.ru/forum/talks/5585331
     
  • 1.57, yurik81 (ok), 18:05, 20/11/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    не понятно на кого рассчитаны эти тесты, ведь целевая аудитория этой поделки вряд ли даже знает о существовании других браузеров.
     
     
  • 2.64, denis111 (ok), 18:57, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Целевая аудитория не знает, что такое браузер вообще. Для них это "интернет".
     
     
  • 3.66, pavlinux (ok), 19:25, 20/11/2010 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Целевая аудитория не знает, что такое браузер вообще. Для них это "интернет".

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

      

     
     
  • 4.103, Anonim (?), 17:12, 21/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Подключение к интернету без мед. справки из псих. диспансера - до 5 лет рудников... Мечта...
     
     
  • 5.123, zazik (ok), 13:13, 22/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    > Подключение к интернету без мед. справки из псих. диспансера - до 5
    > лет рудников... Мечта...

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

     
  • 2.104, Аноним (-), 19:13, 21/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    На корпоративных покупателей, т.е. на кого-то вроде начальников IT-отделов.
     

  • 1.67, Bx (ok), 20:03, 20/11/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хм, експлорера нет, но вот вопрос по оптимизатору 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>

     
  • 1.84, Вася (??), 00:54, 21/11/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Мне плевать на MS, но я похоже чего то не понимаю. Вчера в очередной раз занимался оптимизацией скорости работы своего интерпритатора. Статистика выполнения одного из блоков показывала очень большое время. Потрати сутки на переделку алгоритма и теперь этот блок выполняется почти мгновенно. Так что - я жулик ?
     
     
  • 2.85, Square (ok), 01:00, 21/11/2010 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Мне плевать на MS, но я похоже чего то не понимаю. Вчера
    > в очередной раз занимался оптимизацией скорости работы своего интерпритатора. Статистика
    > выполнения одного из блоков показывала очень большое время. Потрати сутки на
    > переделку алгоритма и теперь этот блок выполняется почти мгновенно. Так что
    > - я жулик ?

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

     
     
  • 3.88, User294 (ok), 01:54, 21/11/2010 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Не, все не так как вы вещаете. Предъявы начнутся если Вася вылезет со своим интерпретером и скажет что его интерпретер всех заруливает. При том как доказательство предоставит тест состоящий из блока который Вася недавно заоптимизил как раз, и только его. Специально подогнанный такой тест. На остальных тестах ессно Васин интерпретер не покажет ничего сверхъестественного.

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

     
  • 2.87, Аноним (-), 01:47, 21/11/2010 [^] [^^] [^^^] [ответить]  
  • +7 +/
    >Мне плевать на MS, но я похоже чего то не понимаю

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

     
  • 2.92, анонимус (??), 09:35, 21/11/2010 [^] [^^] [^^^] [ответить]  
  • +8 +/
    > Потрати сутки на переделку алгоритма и теперь этот блок выполняется почти мгновенно. Так что - я жулик ?

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

     
     
  • 3.101, Alexey (??), 14:28, 21/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Думаю IE ведет себя аналогично во всех тестах, где есть dead code. Просто на них его не тестировали. Понятное дело, что их эвристика пока ошибается достаточно часто, все-таки они первые кто встраивает такую оптимизацию в свой JavaScript движок.
     
     
  • 4.114, Аноним123321 (ok), 02:49, 22/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    > ..., все-таки они первые кто встраивает такую оптимизацию в свой JavaScript движок.

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

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

     

  • 1.102, Аноним (-), 15:25, 21/11/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Это все конечно "замечательно", но ИМХО к тематике сайта не относится.
    У нас ведь не www.MicroSoftHaters.ru
     
     
  • 2.111, Аноним (-), 20:13, 21/11/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Это все конечно "замечательно", но ИМХО к тематике сайта не относится.
    > У нас ведь не www.MicroSoftHaters.ru

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

     

  • 1.113, Аноним123321 (ok), 01:54, 22/11/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    куда ктится этот мир ... ох уж эти марктойдо-программисты :-) [я про тех программистов, которые ориентирют свои взгляды основываясь на красивых теориях... которые наверняка придумали маркетологи :-D]

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

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

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

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

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

     
     
  • 2.115, Трухин_Юрий_Владимирович (ok), 09:01, 22/11/2010 [^] [^^] [^^^] [ответить]  
  • –4 +/
    бесспорно лучше писать всегда и всем идеальные программы. почему не так? потому и существуют dce
     
     
  • 3.121, Аноним123321 (ok), 12:00, 22/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    ничего "идеального" не существует :-) ... но тем не менее -- может напишешь ХОТЯБЫ ОДИН случай когда инженеру может понадобиться написать пустой цикл в [не тестовом] javascript-приложении?
     
     
  • 4.122, Lain_13 (?), 12:57, 22/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Неравномерно работающие в разных браузерах паузы "через опу" для, например, анимации от программистов с тяжелым васик-детством. Хотя таких лучше сразу пристрелить на всякий случай.
     

  • 1.116, Сергей (??), 09:18, 22/11/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Все так делают, вспомним драйывера от Nvidia, оптимизированыые под тесты...
     
     
  • 2.120, ano (??), 10:40, 22/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Вот только ms-овцы совсем недавно втирали, что жульничать с тестами больше не будут, а займуться производительностью для реальных сайтов.
     

  • 1.125, XoRe (ok), 01:50, 26/11/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Это все фигня.
    Вы сюда посмотрите:
    http://www.microsoft.com/india/msidc/

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

     
     
  • 2.126, Square (ok), 07:51, 26/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    > Это все фигня.
    > Вы сюда посмотрите:
    > http://www.microsoft.com/india/msidc/
    > Microsoft® India Development Center.
    > Я плакаль...
    > Microsoft экономит на программистах, которые создают основные продукты на продажу.
    > Чего ждать от их ПО.
    > А вас фейлы IE9 будоражат.

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

     
     
  • 3.127, XoRe (ok), 02:55, 27/11/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >> Это все фигня.
    >> Вы сюда посмотрите:
    >> http://www.microsoft.com/india/msidc/
    >> Microsoft® India Development Center.
    >> Я плакаль...
    >> Microsoft экономит на программистах, которые создают основные продукты на продажу.
    >> Чего ждать от их ПО.
    >> А вас фейлы IE9 будоражат.
    > Индийские программисты лучшие в мире.

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

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

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

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру