Компьютерный ресурс У SM. Две средние видеокарты вместо одной топовой. ⇡ Производительность, синтетические тесты

Благодаря началу продаж процессоров AMD Ryzen 5 раньше намеченного срока (11 апреля) первые обзоры данных процессоров появляются уже сейчас. Мы уже рассказывали вкратце о производительности 4-ядерного процессора Ryzen 5 1400 в синтетических тестах и современных играх . Теперь же наши испанские коллеги из El Chapuzas Informatico опубликовали обзор 6-ядерного процессора AMD Ryzen 5 1600.

Данный процессор обладает шестью физическими ядрами на каждое из которых приходится по два вычислительных потока, что в итоге даёт двенадцать потоков. Базовая частота процессора составляет 3.2 ГГц, и она может динамически повышаться до 3.6 ГГц. Объём общей кэш-памяти третьего уровня у AMD Ryzen 5 1600 составляет 16 Мбайт (8+8 Мбайт), а на каждое ядро приходится по 512 кБайт кэша второго уровня и по 64 и 32 кБайт кэша инструкций и данных первого уровня, соответственно. Как и другие процессор Ryzen, этот чип выполнен в корпусе Socket AM4, а его TDP составляет 64 Вт. Рекомендованная стоимость новинки для рынка США составляет $219.

Конфигурация тестового стенда, использованного нашими коллегами, представлена следующими комплектующими:

  • Материнская плата: MSI X370 XPower Gaming Titanium;
  • Оперативная память: G.Skill TridentZ DDR4 3600 МГц, работающая на частоте 2400 МГц;
  • Видеокарта: MSI GeForce GTX 1070 Gaming Z;
  • Блок питания: Be Quiet! Dark Power Pro11 1200 В;
  • Твердотельные накопители: Kingston SSDNow KC400 128 Гбайт и Corsair LX 512 Гбайт;
  • Система охлаждения: Wraith Spire;
  • Операционная система: Windows 10 64 бит.

Производительность одного ядра процессора Ryzen 5 1600 ожидаемо не сильно отличается от производительности одного ядра Ryzen 7 1700X, так как они построены на одних и тех же кремниевых кристалла, только у шестиядерного процессора отключено два ядра.

В многопоточных же тестах CPU-Z и wPrime 2.1 (32M) новинка показала вполне ожидаемые результаты, продемонстрировав весьма неплохой уровень производительности.

В Cinebench 15 новинка опередила не только разогнанный до 4.9 ГГц и дополненный более быстрой памятью (3600 МГц) более дорогой четырёхъядерный Intel Core i7-7700K, но и шестиядерный Intel Core i7-5930K. А вот в кодировании видео последний оказался быстрее.

С памятью процессор Ryzen 5 1600 работает отнюдь не лучшим образом, хотя и немного лучше, по сравнению с Ryzen 7 1700X.

В некоторых синтетических тестах новинка AMD показывает лучшие результаты, по сравнению с Ryzen 7 1700X, а в некоторых незначительно проигрывает ему. В большинстве же синтетических тестов процессор Intel Core i7-6700K оказывается быстрее обоих представителей AMD.

Что касается игровой производительности, то она весьма впечатляет. В большинстве тестов в разрешении Full HD (1920 х 1080 точек) новинка несильно отстаёт, от более дорогого Intel Core i7-6700K, а в некоторых и опережает его. Интересно отметить, что в играх Doom (при использовании OpenGL) и Rise of Tomb Raider (при использовании DirectX 11) процессор Ryzen 5 1600 значительно опережает Ryzen 7 1700X.

В разрешении 4K UHD (3840 x 2160 точек) ситуация обстоит примерно таким же образом, и в случае с большинством игр всё упёрлось в производительность видеокарты.

Со штатной системой охлаждения частоту процессора получилось поднять до 3.9 ГГц, при этом напряжение на ядре составило 1.36 В. Интересно будет посмотреть, на сколько удастся разогнать новинку с жидкостным охлаждением, и какие частоты её покорятся в экстремальном разгоне.

Температура процессора AMD Ryzen 5 1600 в простое составляет 39 градусов по Цельсию, а под нагрузкой 62 – 65 градусов Цельсия. Потребление системы на базе новинки в играх составило 245 Вт, что примерно равно потреблению системы на базе Intel Core i7-6700K, которое равное 250 Вт.

Синтетические тесты

В оригинальном обзоре все тесты идут на разных страницах, я же их объединю для удобства, но разделю на синтетику и игровые.

Wprime 2.0

Известная утилита для тестирования многоядерных процессоров, определяет их мощность, производя определённые вычисления. Чем меньше времени затрачено на выполнение теста - тем лучше результат.

Самым шустрым (что не удивительно - с его-то тактовой частотой) оказался главный процессор сегодняшнего теста. Неприятно удивило, что Core i5 2300 отстал почти на секунду от i5 760 (при одинаковой частоте). Наверное сказался меньший размер кеша третьего уровня.

Fritz Chess Benchmar

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

"Старичка" Core i5 760 обогнали все представители семейства Sandy Bridge.

WinRAR 3.92

Данный архиватор не нуждается в представлении. Производительность будет определяться количеством КБ/с при сжатии определённых файлов. Чем больше - тем лучше.


Картина как и в первом тесте, лидирует 2500К, за ним с большим отставанием идёт 760-й, в двух шагах от которого - i5 2300.

7-Zip 9.13

Ещё один известный архиватор, который я лично многим порекомендовал (жмёт намного лучше, чем RAR и ZIP, хорошо дружит с многоядерными процессорами и ОСями х64, плюс полностью бесплатен) в своё время. Производительность рассчитывается также, как в предыдущем тесте.


Тест проходил в режиме компрессии (первый график) и декомпрессии (второй) файлов. Хорошо видно, кто лидирует и насколько.

Adobe Photoshop CS5

Знаменитый пакет для обработки графических файлов. Я не уловил как конкретно тестировались процессоры (есть идеи - выскажитесь), но тем не менее давайте посмотрим на результаты:


Видимо, результат в секундах. Чем меньше - тем лучше. Лидируют "Песчаные мосты"

POV-Ray 3.7

POV-Ray - популярная программа с открытым кодом для тестирования процессоров в операциях с плавающей точкой. Количество очков в тесте - это количество отрендеренных пикселей в секунду, чем их больше, тем лучше.


Ситуация из предыдущего теста повторяется. Обратите внимание, какое преимущество у i5 2300 перед i5 760 (напомню, что тактовая частота, у обоих процессоров, одинаковая)! Определённо, новая архитектура показывает характер. Или помогает Turbo-режим?

CineBench R11.5

"Синебенч" не нуждается в представлении, отличный тест производительности процессора (как в режиме 1 потока, так и нескольких) в условиях 3Д рендеринга.


Картинка точь в точь такая же, как в предыдущих нескольких тестах. "Мосты" впереди, 760-й - позади. И преимущество новинок очень солидное.

H.264 Encoder V2

Кодирование видео - задача, для которой частенько берут мощные процессоры. Чем меньше времени уходит на кодирование видеоматериала в h264, тем лучше.


Бедняга 760-й! Sandy Bridge"и не дают ему ни шанса на победу. Уже хочу такой процессор (только хексакор, хотя бы), лучше сразу разогнанный до 4.5-5ГГц. А то на Atom"е и Q9550 кодировать видео уже не так радостно, как раньше

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

Не так давно Bill Torpey написал в своем блоге заметку "Even Mo" Static ", где рассказал, как, на его взгляд, показали себя инструменты Cppcheck и PVS-Studio при анализе проекта itc-benchmarks . Проект itc-benchmarks - это static analysis benchmarks from Toyota ITC.

Мне не понравилось, что после прочтения статьи создается впечатление, что анализаторы Cppcheck и PVS-Studio приблизительно равны в своих возможностях. Из статьи следует, что один анализатор показывает себя лучше в одном, второй в другом, но в целом их диагностические возможности похожи.

Я думаю, что это не так. Мое мнение - наш анализатор PVS-Studio в несколько раз мощнее, чем Cppcheck. И вообще, это не «мнение», я знаю это!

Однако, раз со стороны не видно, что PVS-Studio в 10 раз лучше Cppcheck, то надо попытаться понять причину. Я решил посмотреть на этот самый itc-benchmarks и разобраться, почему PVS-Studio показал себя на этой тестовой базе не лучшим образом.

Чем дальше я разбирался, тем большее раздражение я испытывал. А один пример совсем вывел меня из равновесия, и о нем я расскажу чуть ниже. Мои выводы такие: у меня нет претензий к Bill Torpey. Он написал хорошую, честную статью. Спасибо, Bill. Зато у меня есть претензии к Toyota ITC. Мое личное мнение: их тестовая база - хрень. Это, конечно, громкое заявление, но я считаю, что имею достаточную квалификацию и опыт, чтобы рассуждать о статических анализаторах кода и способах их оценки. По моему мнению, itc-benchmarks не может быть использован для адекватной оценки возможностей того или иного анализатора.

А вот собственно тест, который окончательно вывел меня из душевного равновесия.

Так что же получается, PVS-Studio на этом примере слабее чем Cppcheck? Нет, он как раз сильнее!

Анализатор PVS-Studio понимает, что этот код написан сознательно и никакой ошибки здесь нет.

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

Void GpuChildThread::OnCrash() { LOG(INFO) << "GPU: Simulating GPU crash"; // Good bye, cruel world. volatile int* it_s_the_end_of_the_world_as_we_know_it = NULL; *it_s_the_end_of_the_world_as_we_know_it = 0xdead; }
Поэтому в анализаторе PVS-Studio в диагностике V522 реализовано несколько исключений, чтобы как раз не ругаться на такой код. Анализатор видит, что null_pointer_001 является ненастоящей функцией. Не бывает в реальном коде ошибок в функциях, когда ноль записывают в указатель и сразу его разыменовывают. Да и имя функции говорит анализатору, что «нулевой указатель» здесь неспроста.

Для подобных случаев, в диагностике V522 реализовано исключение A6. Под него же попадает и синтетическая функция null_pointer_001 . Вот как опасно исключение A6:

Разыменование переменной находится в функции, в названии которой есть одно из слов:

  • error
  • default
  • crash
  • null
  • test
  • violation
  • throw
  • exception
При этом, переменной присваивается 0 строчкой выше.

Синтетический тест полностью подошел под это исключение. Во-первых, в названии функции есть слово «null». Во-вторых, присваивание нуля переменной происходит как раз на предыдущей строке. Исключение выявило ненастоящий код. И код действительно не настоящий, это синтетический тест.

Вот из-за подобных нюансов я и не люблю синтетические тесты!

У меня есть к itc-benchmarks и другие претензии. Например, всё в том же файле, мы можем видеть вот такой тест:

Void null_pointer_006 () { int *p; p = (int *)(intptr_t)rand(); *p = 1; /*Tool should detect this line as error*/ /*ERROR:NULL pointer dereference*/ }
Функция rand может вернуть 0, который затем превратится в NULL. Анализатор PVS-Studio пока не знает, что может вернуть rand и поэтому не видит в этом коде ничего подозрительного.

Я попросил коллег научить анализатор лучше понимать, что из себя представляет функция rand . Деваться некуда, придётся подточить напильником анализатор, чтобы он лучше себя показывал на рассматриваемой тестовой базе. Это вынужденная мера, раз для оценки анализаторов используют подобные наборы тестов.

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

Я хочу, чтобы разработчики понимали, что пример с rand ничего на самом деле не оценивает. Это синтетический тест, который высосан из пальца. Не пишут так программы. Нет таких ошибок.

Кстати, если функция rand вернёт не 0, а 1400 лучше не будет. Все равно такой указатель разыменовывать нельзя. Так что разыменование нулевого указателя какой-то странный частный случай совершенно некорректного кода, который просто был выдуман и который не встречается в реальных программах.

Мне известны настоящие программистские беды. Например, это опечатки, которые мы выявляем сотнями, скажем, с помощью диагностики V501 . Что интересно, в itc-benchmarks я не заметил ни одного теста, где проверялось, может ли анализатор обнаружить опечатку вида «if (a.x == a.x)». Ни одного теста!

Таким образом, itc-benchmarks игнорирует возможности анализаторов по поиску опечаток. А читатели наших статей знают, насколько это распространенные ошибки. Зато содержит, на мой взгляд, дурацкие тестовые кейсы, которые в реальных программах не встречаются. Я не могу представить, что в настоящем серьезном проекте можно повстречать вот такой код, который приводит к выходу за границу массива:

Void overrun_st_014 () { int buf; int index; index = rand(); buf = 1; /*Tool should detect this line as error*/ /*ERROR: buffer overrun */ sink = buf; }
Пожалуй, такое можно встретить разве только в лабораторных работах студентов.

При этом я знаю, что в серьезном проекте легко встретить опечатку вида:

Return (!strcmp (a->v.val_vms_delta.lbl1, b->v.val_vms_delta.lbl1) && !strcmp (a->v.val_vms_delta.lbl1, b->v.val_vms_delta.lbl1));
Эту ошибку анализатор PVS-Studio

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

Не так давно Bill Torpey написал в своем блоге заметку "Even Mo" Static ", где рассказал, как, на его взгляд, показали себя инструменты Cppcheck и PVS-Studio при анализе проекта itc-benchmarks . Проект itc-benchmarks - это static analysis benchmarks from Toyota ITC.

Мне не понравилось, что после прочтения статьи создается впечатление, что анализаторы Cppcheck и PVS-Studio приблизительно равны в своих возможностях. Из статьи следует, что один анализатор показывает себя лучше в одном, второй в другом, но в целом их диагностические возможности похожи.

Я думаю, что это не так. Мое мнение - наш анализатор PVS-Studio в несколько раз мощнее, чем Cppcheck. И вообще, это не «мнение», я знаю это!

Однако, раз со стороны не видно, что PVS-Studio в 10 раз лучше Cppcheck, то надо попытаться понять причину. Я решил посмотреть на этот самый itc-benchmarks и разобраться, почему PVS-Studio показал себя на этой тестовой базе не лучшим образом.

Чем дальше я разбирался, тем большее раздражение я испытывал. А один пример совсем вывел меня из равновесия, и о нем я расскажу чуть ниже. Мои выводы такие: у меня нет претензий к Bill Torpey. Он написал хорошую, честную статью. Спасибо, Bill. Зато у меня есть претензии к Toyota ITC. Мое личное мнение: их тестовая база - хрень. Это, конечно, громкое заявление, но я считаю, что имею достаточную квалификацию и опыт, чтобы рассуждать о статических анализаторах кода и способах их оценки. По моему мнению, itc-benchmarks не может быть использован для адекватной оценки возможностей того или иного анализатора.

А вот собственно тест, который окончательно вывел меня из душевного равновесия.

Так что же получается, PVS-Studio на этом примере слабее чем Cppcheck? Нет, он как раз сильнее!

Анализатор PVS-Studio понимает, что этот код написан сознательно и никакой ошибки здесь нет.

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

Void GpuChildThread::OnCrash() { LOG(INFO) << "GPU: Simulating GPU crash"; // Good bye, cruel world. volatile int* it_s_the_end_of_the_world_as_we_know_it = NULL; *it_s_the_end_of_the_world_as_we_know_it = 0xdead; }
Поэтому в анализаторе PVS-Studio в диагностике V522 реализовано несколько исключений, чтобы как раз не ругаться на такой код. Анализатор видит, что null_pointer_001 является ненастоящей функцией. Не бывает в реальном коде ошибок в функциях, когда ноль записывают в указатель и сразу его разыменовывают. Да и имя функции говорит анализатору, что «нулевой указатель» здесь неспроста.

Для подобных случаев, в диагностике V522 реализовано исключение A6. Под него же попадает и синтетическая функция null_pointer_001 . Вот как опасно исключение A6:

Разыменование переменной находится в функции, в названии которой есть одно из слов:

  • error
  • default
  • crash
  • null
  • test
  • violation
  • throw
  • exception
При этом, переменной присваивается 0 строчкой выше.

Синтетический тест полностью подошел под это исключение. Во-первых, в названии функции есть слово «null». Во-вторых, присваивание нуля переменной происходит как раз на предыдущей строке. Исключение выявило ненастоящий код. И код действительно не настоящий, это синтетический тест.

Вот из-за подобных нюансов я и не люблю синтетические тесты!

У меня есть к itc-benchmarks и другие претензии. Например, всё в том же файле, мы можем видеть вот такой тест:

Void null_pointer_006 () { int *p; p = (int *)(intptr_t)rand(); *p = 1; /*Tool should detect this line as error*/ /*ERROR:NULL pointer dereference*/ }
Функция rand может вернуть 0, который затем превратится в NULL. Анализатор PVS-Studio пока не знает, что может вернуть rand и поэтому не видит в этом коде ничего подозрительного.

Я попросил коллег научить анализатор лучше понимать, что из себя представляет функция rand . Деваться некуда, придётся подточить напильником анализатор, чтобы он лучше себя показывал на рассматриваемой тестовой базе. Это вынужденная мера, раз для оценки анализаторов используют подобные наборы тестов.

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

Я хочу, чтобы разработчики понимали, что пример с rand ничего на самом деле не оценивает. Это синтетический тест, который высосан из пальца. Не пишут так программы. Нет таких ошибок.

Кстати, если функция rand вернёт не 0, а 1400 лучше не будет. Все равно такой указатель разыменовывать нельзя. Так что разыменование нулевого указателя какой-то странный частный случай совершенно некорректного кода, который просто был выдуман и который не встречается в реальных программах.

Мне известны настоящие программистские беды. Например, это опечатки, которые мы выявляем сотнями, скажем, с помощью диагностики V501 . Что интересно, в itc-benchmarks я не заметил ни одного теста, где проверялось, может ли анализатор обнаружить опечатку вида «if (a.x == a.x)». Ни одного теста!

Таким образом, itc-benchmarks игнорирует возможности анализаторов по поиску опечаток. А читатели наших статей знают, насколько это распространенные ошибки. Зато содержит, на мой взгляд, дурацкие тестовые кейсы, которые в реальных программах не встречаются. Я не могу представить, что в настоящем серьезном проекте можно повстречать вот такой код, который приводит к выходу за границу массива:

Void overrun_st_014 () { int buf; int index; index = rand(); buf = 1; /*Tool should detect this line as error*/ /*ERROR: buffer overrun */ sink = buf; }
Пожалуй, такое можно встретить разве только в лабораторных работах студентов.

При этом я знаю, что в серьезном проекте легко встретить опечатку вида:

Return (!strcmp (a->v.val_vms_delta.lbl1, b->v.val_vms_delta.lbl1) && !strcmp (a->v.val_vms_delta.lbl1, b->v.val_vms_delta.lbl1));
Эту ошибку анализатор PVS-Studio

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

К сожалению, не все пользователи знают, что такое рейтинг AnTuTu, зачем он нужен и что означают данные в его таблицах. Меж тем эта информация очень полезна и может оказать вам реальную помощь при выборе нового устройства. Что такое рейтинг AnTuTu, как им пользоваться и о чем говорят результаты прохождения теста - вам расскажут эксперты НОУ-ХАУ, поехали!

Для начала разберем, что такое «синтетические тесты» и для чего они нужны. Подобные приложения представляют собой проверочные программы. Скачать их можно совершенно бесплатно в фирменных магазинах приложений для наиболее популярных мобильных ОС – Android и iOS.

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

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

Баллы – это замечательно, но возникает вполне логичный вопрос – как по их количеству определить примерную производительность девайса?

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

Естественно, чем лучше производительность устройства – тем выше его стоимость, недаром флагманские решения занимают ТОП 10 рейтинга. Но есть и другие категории девайсов, в том числе и бюджетных, которые обеспечивают оптимальную производительность для выполнения практически любых задач.

Условно можно выделить несколько категорий по результатам тестирования, выраженных в диапазонах баллов AnTuTu, которые приведены в таблице ниже.

Сводная таблица оценок AnTuTu и производительности

Подведение итогов

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

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

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

Понравилось?
Расскажите друзьям!