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

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

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

Осторожно! Статья содержит большое количество кода на 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
Читать полностью »

Первая часть — разбор самой холиварной задачи из четырёх:

    void forEach(List<Integer> values, PrintStream ps) {
        values.forEach(ps::println);
    }

    void forEach(List<Integer> values, PrintStream ps) {
        values.stream().forEach(ps::println);
    }

    void forEach(List<Integer> values, PrintStream ps) {
        values.parallelStream().forEach(ps::println);
    }

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


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