Рубрика «производительность» - 31

Насколько плохим код должен быть? Эрик Липперт — ветеран Microsoft, проработавший в компании 16 лет и стоящий за разработкой VBScript, JScript и C#.

На прошлой неделе в комментариях к одной из статей разгорелся спор о роли низкоуровневой оптимизации в программировании, и я вспомнил относящуюся к этому статью Эрика. Она была написана в конце 2003, и хотя реалии с тех пор несколько изменились — принципы остались теми же самыми. Можете мысленно заменить ASP и VBScript на PHP, JavaScript, или на другой скриптовый язык по вашему вкусу.

Эту статью я уже пытался перевести в 2005, но русский текст тогда получился неуклюжий, так что этот перевод — новый и ранее не публиковался, в соответствии с требованиями НЛО. В Переводе блога Эрика Липперта этого текста тоже нет — наверное, для них он слишком стар.


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

Например, за семь лет в Microsoft я получил десятки вопросов, аналогичных по своей сути этому, заданному в конце 1990-х:

У нас есть код на VBScript, и в одной часто вызываемой функции мы определяем оператором Dim несколько переменных, которые нигде в функции не используются. Не замедляется ли каждый вызов функции из-за объявления этих переменных?

Какой интересный вопрос! В компилируемом языке, таком как Си, объявление локальных переменных общим размером n байт всего лишь вычитает n из указателя стека при входе в функцию. Если n будет чуть больше или чуть меньше, затраты времени на вычитание никак не изменятся. Наверное, в VBScript точно так же? Оказалось, что нет! Вот что я написал автору вопроса:
Читать полностью »

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

Обновления с хабры. Расширение для браузера

Читать полностью »

Введение

Как известно, индексы повышают производительность аналогично оглавлению или предметному указателю в кнгие. Прочитав несколько статей в интернете и пару глав из книжек, хотелось бы узнать, насколько индексы помогают увеличить скорость выборки данных из SQL Server. Рассмотрим на примере. Читать полностью »

Многоядерная JIT компиляция в .NET 4.5
Исторически разработчики .NET использовали генератор образов в машинном коде Ngen. Это отлично работает, если у вас есть инсталлятор, и вы можете сгенерировать эти образы во время установки приложения. Но в других случаях, например когда у вас нет установщика или вы не имеете доступ к Ngen, ваше приложение будет производить JIT-компиляцию по мере необходимости, что замедлит его загрузку. Разработчики CLR предоставили решение в новой версии .NET – многоядерная JIT-компиляция с возможностью создавать профили оптимизации.
Читать полностью »

Dart VM теперь на 50% быстрее V8 на 2 Octane тестах, Richards и DeltaBlue.
Читать полностью »

Здравствуйте читатели. Сейчас пытаюсь написать игру на html5 + PhoneGap, конечно производительность не очень радует. Вот решил протестировать все браузеры доступные под Android в том числе и PhoneGap на предмет производительности, в этом цикле статьей будет рассмотрено:

1. Вычисления на чистом JavaScript.
2. Рендеринг с помощью DOM.
3. Рендеринг с помощью Canvas.
4. Рендеринг с помощью WebGL.
Читать полностью »

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

Читать полностью »

Введение

Любое действие занимает некоторое время. Одни действия требуют меньше времени, другие больше, одни повторяются часто, другие, напротив, очень редки. Любой наш день состоит из множества действий, и занимают они 24 часа нашего времени. А на что же мы тратим ежедневно эти 24 часа?
Читать полностью »

Один из моих последних проектов — портирование игры с iOS на Android. Игра написана с использованием Cocos2d-x, довольно популярного кроссплатформенного игрового движка.

Подробнее о Cocos2d-x для Android

Cocos2d-x существует для Android уже фактически два года, достаточно солидный возраст. Открытый исходный код, лицензия MIT (не требует возврата изменений).
Последний стабильный релиз для OpenGL ES 1.x — 0.13.0, вышел в марте этого года.
Первый релиз для OpenGL ES 2.0 — 2.0.2, появился в конце августа.

Хочу рассказать, как можно легко многократно повысить скорость загрузки большой игры, а также улучшить общую плавность реакции на действия пользователя.
Читать полностью »

Я люблю откладывать

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

Я научилась преодолевать эти слабости, стараясь быть более продуктивной, чтобы компенсировать утраченное время.

Бла, бла, бла, продуктивность системы… откладывание со дня на день… бла-бла-бла!

Я знаю, вы слышали все это раньше, но вот что странно: я почти всегда получаю вещи, сделанные хорошо, задолго до срока.

Так в чем моя проблема?

Моя проблема в том, что, когда я берусь за реальное выполнение работы, я в конечном итоге делаю миллионы других мелочей.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js