2008-07-20
Для меня история противостояния 32- и 64-битных систем началась с того момента, как у меня впервые появилась 64-битная машина (это было три года назад, в июле 2005-го).
В разное время на обеих этих машинах побывали CDUX, Archlinux, FreeBSD 5-й и 6-й веток — все они как в 32-битном, так и в 64-битном исполнении. И ни разу я не заметил существенного повышения быстродействия при удвоении разрядности. Исключение составил CRUX 2.1 for AMD64 — визуально это был самый быстрый дистрибутив, который я видел в своей жизни. Хотя и тут 32-битный CRUX от него не сильно отставал, почему, возможно, дальнейшее развитие 64-битного CRUX'а и прекратилось.
Впрочем, тестов я тогда почти не делал, а что делал — по ряду причин не смог довести до ума. Так что всё сказанное основано преимущественно на зрительных впечатлениях. Но согласитесь, что существенные различия в быстродействии заметны обычно и визуально.
Следующая попытка сравнения 32 vs 64 была предпринята с появлением в октябре 2006-го второй 64-битной машины, на которой проживали преимущественно Kubuntu разных версий и Zenwalk. Последний тогда (как и поныне) имел только 32-битную реализацию, тогда как Kubuntu была представлена в обоих вариантах. Вот на ней я и попытался провести серию тестов на сравнительное быстродействие.
Результаты тестов показались мне достаточно тривиальными и совпадающими с визуальными впечатлениями: на всех процессорных операциях никакой разницы, выходящей за пределы ошибки эксперимента, между 32-битной и 64-битной версиями не обнаружилось. А вот на тестах с существенной ролью операций дисковых различия выявились — весьма существенные, и причем не в пользу 64-битного "камня". Чего, впрочем, и можно было ожидать, исходя из общих соображений. Опять-таки, доводить это дело до "товарного вида" мне показалось скучным, да и другие дела появились.
Третий же "подход к снаряду" был связан с появлением у меня двухъядерной машины с процессором от Intel. По некоторым причинам, о которых речь пойдет в следующем разделе, мне показалось интересным сравнить производительность "камней" от AMD и Intel, аналогичных по разрядности, количеству ядер и тактовой частоте. Ну а раз уж я взялся за тесты с намерением их довести до публикации, почему бы было заодно не сравнить номинальное быстродействие 32- и 64-битных систем?
В это же время мне попалась на глаза заметка Алексея Михайлова , как раз и посвященная изучению сравнительной производительности 32-битных и 64-битных версий таких дистрибутивов Linux, как Fedora, OpenSUSE и Ubuntu. В ней автор по результатам серии тестов, как то:
приходит к выводу о безусловном превосходстве 64-битных версий всех рассмотренных дистрибутивов по всем позициям. Причем количественно это превосходство составляло:
Причем наибольшая разница выявилась при конвертации wav в ogg (от 27% для Fedora до 31% для Ubuntu, при промежуточных 29№ в OpenSuse).
Тест же на Flac-кодирование показал плохую воспроизводимость: -0,6% для Fedora, 0,6% для Ubuntu, и аж 45% для OpenSuse. Первый результат автор заметки волюнтаристически отбросил как ошибку эксперимента, хотя с не меньшим основанием это можно было бы сделать для результата по OpenSuse — дистрибутива, никогда и ни с какой стороны не славившегося сверхъестественным быстродействием. Не говоря уж о том, что между -0,6 и 0,6% разница просматривается с трудом.
К тому же и условия тестирования, как они описывались в заметке, были, на мой взгляд, не вполне адекватны: тесты и выполнялись в графическом окружении GNOME, тогда как для использовавшихся в них чисто консольных программах резонно было бы исполнение в консольной же среде. И, насколько можно было понять из заметки, каждый тест выполнялся лишь единократно — уверен, что простое повторение теста на flac-кодирование внесло бы ясность в вопрос, что являлось ошибкой эксперимента.
Всё это и подвигло меня на проведение собственной серии тестов на тему 64 vs 32, результаты которых описаны ниже, приведены в таблице 2 и проиллюстрированы диаграммами.
Таблица 2
Сводные результаты измерений по всем четырем комбинациям процессор - дистрибутив, сек.)
| Процессор | AMD64 X2 6000 | Intel core 2 Duo 8400 | ||||||
| Дистро | Zenwalk | Slamd64 | Zenwalk | Slamd64 | ||||
| FS | tmpfs | ext3 | tmpfs | ext3 | tmpfs | ext3 | tmpfs | ext3 |
| untar | 15,0 | 27,0 | 11,5 | 29,5 | 10,0 | 28,5 | 19,5 | 24,0 |
| tar+bzip2 | 52,5 | 55,0 | 43,5 | 46,0 | 35,0 | 36,0 | 27,0 | 29,0 |
| tar+gzip | 9,0 | 10,0 | 9,5 | 9,5 | 8,0 | 9,0 | 7,0 | 9,0 |
| wav2flac | 29,5 | 30,5 | 28,5 | 29,0 | 26,0 | 27,0 | 30,5 | 29,5 |
| wav2ogg | - | - | - | - | 56,0 | 56,0 | 37,5 | 38,0 |
Примечания:
1. Для каждого из тестов даны средние по трем измерениям.
2. Тест кодирования wav в ogg на AMD-машине не проводился по организационным причинам (машину пора было отдавать).
3. Меньшие значения соответствуют лучшему результату
Приводимые здесь диаграммы показывают сравнительное быстродействие 32- и 64-битных дистрибутивов на обеих аппаратных платформах для операций в tmpfs.


Из таблицы 2 и особенно из диаграмм можно видеть, что на платформе AMD в трех из четырех проведенных тестов (развертывание архива, архивирование парой утилит tar и bzip2, кодирование wav во flac) 64-битный дистрибутив лидирует, причем в первых двух тестах — весьма уверенно. В архивировании же посредством tar и gzip разница между 32- и 64-битной системами настолько мала, что её можно смело считать лежащей в пределах чувствительности метода.
На платформе Intel картина несколько более сложная. Zenwalk с его 32-мя битами оказывается быстрее на развертывании архива и кодировании wav в flac (в первом случае — весьма ощутимо). При архивировании же посредством tar и bzip2 и кодировании цфм в ogg он уступает (во втором случае значительно) 64-битному Slamd'у. Результаты же архивирования с помощью tar и gzip опять можно считать равными.
Таблица 3
Относительные значения быстродействия 32- и 64-битных систем
| AMD | Intel | |
| 64/32 | 64/32 | |
| untar | 0,77 | 1,95 |
| tar+bzip2 | 0,83 | 0,77 |
| tar+gzip | 1,06 | 0,88 |
| wav2flac | 0,97 | 1,17 |
| wav2ogg | - | 0,67 |
Примечание: в числителе - 64-битная система, в знаменателе — 32-битная
Проведенные измерения показывают некоторое, но отнюдь не подавляющее, преимущество 64-битной системы на платформе AMD при примерном равенстве сил на платформе Intel. Из таблицы в приложении видна исключительно хорошая воспроизводимость результатов измерений, которые, таким образом, не могут быть списаны на погрешность эксперимента.