Почему не стоит доверять цифрам

Он и нас сосчитал...

(из мультфильма про математически подкованного козленка)

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

Почему? Посмотрим на конкретных случаях. Например, известно, что "люди покупают мегагерцы". То есть процессор с частотой 1.5 ГГц должен по определению быть "круче" процессора на 1 ГГц. И это правда - но только пока речь идет об одинаковых процессорах. Если же сравниваются разные архитектуры, то смысл для конечного пользователя будет нести только их сравнительная производительность при выполнении тех конкретных задач, с которыми он работает. И если компания A сообщает, что их новый "супер-пупер процессор" в три раза быстрее процессоров компании B по результатам теста, разработанного(и оптимизированного) компанией A специально для "супер-пупер процессора", то это явное запудривание мозгов. В таких случаях правильный ответ может дать только тестирование на real world тестах, то есть на реальных программах. В отношении процессоров такими тестами уже давно стали игры (Quake 3, Unreal Tournament и т.д.). Почему? Потому что такая программа реально существует, есть практически у каждого пользователя и отражает реальное быстродействие всей системы целиком. Хорошим дополнением к этим реальным тестам производительности могут стать тесты синтетические, вроде WinBench CPUMark, которые пытаются мерить производительность одного компонента компьютера при выполнении четко определенных наборов команд.

Здесь мы подходим ко второму моменту, из-за которого надо относиться ко всем измерениям "компьютерной скорости" с долей здорового скептицизма. Попробуйте, например, построить график функции Y = X. Это прямая и это все проходили в школе. А теперь сделайте то же самое для функции Y = aX+b, где a и b все время случайным образом меняются. Что, не похоже на прямую? И правильно, это у нас уже функция трех переменных - откуда здесь быть прямой? То же самое и в компьютерных измерениях: допустим, вы меряете производительность в FPS в Quake относительно скорости процессора. Скажем, месяц назад у вас был процессор на 600 МГц, а теперь появился новый на 800, и вы хотите узнать, насколько быстрее все завертится от этих самых дополнительных 200 МГц чистой процессорной мощности. Но учтите, что за месяц у вас поменялась видеокарта, материнская плата, память, вы прошили новый BIOS, поставили самые последние драйверы (которых за месяц вышло три версии) и новый Service Pack на операционку. И насколько полученный теперь результат будет зависеть от процессора? В общем, мораль здесь такова - чтобы получить сколь-нибудь достоверные данные об изменении производительности Y от частоты процессора (новой видеокарты, новой материнской платы, новой памяти, нового BIOS'а, новых драйверов) X надо зафиксировать все остальные переменные. Вот именно поэтому в любом грамотном обзоре приводится конфигурация харда и софта, на котором он был проделан. Чтобы любой другой желающий мог воспроизвести полученный результат или знал, при каких условиях он воспроизводится. Любую другую информацию можно рассматривать только в чисто качественной форме (стало лучше - стало хуже). Численные же результаты здесь будут только для красоты.

Ну и в заключение пару слов о программах определения конфигурации компьютера. Любая программа знает только то, что знал ее создатель на момент выпуска программы, и ни байтом больше. Если ваша Sandra сообщает вам, что в компьютере установлен Athlon с 1 Кб кэша (а вы покупали Duron, у которого по паспорту кэша 192 Кб), то это не значит, что злобный сборщик злобной фирмы злобно подсунул вам бракованный процессор с китайской свалки, а лишний кэш загнал на рынке за бешеные деньги. Это значить только, что ваша Sandra выпущена до появления Duron и не умеет его корректно определять. Она ведь, в отличие от вас, не может снять с процессора вентилятор и посмотреть, что на нем написано. Она вынуждена довольствоваться цифрой, которую ей вернул процессор по команде Cpuid. И если эта цифра не прописана в таблице соответствий программы, значит, и определяться все будет неправильно. Аналогичную ситуацию мы имеем с памятью. У контроллера памяти нет глаз, и он не видит новую планку, которую вы вставили в компьютер. Все данные он берет из микросхемы SPD на планке, а они, в свою очередь, прошиваются туда производителем модуля. И если модуль собран в китайском или минском подвале, то в SPD могут прошить что угодно.

Мораль сего несколько сумбурного текста такова - чтобы пользоваться тестами и утилитами системной информации (да и вообще любой измерительной аппаратурой), сначала разберитесь, что вы меряете и как именно вы это меряете. Скачайте последнюю версию программы (особенно если у вас стоит железо, выпущенное в течение последних нескольких месяцев). Прочитайте мануал и убедитесь, что программа может корректно распознать то, что вы предлагаете ей. Иначе, увидев пустую клетку с надписью "тигр", вы всю жизнь будете думать, что тигра невооруженным глазом увидеть невозможно.

Константин АФАНАСЬЕВ,
AKG_Monster@tut.by

Версия для печатиВерсия для печати

Номер: 

13 за 2001 год

Рубрика: 

Размышлизмы
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!