RAD Studio состоит из Delphi и C++Builder. Компилятор Object Pascal в Delphi является однопроходным компилятором, и сам компилятор не является параллельным, однако при компиляции нескольких проектов параллельно он оказался способен скомпилировать 1 миллиард строк кода Object Pascal за 5 минут на машине с 16-ядерным AMD Ryzen 9 5950x. Я хотел выяснить, возможно ли сделать что-то подобное для C++. Этот пост является частью серии статей, в которой мы исследуем значительный прирост производительности, которого можно достичь на самых быстрых на начало 2021 года процессорах. Сколько это — 1 миллиард строк кода? Взгляните сюда.
Читать полностью »
Рубрика «высокая производительность» - 13
Threadripper 3990X: компилируем 1 миллиард строк C++ на 64 ядрах
2021-02-05 в 10:00, admin, рубрики: 3990x, 5950x, amd, c++, ryzen 9, Блог компании VDSina.ru, высокая производительность, Компиляторы, компиляция, Компьютерное железо, ПрограммированиеFizzBuzz по-сениорски
2021-01-31 в 11:26, admin, рубрики: C, fizzbuzz, высокая производительность, интервью, ненормальное программирование, оптимизация, Си, собеседование
- Добрый день, я на интервью на позицию старшего разработчика.
- Здравствуйте, давайте начнем с небольшого теста, пока я ваше CV смотрю. Напишите программу, которая выводила бы числа от 1 до, скажем, миллиарда, притом если число кратно трем, то вместо числа выводится Fizz, если кратно пяти, то Buzz, а если и трем, и пяти, то FizzBuzz.
Серьезно, FizzBuzz? Задачка для начальной школы, на сениорскую позицию? Ну ладно.
Я достаю свой верный лаптоп, и пишу такой Читать полностью »
Гибриды побеждают или холивары дорого
2021-01-10 в 23:05, admin, рубрики: Apache, C#, devops, docker-compose, java, kafkaconnect, RabbitMQ, высокая производительностьМотивом для написания данной статьи послужил тот факт, что на habr.com участилось появление материалов маркетингового характера про Apache Kafka. А также тот факт, что из статей складывается впечатление что пишут их немного далекие от реального использования люди — это конечно же только впечатление, но почему-то в большинстве своем статьи обязательно содержат сравнение Apache Kafka с RabbitMQ, причем не в пользу последнего. Что самое интересное — читая подобные статьи управленцы без технического бэкграунда начинают тратить деньги на внутренние исследования, чтобы ведущие разработчики и технические директора выбрали одно из решений. Так как я очень жадный/домовитый, а также так как я сторонник тезиса "В споре НЕ рождается истина" предлагаю вам ознакомится с другим подходом — почти без сравнения разных брокеров.
Нагрузочное тестирование выполнять сложно, а инструменты далеки от совершенства. Почему?
2021-01-07 в 9:45, admin, рубрики: Apache JMeter, gatling, высокая производительность, нагрузочное тестирование, нагрузочные тесты, Тестирование IT-систем, Тестирование веб-сервисовЕсли вы создаёте приложение, которое должно масштабироваться — а все мы надеемся, что наши приложения будут расти — то в определённый момент нам приходится разбираться, может ли оно это делать на самом деле. Именно тогда на помощь приходит нагрузочное тестирование: если вы хотите узнать, справится ли ваше приложение с крупными масштабами, то мы просто генерируем эти масштабы и проверяем! Звучит достаточно просто.
Но потом мы пробуем действительно сгенерировать нагрузку. Это делается легко, только если ваше приложение ужасно простое, ведь тогда можно использовать что-нибудь типа Apache JMeter для генерации повторяющихся запросов. Если у вас это получится, то я вам завидую: все системы, с которыми мне приходилось работать, сложнее и требовали более изощрённой схемы тестирования.
Если ваше приложение становится чуть сложнее, то вы переходите к инструментам наподобие Gatling. Они позволяют симулировать виртуальных пользователей, выполняющих различные сценарии, что намного полезнее, чем простая осада одного или нескольких URL. Но даже этого недостаточно, если вы пишете приложение, использующее одновременно WebSockets и HTTP-вызовы в течение долговременной сессии, а также требующее повторения по таймеру определённых действий. Возможно, я серьёзно недоглядел чего-то в документации, но мне не удалось найти способа, допустим, настроить периодическое событие, запускаемое каждые 30 секунд и выполняющее определённые действия при ответе на сообщение WebSocket, а также производящее действия по HTTP, и всё это в рамках одной HTTP-сессии. Я не нашёл такой возможности ни в одном инструменте нагрузочного тестирования (и именно поэтому написал на работе свой собственный инструмент, который надеюсь выложить в open source, если найду время на подчистку кода и отделения его от проприетарных частей).
Читать полностью »
ARM сервера — более производительные и более дешёвые
2020-12-31 в 10:51, admin, рубрики: arm64, AWS, EC2, Graviton2, RDS, x86_64, высокая производительность, сервер, Серверная оптимизация, Серверное администрирование, хранение данныхВ этом году Apple потрясла рынок десктопных процессоров чипом Apple M1 и устройствами на нём. Похожее событие произошло в мире облачных вычислений в прошлом году. AWS выпустили новый тип сервера на собственных ARM процессорах Graviton2. По заявлениям Amazon, соотношение производительности к цене у новых процессоров на 40% выше, чем у аналогов на x86. Ещё одно недавнее обновление - сервера Amazon RDS (облачный сервис, предоставляющий сервера баз данных) на Graviton2. Я запустил несколько бенчмарков и нагрузочный тест реального бэкенд приложения, чтобы проверить настолько ли хороши сервера на ARM процессорах и узнать какие проблемы совместимости могут возникнуть.
Читать полностью »
Мы отрендерили миллион страниц, чтобы понять, из-за чего тормозит веб
2020-12-30 в 9:17, admin, рубрики: java, Анализ и проектирование систем, высокая производительность, данные, производительность, Тестирование IT-систем, Тестирование веб-сервисовМы отрендерили 1 миллион самых популярных страниц веба, фиксируя все мыслимые метрики производительности, записывая все ошибки и замечая все запрошенные URL. Похоже, таким образом мы создали первый в мире набор данных, связывающий производительность, ошибки и использование библиотек в сети. В этой статье мы проанализируем, что наши данные могут сообщить о создании высокопроизводительных веб-сайтов.

- Посещён 1 миллион страниц
- Записано по 65 метрик каждой страницы
- Запрошен 21 миллион URL
- Зафиксировано 383 тысячи ошибок
- Сохранено 88 миллионов глобальных переменных
Можно ли превзойти наш анализ? Мы опубликовали наш набор данных на Kaggle, поэтому вы можете обработать данные самостоятельно.
Зачем рендерить миллион веб-страниц?
Сегодня распространено мнение о том, что веб почему-то стал более медленным и забагованным, чем 15 лет назад. Из-за постоянно растущей кучи JavaScript, фреймворков, веб-шрифтов и полифилов, мы съели все преимущества, которые даёт нам увеличение возможностей компьютеров, сетей и протоколов. По крайней мере, так утверждает молва. Мы хотели проверить, правда ли это на самом деле, а также найти общие факторы, которые становятся причиной торможения и поломок сайтов в 2020 году.
Общий план был простым: написать скрипт для веб-браузера, заставить его рендерить корневую страницу миллиона самых популярных доменов и зафиксировать все мыслимые метрики: время рендеринга, количество запросов, перерисовку, ошибки JavaScript, используемые библиотеки и т.п. Имея на руках все эти данные, мы могли бы начать задаваться вопросами о том, как один фактор корреллирует с другим. Какие факторы сильнее всего влияют на замедление рендеринга? Какие библиотеки увеличивают время до момента возможности взаимодействия со страницей (time-to-interactive)? Какие ошибки встречаются наиболее часто, и что их вызывает?
Читать полностью »
Новогодние бенчмарки компьютеров Эльбрус
2020-12-28 в 22:25, admin, рубрики: .net, java, javascript, Lua, php, python, бенчмарки, высокая производительность, Компьютерное железо, ненормальное программирование, Процессоры, ЭльбрусНовогодние бенчмарки компьютеров Эльбрус
Продолжение статьи Большое тестирование процессоров различных архитектур. В этот раз я решил измерить производительность конкретных сред/языков программирования (C#, Java, JavaScript, Python, Lua) на компьютерах с процессорами Эльбрус и сравнить их с компьютерами (даже телефонами) на процессорах архитектурой ARM и X86-64.
Языки программирования:
- C#
- PHP
- JavaScript (Browser, не NodeJS)
- Java
- Python
- Lua
Список тестов
- Dhrystone (http://www.roylongbottom.org.uk/#anchorSource)
- Whetstone (http://www.roylongbottom.org.uk/#anchorSource)
- Scimark 2 (Original sources: https://math.nist.gov/scimark2/download.html)
- Linpack (Based on: https://github.com/fommil/netlib-java/blob/master/perf/src/main/java/com/github/fommil/netlib/Linpack.java)
- Generic:
- Loops
- Conditions
- Arithmetics
- Math
- Array speed
- String manipulation
- Hash algorithms
Но сперва приведу результаты нативных бенчмарков на языке C, а также результаты других популярных бенчмарков.
80-ядерные ARM-процессоры Ampere Altra протестировали: производительность на уровне AMD EPYC 7742
2020-12-27 в 12:56, admin, рубрики: 7нм, Ampere Altra, Блог компании Selectel, высокая производительность, Исследования и прогнозы в IT, Компьютерное железо, Процессоры, чипы
Летом этого года компания Ampere представила 128-ядерный ARM-процессор Altra Max. А весной она же анонсировала первый в отрасли 80-ядерный процессор Ampere Altra. Тогда сообщалось, что он предназначен для работы в серверном оборудовании, а не в потребительских устройствах.
На днях стало известно о том, что компания разослала разным обозревателям двухсокетные платформы Mount Jade. Сторонники ARM-архитектуры могут быть довольны — результаты тестирования положительные. В ряде тестов чипы не отстают от аналогов x86-64, а в чем-то их и превосходят.
Читать полностью »
Да ты гонишь! Почему на одних конфигурациях оперативка разгоняется выше, чем на других
2020-12-25 в 12:24, admin, рубрики: amd, B450, HyperX Fury DDR4, HyperX Predator DDR4, intel, Q470, Блог компании Kingston Technology, высокая производительность, комплектующие, комплекты памяти, Компьютерное железо, Настольные компьютеры, настройка таймингов, оперативная память, производительность, процессор, Процессоры, разгон памяти, Типы памяти, частота памяти, частоты памятиРазгон памяти, дело добровольное. Как понять, от чего зависит разгон памяти, какие есть тонкости в подборе комплектующих и как «прогнать» память, чтобы было за нее не стыдно!
Изучение, анализ и подбор – три составляющих успеха в разгоне памяти. Чтобы начать разгонять память без погружения в пучины технических знаний, необязательно быть специалистом. Половина успеха зависит от платформы, вторая часть – это правильный выбор ранговости, количество модулей и частот памяти Kingston и HyperX.
Читать полностью »
OLED — технология года в дисплеях ноутбуков
2020-12-18 в 10:32, admin, рубрики: asus, oled, oled display, Блог компании ASUS, высокая производительность, дисплей, Компьютерное железо, ноутбук, НоутбукиПривет! Осталось совсем чуть-чуть до Нового года, и пора поговорить о том, что готовят нам производители ноутбуков в следующем году. Я приоткрою завесу тайны и расскажу о новинках и технологиях, которые ASUS представит на грядущей выставке CES 2021. Главным нововведением следующего года в ноутбуках, на мой взгляд, станет массовое использование OLED дисплеев и вот почему!
