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

Обеспечение быстрой работы сайта как часть конвейера разработки - 1

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

Обеспечение быстрой работы сайта как часть конвейера разработки - 2

Тема производительности интересует меня уже давно. Помню, всё началось со знакомства с «жадными» алгоритмами и алгоритмами типа «разделяй и властвуй». Было что-то особенно приятное в том, чтобы взять код, на выполнение которого требовалось несколько минут, переделать его и заставить выполнять задачу за пару секунд.

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

Переведено в Alconost
Читать полностью »

Не так давно у меня произошёл очередной разговор с коллегой на извечную тему: "по ссылке, или по значению". В результате возникла данная статья. В ней я хочу изложить результаты моего исследования по этой и смежным темам. Далее будут рассмотрены:

  • Регистры и их назначение при вызове функций.
  • Передача и возврат простых типов и структур.
  • Как передача по ссылке и по значению влияют на оптимизации тела функции компилятором.
  • Как используется место при многочисленных вызовах функций.
  • Механизм виртуальных вызовов.
  • Оптимизация хвостовых вызовов и рекурсии.
  • Инициализация структур, массивов и векторов.

Осторожно! Статья содержит большое количество кода на C++ и ассемблере (с комментариями), а также множество таблиц с оценками производительности.

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

О личной продуктивности. Как вести деятельность, когда от тебя зависит многое - 1

Как-то раз британцы из «Expert Market» решили провести исследование на тему производительности труда. Если кратко подвести его результаты, то можно сказать, что на исходе у ребят получилась статистика с почасовыми показателями в разных странах (формула не совсем отражает реальную картину, но все же хоть какое-то основание есть: ВВП поделили на количество производственных часов). Обидно, что мы уже даже не удивляемся нижеследующим выводам, потому что привыкли к низкой продуктивности:

  • Россия — на 32-м месте из 36 (если бы участвовали все страны, то боюсь, все было бы еще плачевнее).

Среднестатистический сотрудник в нашей стране «полезен» всего лишь на £9,71, что в 4,7 раз слабее показателей Люксембурга, который меньше по площади в 6 611 раз. Зато ВВП там почти в 3,9 раз выше.

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

В предыдущем нашем посте мы поделились своими измерениями производительности гипервизора после установки патчей против уязвимостей Meltdown и Spectre. Сегодня же пришло время поговорить о производительности хранилища данных.
Читать полностью »

image

Привет всем, меня зовут Андрей, и я разработчик. Давным-давно — кажется, в прошлую пятницу — у нашей команды был проект, где понадобился поиск по ингредиентам, входящим в состав продуктов. Допустим, в состав колбасы. В самом начале проекта от поиска требовалось не много: показать все рецепты, в которых нужный ингредиент содержится в определенном количестве; повторить для N ингредиентов.
Читать полностью »

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

Сегодня хочу поделиться с сообществом своим текущим опытом на реальном примере zabbix и его связке с block stat.

Мониторинг производительности дисковой подсистемы при помощи zabbix и block stat - 1
Читать полностью »

Как создавать собственные компоненты для мониторинга устройств и автоматизации ИТ-задач - 1

Комплексное RMM-решение Panda Systems Management для централизованного и удаленного управления, контроля и обслуживания корпоративных сетей, устройств и ИТ-инфраструктуры позволяет администраторам создавать собственные специфические компоненты для мониторинга устройств и автоматизации своих ИТ-задач. Рассмотрим пример создания такого компонента.Читать полностью »

Однажды, в студёную зимнюю пору (хотя на дворе был март) мне нужно было покопаться в куче (того, что называется heap dump, а не того, о чём вы подумали). Расчехлив VisualVM я открыл нужный файл и перешел в OQL консоль. Пока суд да дело, моё внимание привлекли запросы, доступные из коробки. Особенно в глаза бросался один из них, озаглавленный "Too many Booleans". В его описании английским по белому сказано:

Check if there are more than two instances of Boolean on the heap (only Boolean.TRUE and Boolean.FALSE are necessary).

Чувствуете, да? Вот и я проникся.

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

Работа со звуком — это ресурсоёмкий для вашего компьютера процесс. Каждый звукорежиссёр не раз сталкивался с проблемой «крупных проектов», с которыми имеющееся оборудование отказывается дружить из-за недостаточных мощностей. По этой причине самым надёжным способом добиться идеальной производительности в таких случаях является проектирование звукового тракта специально под нужды sound production вашего уровня.

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

Базы данных, сети дистрибуции контента, big data, искусственный интеллект, машинное обучение — все эти data-driven сценарии требуют высокой производительности всей ИТ-инфраструктуры. Для подсистемы хранения все решается просто — установка скоростных NVMe и SSD вместо SAS и SATA. С вычислительной частью все сложнее — центральные процессоры не успевают за множеством операций, очень чувствительных ко времени. Для устранения этого «бутылочного горлышка» компания ScaleFlux разработала новые типы носителей. Внутри них бок о бок с 3D NAND памятью работают FPGA-компоненты, которые берут на себя множество типовых операций с данными. В этом посте мы подробно расскажем о решении ScaleFlux.

CSS ScaleFlux, или как ускорить базы данных в два-три раза простой заменой NVMe - 1
Читать полностью »