Рубрика «бенчмарки» - 7

Борьба с  TOAST или будущее JSONB в PostgreSQL - 1

В PostgreSQL есть два типа данных: JSON и JSONB. Первый формат является текстовым хранилищем, в котором json хранится "as is",  второй — бинарным, в нем ключи отсортированы  (сначала по длине ключа, а потом по его названию), дубликаты удалены, а пробелы удалены.  Этот SQL-запрос иллюстрирует различие между JSON и JSONB:

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

Тестируем лучшие видеокарты для расчетов на конец 2021 года: 3090 Turbo и A10 - 1

Недавно на Хабре была статья про сравнение карточек для вычислений. На мой взгляд статья получилась очень даже неплохой, но в ней никак не отразили позиции RTX 3090 Turbo и как-то подозрительно мало времени уделили А10.

На мой взгляд среди карточек с "большим" объемом памяти (более 12 гигабайт) по рекомендованной рыночной цене (РРК) 3090 является лидером хит-парада, а по рыночной цене — скорее уже А10. Детальный разбор почему и как я подходил к выбору карточек и тестированию — прошу под кат.

Также так случилось, что у меня под рукой оказалось большое количество рейзеров разной степени говённости. И сначала я замахивался, чтобы поставить некую точку в вечных дебатах про райзеры (а мнения разнятся от такого до банального "не работает" или "для DL нельзя использовать"), но в итоге все получилось чуть более сумбурно. Но я постарался подойти к тестированию райзеров тоже структурированно и аналитически.

И последнее — в прошлой статье я сокрушался, что мол нет на рынке большого выбора однослотовых решений по вменяемой цене. Теперь на выбор решений много, но с доступностью и ценами ситуация лучше не стала (есть как минимум 2 поколения карточек Quadro и Tesla A10, но геймерских нет, насколько я знаю).

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

GTA Online. Многопользовательская игра, печально известная медленной загрузкой. Недавно я вернулся, чтобы завершить несколько ограблений — и был потрясён, что она загружается настолько же медленно, как и в день своего выпуска, 7 лет назад.

Пришло время докопаться до сути.

Разведка

Сначала я хотел проверить, вдруг кто-то уже решил проблему. Но нашёл только рассказы о великой сложности игры, из-за чего она так долго загружается, истории о том, что сетевая p2p-архитектура — мусор (хотя это не так), некоторые сложные способы загрузки в сюжетный режим, а потом в одиночную сессию, и ещё пару модов, чтобы скипнуть видео с логотипом R* во время загрузки. Ещё немного почитав форумы, я узнал, что можно сэкономить колоссальные 10-30 секунд, если использовать все эти способы вместе!
Читать полностью »

Несколько дней назад в базах результатов комплексного бенчмарка PassMark засветились показатели тестирования анонсированного в рамках CES 2021 семейства Rocket Lake-S в лице топового представителя Intel Core i9-11900K. Результаты тестирования быстро стали основой для однотипных новостей на различных порталах, однако никто не потрудился соотнести их с текущей ситуацией на рынке процессоров.

Тестирование процессора Intel Core i9-11900K и анализ результатов PassMark - 1

Чтобы это исправить, мы специально собрали собственный тестовый стенд и провели тестирование нового процессора компании Intel.

Нужно понимать, что Intel Core i9-11900K и Intel Core i7-11700K — промежуточные решения от производителя, которые вышли в откровенное «межсезонье». Принципиальное новое, двенадцатое поколение процессоров Intel на новом техпроцессе 10 нм будут анонсированы и поступят в продажу, по заверениям производителя, уже осенью 2021 года. То есть цикл жизни нового флагмана Intel Core i9-11900K — всего около 6-8 месяцев.
Читать полностью »

Новогодние бенчмарки компьютеров Эльбрус

LuaBenchmarks.png

Продолжение статьи Большое тестирование процессоров различных архитектур. В этот раз я решил измерить производительность конкретных сред/языков программирования (C#, Java, JavaScript, Python, Lua) на компьютерах с процессорами Эльбрус и сравнить их с компьютерами (даже телефонами) на процессорах архитектурой ARM и X86-64.

Языки программирования:

  • C#
  • PHP
  • JavaScript (Browser, не NodeJS)
  • Java
  • Python
  • Lua

Список тестов

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

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

Бенчмарки Apple M1 в реальной разработке - 1

Я очень впечатлён результатами тестов Apple M1. Это действительно быстрый и мощный чип в важных повседневных задачах, таких как просмотр веб-страниц, работа с приложениями x86 и инструментами разработчика. Да, экосистема ещё не развита, и это может занять некоторое время, но эта работа стоит того, с учётом феноменальной производительности M1.

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

Следует иметь в виду, что некоторые наборы тестов нагружают память, другие зависят от производительности CPU, а в некоторых задачах нет преимущества от многоядерной обработки из-за накладных расходов или сложности использования многопоточности. Это означает, что M1 может показать лучший результат, чем десктопный Ryzen даже с меньшим количеством ядер. Самое главное, что я сосредоточился на тестах реальных задач разработки, а не на синтетических тестах продакшна.
Читать полностью »

Что самое смешное — <br> я собирал хаскель-код через LLVM-бекенд,<br> но при этом сравнивал с GCC
В статье [ссылка] было заявлено, что производительность Haskell кода превзошла код на С++. Что сразу вызвало интерес, т.к. и то и другое может генерироваться LLVM компилятором, значит либо Наskell может давать больше хинтов компилятору, либо что-то не так с С++ реализацией. Далее мы разберём, как череда случайностей в действиях автора привела к неправильным выводам, которые описываются таблицей ниже (под катом).

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

64-ядерный Ryzen Threadripper 3990X разгромил в тестах все процессоры Intel, включая Xeon стоимостью $20 000 - 1

За несколько дней до начала продаж в базах SiSoftware, GeekBench и UserBenchmark появились бенчмарки 64-ядерного процессора AMD Ryzen Threadripper 3990X. Теперь можно на фактах убедиться, насколько далеко компания AMD вырвалась вперёд в технологической гонке благодаря внедрению микроархитектуры Zen 2. Фактически, у неё сейчас нет конкурентов.

Например, в тесте арифметических операций один 64-ядерный процессор Ryzen Threadripper 3990X показал на 19% лучший результат, чем два 28-ядерных процессора Xeon Platinum 8280, общая стоимость которых превышает $20 000. Аналогичная картина в других тестах.
Читать полностью »

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

В тестах A/B мы попытались замедлять выдачу страниц с шагом 100 миллисекунд и обнаружили, что даже очень небольшие задержки приводят к существенному падению доходов. — Грег Линден, Amazon.com

По опыту, низкая производительность проявляется одним из двух способов:

  • Операции, которые хорошо выполняются в небольших масштабах, становятся нежизнеспособными с ростом числа пользователей. Обычно это операции O(N) или O(N²). Когда база пользователей мала, всё работает отлично. Продукт спешат вывести на рынок. По мере роста базы возникает всё больше неожиданных патологических ситуаций — и сервис останавливается.
  • Много отдельных источников неоптимальной работы, «смерть от тысячи порезов».

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

Публикую предпоследнюю часть разбора с третьей задачей. До этого выходил разбор первой задачи и второй задачи.

Код к третьей задаче:

    public static double compute(
            double x1, double y1, double z1,
            double x2, double y2, double z2) {
        double x = y1 * z2 - z1 * y2;
        double y = z1 * x2 - x1 * z2;
        double z = x1 * y2 - y1 * x2;
        return x * x + y * y + z * z;
    }

    public static double compute(
            double x1, double y1, double z1,
            double x2, double y2, double z2) {
        Vector v1 = new Vector(x1, y1, z1);
        Vector v2 = new Vector(x2, y2, z2);
        return v1.crossProduct(v2).squared();
    }

    public final static class Vector {
        private final double x, y, z;

        public Vector(double x, double y, double z) {
            this.x = x; this.y = y; this.z = z;
        }

        public double squared() {
            return x * x + y * y + z * z;
        }

        public Vector crossProduct(Vector v) {
            return new Vector(
                    y * v.z - z * v.y,
                    z * v.x - x * v.z,
                    x * v.y - y * v.x);
        }
    }

Условие (упрощённо):

Определить, какие методы быстрые, а какие — медленные (JRE 1.8.0_161).

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


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