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

В 2011 году была представлена альтернатива протоколу AHCI (Advanced Host Controller Interface) — протокол NVM Express. Почему контроллер с архитектурой NVMe (Non-Volatile Memory Express)?

Смена потребительских предпочтений: в поисках идеального накопителя с поддержкой протокола NVMe - 1

Немного теории: грубо говоря, SSD это способ хранения данных на чипах памяти, упоминая же «жесткий диск» подразумеваем, что данные хранятся на круглых магнитных пластинах. Теперь понятие форм-фактора: подразумевает, как устройство выглядит и как подключается. Например 2,5-дюймовые SATA SSD подключаются с помощью SATA коннектора. Форм-фактор M.2 — это голые платы, на которых размещены чипы, соответственно используется разъем для подключения М.2. Для полноценной работы накопителя с хост системой нужен физический и программный интерфейсы, самые обычные 2,5-дюймовые SATA SSD используют протокол AHCI, но контроллер AHCI был создан для механических HDD, дабы оптимизировать взаимодействие жесткого диска с самой системой: минимизировать перемещение магнитных головок, синхронизировать процессы чтения и записи. Соответственно, в твердотельных накопителях, где совсем другой принцип хранения данных, AHCI не в состоянии раскрыть весь потенциал SSD, работающего на высоких скоростях. Хотя никто не отменял тот факт, что SATA SSD больше ограничены самим фактором SATA подключения, с его помощью можно передать данные со скоростью не больше 550-600 МБ/с, не то чтобы это было слишком мало, но! SSD накопители могут гораздо больше. Для того, чтобы обойти эти скоростные ограничения были придуманы PCI Express и М.2 накопители, правда они все также либо используют, либо эмулируют программный интерфейс AHCI, главным недостатком которого является количество команд, которые он может одновременно передать, это всего 32 очереди.
Читать полностью »

В продолжение статьи про наше использование 1С Fresh мы расскажем как учимся следить за производительностью и скоростью работы нашей инсталляции.
image
Читать полностью »

Привет! Нужно ли вам представлять настоящего джедая .NET, performance-гуру, многократного Microsoft MVP, постоянного спикера конференции DotNext Сашу Гольдштейна? Наверно, не стоит.

Производительность .NET: приемы настоящего джедая - 1

В нашей беседе Саша делится профессиональными советами для разработчиков .NET и .NET Core. Рассказывает о том, на что обращать внимание при профилировании и отладке приложений и какими инструментами пользоваться.
Читать полностью »

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

Как эмпирическое правило «победитель получает все» работает и не работает в разработке - 1

Под катом слайды с пояснением.
Читать полностью »

Оптимизация производительности издавна не дает покоя разработчикам, представляясь своеобразным «золотым ключиком» к интересным решениям и хорошему послужном списку. Большую обзорную экскурсию по ключевым вехам оптимизации больших проектов  – от общих принципов до ловушек и противоречий —  на прошедшем JPoint 2017 провел Алексей Шипилёв, эксперт по производительности.

Под катом — расшифровка его доклада.
Читать полностью »

Этот материал посвящён тому, как внутренние механизмы V8 работают со свойствами JavaScript-объектов. Если рассматривать свойства с точки зрения JavaScript, то разные их виды отличаются друг от друга не так уж и сильно. Скажем, JS-объекты обычно ведут себя как словари со строковыми ключами и произвольными объектами в качестве значений. Однако, если почитать спецификацию языка, можно выяснить, например, что свойства разных видов по-разному ведут себя при их переборе. В других случаях поведение свойств различных видов, в основном, выглядит одинаково.

Казалось бы, реализация механизма работы со свойствами, учитывая их схожесть, задача не такая уж и масштабная, однако, в недрах V8 используется несколько различных способов представления свойств. Сделано это, во-первых, для обеспечения высокой производительности, во-вторых — ради экономии памяти.

image

В этом материале мы хотим рассказать о том, как V8 добивается высокой производительности при обработке динамически добавляемых свойств объектов. Знание особенностей механизма работы со свойствами необходимо для понимания сущности способов оптимизации выполнения JavaScript в V8, таких, например, как встроенные кэши.
Читать полностью »

Бенедикт Мейрер из мюнхенского офиса Google занимается вопросами оптимизации JavaScript. В этом материале он рассказывает об особенностях реализации и функционирования Object.prototype.toString() в движке V8. В частности, речь пойдёт о том, почему эта конструкция важна, о том, как она изменилась с появлением символов ES2015, и о подходе к оптимизации, который предложили инженеры из Mozilla, приведшем к примерно шестикратному увеличению производительности toString() в V8.

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

Сказ о том, как мы бездумно использовали на проекте бойлерплейт, с целым боекомплектом зависимостей, которыми никто не пользовался, как нам потом это акнулось, когда потребовалась поддержка Edge, и как мы героически починили то, что, по факту, сами и поломали. Нет, это слишком длинно.

Сказ о том, что все браузеры — атрибутофобы, а некоторые особенно.

Edge ненавидит ваши атрибуты - 1

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

Node.js, с момента появления, зависит от JS-движка V8, который обеспечивает исполнение команд языка, который мы все знаем и любим. V8 — это виртуальная машина JavaScript, написанная Google для браузера Chrome. С самого начала V8 создавали для того, чтобы сделать JavaScript быстрым, по крайней мере — обеспечить большую скорость, чем конкурирующие движки. Для динамического языка без строгой типизации достижение высокой производительности — задача непростая. V8 и другие движки развиваются, всё лучше решая эту задачу. Однако, новый движок — это не просто «рост скорости исполнения JS». Это — и необходимость в новых подходах к оптимизации кода. Не всё то, что было сегодня самым быстрым, будет радовать нас максимальной производительностью в будущем. Не всё, что считалось медленным, останется таким.

Как характеристики TurboFan V8 повлияют на то, как будут оптимизировать код? Как техники, считающиеся оптимальными сегодня, покажут себя в недалёком будущем? Как ведут себя «убийцы производительности V8» в наши дни, и чего от них можно ожидать? В этом материале мы постарались найти ответы на эти и многие другие вопросы.

Перед вами — плод совместного труда Дэвида Марка Клементса и Маттео Коллины. Материал проверили Франциска Хинкельманн и Бенедикт Мейрер из команды разработчиков V8.

Новый V8 и скорость Node.js: техники оптимизации сегодня и завтра - 1
Читать полностью »

Я продолжаю подробно рассказывать о приемах оптимизации, позволивших мне написать самый быстрый ресайз изображений на современных x86 процессорах. На этот раз речь пойдет о преобразовании вычислений с плавающей точкой в вычисления с целыми числами. Сперва я расскажу немного теории, как это работает. Затем вернусь к реальному коду, в том числе SIMD-версии.

В предыдущих частях:

Часть 0
Часть 1, общие оптимизации
Часть 2, SIMD

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


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