HDD и SSD – единство различий (страница 4)
реклама
Тестирование дисковых накопителей
Данный раздел хотелось бы посвятить вопросам общепринятых методик тестирования дисковых накопителей. Дело в том, что автор исследования подразумевает одно, а аппаратура совсем другое, и подчас выходят такие казусы ...
Реализация тестов в разных программах при одинаковых или похожих названиях может несколько различаться, но будем ориентироваться на 'типичные' реализации. Итак, начнем.
Последовательное чтение
Алгоритм действий состоит в установке позиционера на фиксированную дорожку, чаще всего начало диска, с последующим чтением последовательно расположенных секторов данных. Само чтение выполняется запросом считывания блока переменного размера, при этом измеряется время выполнения данной операции (чтение блока).
Деструктивными моментами, сказывающимися на времени выполнения, является смена поверхности и номера дорожки. Кроме того, у ряда производителей, после окончания чтения одной дорожки следует переход на следующую, вместо (вроде бы очевидной) смены стороны или номера диска. Тесты могут учитывать наличие этих дефектов и удалять их из результатов, или не делать этого и надеяться на них малозначимость в итоговом числе.
Программы, работающие через скрипты, вряд ли учитывают эти дефекты в виду своей универсальности, а по нескриптовым вообще ничего сказать нельзя - не дизассемблировать же.
реклама
Что же подразумевает данный алгоритм и что происходит в действительности?
Предполагается, что длительное последовательное чтение одним блоком чтения (скажем 4 Кбайт) вызовет в дисковом накопителе те же действия, что и чтение одного единственного блока такого размера. Если не лезть в логику работы устройства, то алгоритм работы теста верен. Но, простите, современные, да и не только современные, а банально 'старые', накопители уже давно обладают расширенной системой кэширования! "Расширенность" связана с различного рода группированием данных для лучшего использования. А это означает, что лезть в логику придется и, боюсь, логика неверна. Статья рассматривает работу довольно разнотипных устройств, HDD и SSD, поэтому и рассуждения будут отдельно по каждому из них.
HDD.
При запросе чтения первого блока из последовательности, HDD выполнит массу действий, напрямую к чтению не относящихся - надо дождаться очереди на выполнение этой операции, потом долго, нудно и старательно передвигать позиционер до нужной дорожки. При этом в буферную память попадет некоторое количество считанных данных, которые контроллер может прочитать и сохранить 'от нечего делать', пока ждет нужный сектор. Увы, HDD - устройство непрямого доступа и нельзя прямо начать выполнение операции - хочешь или не хочешь, а придется ‘сидеть и ждать’, пока нужный сектор не покажется под головкой чтения. Конечно, можно применить в HDD тот же транслятор, что используется в SSD, что позволит раскидывать сектора 'а-бы-как', но ... лучше сразу забыть про такую глупость.
Технологии HDD тем и хороши, что они просты. С момента выхода первого IDE накопителя мало что изменилось - всё та же секторная запись с однозначным соответствием номеру сектора и его расположением на диске. Революционные изменения прошли на ином уровне - в логике работы устройства, конструкционных разработках поверхности дисков и магнитных головок.
Если опустить лирику, то на момент считывания целевого сектора в буфере HDD уже содержится (точнее 'может', примечание переводчика) значительный фрагмент данных до данного сектора. После считывания нужного сектора HDD обязательно будет вычитывать некоторое количество секторов, даже если запроса на последующие сектора (пока) нет в очереди выполнения.
Причина и доказательство тезиса в том, что при отсутствии кэширования чтения будет теряться следующий сектор, что потребует дополнительного оборота диска (порядка 5-10 мсек) и это будет хорошо заметно по увеличению времени доступа к диску. А именно, раз этого возрастания нет – значит, все HDD выполняют кэширование чтения. На сколько вычитывает контроллер? Сложно сказать, бытует мнение, что считывается вся дорожка целиком, но у меня есть сомнение по столь 'экстремистскому' предположению.
Ладно, экстрим или нет, но после считывания начального блока бо́льшая часть дорожки уже находится (или, настоящее время, станет находиться) в буферной памяти контроллера.
реклама
Второй запрос блока не заставит контроллер что-то считывать, он просто возьмет данные из буферной памяти. Третий и последующие - аналогично. Конечно, размер дорожки не бесконечен (легко считается как скорость считывания данных, деленная на скорость вращения диска), порядка 1 Мб. После считывания такого объема информации будет производиться смена поверхности, что означает затраты времени на переключение головок в коммутаторе (несущественное время) или перемещение блока магнитных головок на соседнюю дорожку. После смены дорожки всё повторится снова – поиск сектора и чтение всех секторов подряд. Дополнительная задержка возникнет только на поиске сектора, в остальных случаях данные будут поступать из буферной памяти.
Итак, тест читает с диска данные с переменным размером блока, причем выполняет это сплошным потоком. Контроллер диска выбирает данные из буферной памяти. Ну и как эти процессы связаны со скоростью чтения блоком 'какого-то' размера? И вообще, с чтением одиночного блока? Если у вас есть другой ответ, кроме как "никак", значит я плохо объяснил или что-то упустил. Извините.
SSD.
Если с HDD всё просто и понятно, то с SSD сплошной туман - в зависимости от конкретной реализации программного обеспечения может быть 'такая' реакция, что останется только чесать в затылке и удивляться. Но, не будем его расчесывать, лысина не украшает, давайте идти от 'нормального' решения.
При получении команды чтения блока контроллер выдаст запрос на получение нужной страницы. Естественно, перед этим он должен построить список требуемых страниц через транслятор и этот момент, несомненно, важен, но пока забудем.
Если используется не байт-чередование, то первые данные будут получены не ранее, чем считается первая страница. А это произойдет не ранее, чем 75 мсек (аргументы по данной цифре были выше). После чего, через небольшие интервалы времени, будут получены другие недостающие страницы для получения затребованного блока чтения из SSD. В принципе, накопительная матрица NAND довольно быстрая и выполнять кэширование чтения для контроллера нет явной необходимости. Так он делает его или нет? Попробуем разобраться.
Если посмотреть статистику по тестам SSD последовательного чтения, то для блока 4 Кбайт скорость чтения колеблется от 40 до 120 Мбайт/сек. При этом стоит сразу вспомнить, что размер страницы NAND равен 2-4 Кбайт (обещают и 8 Кбайт). Для простоты положим, что размер страницы 2 Кбайт, как в отмеченных ранее микросхемах.
При байт-чередовании априори считывается в несколько раз больше информации, чем размер страницы. Для иных режимов обязательно считается страница и, через небольшой интервал времени, вторая страница. Вычитывать дальше у контроллера задачи не стоит, ведь запрошенный объем информации он уже получил из матрицы NAND. Возьмем этот вариант и применим к нашим цифрам - для одной страницы скорость чтения 88 Мбайт/сек. Для двух страниц должно быть лишь чуть больше, порядка 95 Мбайт/сек или около того. Но, в любом случае, меньше 120 Мбайт/сек, которые получаются по тестам. Кроме того, весьма забавно требовать от контроллера SSD, чтобы он каждый раз заново начинал процедуру кэшированного чтения для каждого нового блока, особенно если эти блоки следуют один за другим.
Вообще-то, чтение файла последовательными запросами блоков (по 128 Кбайт) довольно типичная ситуация. Если надо считать файл достаточно большой величины, то Windows рассыпает запросы по 128 Кбайт. Представьте себе, как быстро бы работал SSD, если б он по каждому запросу начинал новое чтение. Напомню - для SSD "как хочешь", но нужен 'разгон' в чтение одной страницы, то есть 75 мсек. Вполне естественно, что SSD будет вычитывать больше данных, чем необходимо, если в его буфере запросов нет явных запросов на эти данные (в режиме AHCI). Причина банальна, старт - стоп процедуры буферизированного чтения довольно длителен по времени, поэтому его лучше делать реже. Парадокс, хоть NAND и не механическая система хранения данных, но свойства механики (инерционность) присущи и ей.
Выходит, что нет никаких проблем с пониманием цифры “120 Мбайт/сек” - SSD вычитывает гораздо больше данных, чем запрошено вначале, поэтому контроллер только первый запрос выдает со скоростью нормального (одиночного) обращения, а все последующие идут через буферную память. М-да, еще одна аналогия с HDD. И, увы, следствие то же - скорость последовательного чтения файла блоком размера N никак не связана со скоростью чтения одиночного маленького файла общим размером N.
Ранее я говорил о байт-чередовании и пропустил такой вариант при выяснении возможного присутствия кэширования чтения. С ним то, как раз очень просто - при байт-чередовании априори считывается много страниц, из которых используется только часть (по длине страницы). Значит, всегда есть упреждающее чтение на несколько страниц. Если SSD использует этот режим работы, то у него всегда есть кэширование чтения.
Но, тогда встречный вопрос - почему происходит снижение скорости чтения при уменьшении блока доступа? Всё просто, на передачу информации от контроллера до процессора уходит какое-то время. Чем длиннее канал, чем больше в нем разнородных устройств и интерфейсов, тем дольше будут перемещаться данные. Обычно, у встроенных в южный мост контроллеров наименьшее время доступа. Вы хотите ускорить работу системы и устанавливаете дополнительный контроллер с расширенной функциональностью... и это неизбежно увеличит задержки. Как следствие, хоть дополнительный контроллер и "умный", но скорость чтения мелких файлов станет меньше, причем зачастую, меньше в несколько раз.
Что хотели: измерить скорость чтения файлов разного размера
Что получили: скорость чтения больших файлов (большой блок доступа) и индикацию времени задержки передачи в канале передачи данных на чтение (маленький блок доступа).
В качестве небольшого 'домашнего задания' попробуйте предположить, что делает SSD при запросе чтения из секторов, которые не определены, то есть в них не проводилась запись и транслятор пуст. (Ответ). Скорость около 150 Мбайт/сек – это действительные данные, а ровная полоска вверху – ‘это самое’. Поэтому тестирование SSD весьма нетривиальное действие и требует серьезной подготовки.
реклама
Последовательная запись
Алгоритм, используемый в данном тесте, повторяет рассмотренное ранее последовательное чтение, только вместо чтения блоков производится их запись.
И HDD, и SSD буферизируют записываемые данные по одной и той же причине - собрать блоки достаточно большого размера.
При редкой записи файлов небольшого размера данные складируются в буферной памяти накопителя и записываются в моменты отсутствия команд. Если объем записываемых данных больше буферной памяти, то накопитель не сможет ничего 'отложить', чтобы осуществить ее в момент простоя, поэтому будет вынужден записывать ‘здесь и сейчас’.
Что хотели: измерить скорость записи файлов разного размера
Что получили: скорость записи больших файлов (большой блок доступа) и индикацию времени задержки передачи в канале передачи данных на запись (маленький блок доступа). Конечно, если не вмешается система кэширования дискового накопителя или Windows.
Буферизованное чтение
На накопителе данных, как правило, есть кэш-память под буферизацию данных на запись и кэширование чтения. Раз эта память есть, то можно измерить скорость работы с ней. Для чего можно или использовать специальные команды, или 'как всегда', просто много раз читать один и тот же блок данных - контроллер вряд ли будет считывать с носителя информации одно и то же, если это самое 'оно' уже считано и находится в его буферной памяти.
Старые HDD так и работали - при повторном запросе на чтение того же блока (набора секторов) только в самый первый раз данные считывались с дисков, а все последующие запросы оканчивались буферной памятью. Интересно, что современные HDD, особенно с многоядерным контроллером, SSD и устройства на интерфейсе USB крайне негативно относятся к режиму буферизованного (Burst) чтения.
Теперь, пожалуйста, задайте себе вопрос - как часто операционная система считывает один и тот же набор секторов постоянно? ... Вы верите в обширный склероз с манией преследования?
Вполне очевидно, что данный режим общения с дисковыми накопителями глупость, поэтому программное обеспечение контроллера накопителя не обязано корректно обрабатывать данную несуразность. Нормальные результаты теста - хорошо, плохие - ровным счетом ничего не значат. Во втором варианте, при некотором полете фантазии, можно попробовать расшифровать методику кэширования, используемую контроллером - ведь 'провал' буферизированного чтения означает, что контроллер все же выполняет (или пытается выполнять) повторные операции чтения с накопителя данных и множественные запросы ему мешают, вытесняя кэширование чтения (упреждающее чтение). Но, подобные шаманские действия пока никто не предпринимал и обряд чтения сих иероглифов не описан в летописях.
Хоть тест называется 'буферизованное чтение', но самим буферизированным чтением является 'последовательное чтение' - при нём практически вся информация считывается из буферной памяти. Само же 'буферизованное чтение' не представляет никакого физического смысла. Ну, разве что - померить максимальную пропускную способность интерфейса при больших блоках доступа, да и то, если дисковый накопитель хоть как-то способен выполнять такой вид операций.
Что хотели: измерить скорость получения файлов разного размера из буферной памяти дискового накопителя
Что получили: если функция поддерживается, то – смотреть раздел 'последовательное чтение' - скорость интерфейса при больших блоках и индикацию времени задержки передачи в канале передачи данных (маленький блок доступа). Повторюсь, если функция не поддерживается, то это ровным счетом ничего не значит - ну зачем собаке пятая нога?
Буферизованная запись
Всё то же, всё так же. На дисковый накопитель высылается команда записи одного и того же блока данных. При этом контроллер просто тихо дуреет от подобного склероза операционной системы, да еще в столь запущенной форме и интенсивности.
Данный режим не встречается в нормально работающем компьютере, а потому носитель информации не обязан корректно обрабатывать такую, извините, глупость.
Старые HDD все же нормально выполняют данный вид операций, новые и SSD - как получится. А если не получится, то и не надо.
Что хотели: измерить скорость получения файлов разного размера из буферной памяти дискового накопителя
Что получили: смотреть 'буферизированное чтение'. Глупость получили.
Скорость чтения (записи) данных
Одна из главных и самая понятная характеристика дискового накопителя - это скорость чтения и записи данных. Если с другими характеристиками много тумана (ну посудите сами, как можно быстро и понятно интерпретировать среднее время доступа к данным или время на смену дорожки), то со скоростью передачи всё просто - записываешь на диск большой файл, и он будет записан за (надо считать) времени. Можно и не считать - скорость современных дисков порядка 100 Мбайт/сек, что означает считывание (или запись) около 100 Мбайт за одну секунду (за 2 секунды 200 Мбайт, за 3 секунды 300 Мбайт и далее).
Одно 'но' - производительность зависит от типа дискового накопителя. Если у SSD эта характеристика зависит (смотрит на потолок) от "погоды на Марсе", то у HDD скорость, по большей мере, зависит от расположения на диске. Если это начало HDD, внешние дорожки, то скорость максимальна. По мере увеличения позиции в HDD положение магнитной головки на дисках смещается к центру, что вызывает уменьшение производительности до двух раз.
Важно здесь то, что тестовые утилиты (обычно) измеряют скорость дисковых накопителей в начале диска, где производительность максимальна. Данный прием как-то оправдан для древних времен, когда одни HDD сравнивались с другими HDD, и еще никто не слышал сокращения "SSD". В HDD применяется зонная структура, когда внешние дорожки получают большее количество более ‘быстрых’ секторов данных. По мере приближения к концу диска количество секторов на дорожке уменьшается. На диске множество зон с разной производительностью. Так вот, раз тестовые утилиты проводят измерения в самом начале диска, буквально в нулевой зоне, то некоторые производители добавляют еще одну маленькую зону в самое начало диска и задают на нее максимально-возможную производительность. Тесты покажут высокую скорость, но в реальной работе вы эту скорость не увидите - размер зоны весьма небольшой.
Итак, возьмем HDD со скоростью чтения 120 Мбайт/сек, что получается только на внешних дорожках, и сравним его с посредственным SSD со скоростью чтения 150 Мбайт/сек. Вроде бы паритет производительности? Ан нет! У HDD 120 Мбайт/сек получаются только на внешних дорожках, а на внутренних будет только 60 Мбайт/сек. Никакого "паритета" нет.
Не забывайте об этом лукавстве, когда будете сравнивать дисковые накопители разной природы. Для HDD скорее надо брать среднюю скорость, а никак не максимальную.
Случайное чтение и запись
А знаете, ничего не хочется говорить.
Для HDD данный тип тестов более-менее реален, а у SSD возможны проблемы из-за потоковости доступа. Дело в том, что контроллер адаптируется под тип нагрузки, а здесь применяется массовый поток по случайным адресам. При этом контроллер должен бы понять, что кэширование чтения вредит и отключить его. На 'понятливость' контроллера уходит какое-то время, поэтому результаты будут не совсем честными.
Время отклика диска
На диск отправляется поток запросов на чтение (или запись) маленьких блоков, обычно один сектор, 512 байт. Место положения данных выбирается случайно по всей поверхности носителя информации. Фактически, измеряется качество работы позиционера (HDD) или транслятора и предвыборки для SSD.
Вроде бы, тест вполне адекватный, откуда взяться проблемам? Бывают.
При случайном поиске можно каждый последующий адрес выбирать случайно, а можно 'прыгать' между фиксированной позицией и случайным. Лично у меня есть подозрение, что общеизвестный HD Tune применяет второй вариант, поэтому его измерения отличаются от данных других программ.
Кроме того, время доступа определяется не только скоростными характеристиками позиционера, но и принципами приближения магнитной головки на нужную дорожку. Если подвеска HDD неудачна (а классический метод крепления не самый лучший вариант), то вибрация будет вмешиваться в предполагаемые перемещения позиционера, что вызовет увеличение времени. Для SSD проблем с вибрацией нет, но зато существует зависимость между временем отклика и тем, что до этого делал привод.
Одной из важных особенностей SSD является и то, что они могут делать 'что-то еще'. Такого не наблюдается в HDD, ведь принцип их работы весьма прост. Обычно, данный тест выполняется очень долго, чтобы как-то нивелировать систему кэширования в дисковых накопителях, и в контроллере SSD остаются только запросы на чтение (или запись) небольших секторов. Всё, что было ранее 'выталкивается' и игнорируется программами тестирования, как помехи от операционной системы. Но, увы, это ведь не так.
Что хотели: измерить скорость доступа к данным
Что получили: возможны разночтения в алгоритмах измерения времени доступа HDD и полностью рафинированный тест для SSD.
Многопоточные операции
Один из самых сложных вопросов. Много копий было сломано, но вопрос так и остается и на том же месте. С одной стороны, операционная система пытается загружать системные файлы в многопоточном режиме, с другой - в приложениях пользователя многопоточности нет. Ну откуда ей взяться, если любая программа работает по принципу загрузил - посчитал - записал.
Причем здесь многопоточность? Функция "загрузил" сложная по своей сути, ведь исходный файл надо расшифровать, а делать это множеством потоков крайне затруднительно. Конечно, если программа работает в пакетном режиме, то обработку каждого файла можно разнести в независимый поток, тогда множество однопоточных доступов превратиться в один многопоточный. И часто вы конвертируете картинки в пакетном режиме? … и при этом программа действительно распараллеливает выполнение множества заданий?
При множественном доступе HDD теряют производительность, сказывается инерционность позиционера. Что до SSD, то их производительность только возрастает. Причем, ускорение может быть очень-очень большим. Насколько оправдано такое тестирование для домашнего применения? ... лично я сомневаюсь.
Хотя многопоточность чтения может присутствовать и в домашней области применения - игровые движки в силах разнести задание на загрузку примитивов в несколько потоков, но многопоточная запись в обычных приложениях крайне маловероятна.
Впрочем, извините за вульгарное сравнение - если до сих пор некоторые игры не поддерживают больше одного процессора (ядра), то довольно странно думать, что в них реализована многопоточная загрузка. Увы, детально вопрос не исследован, поэтому поставим жирный знак вопроса и перейдем к следующей проблеме.
Размер блока доступа
И по этому вопросу много мифов. Ну, добавим свои.
В качестве инструмента я использовал HAB, поэтому не могу гарантировать 100%-ной точности измерений, но я им доверяю. Замеры производились в операционной системе Windows 7 х86 для двух компьютеров примерно одинаковой конфигурации (процессор 2-4 ядра, системная память – четыре гигабайта).
Конкретная конфигурация, какие именно HDD применялись - не столь и важно, SSD не использовались.
Общая статистика для игр и фильмов.
За время снятия лога компьютер использовался только для игр и просмотра фильмов.
Программа весьма неудачно показывает количественный спектр размеров блока доступа, потому необходимы пояснения. Извините, программа написана не для сбора статистики, просто так вышло.
В левой части картинки три раздела – низкоскоростные, высокоскоростные файловые операции и операции через отображение файлов на память (Mapping).
С первыми двумя режимами понятно - если файловые операции идут медленно, то результаты попадают в верхний раздел, если быстро, то в средний. Режим отображения (Mapping) не совсем обычный и стоит привести небольшие разъяснения.
Если программе надо получить информацию из файла, то ей придется выполнить ряд действий:
- взять регион памяти соответствующего размера;
- считать данные, целиком или только часть, во взятый ранее регион;
- получить информацию из считанных данных.
Это довольно долгий и хлопотный процесс. Существует более удобная технология - файл можно отобразить в память приложения. Для этого в свободном диапазоне виртуального пространства выделяется окно и в него ассоциируется файл. Никаких упреждающих чтений не производится. Программе для получения данных из файла достаточно просто прочитать по соответствующему адресу из выделенного окна. При этом операционная система получит ошибку отсутствия страницы и подгрузит данные из файла в окно приложения (выделит небольшой блок памяти и считает туда соответствующий фрагмент файла).
Согласитесь, это очень удобно! Увы, кроме удобства есть и недостаток - максимально видимый размер файла, который может быть открыт через отображение, ограничен размером виртуального окна процесса, и не более 2 Гбайт на один файл. Одна из игр, которая использует только отображение файлов, это S.T.A.L.K.E.R. ... теперь вы можете понять, почему данная игра так любит большой размер своего виртуального адресного пространства - из-за отображения. Уфф. Вообще-то, именно ради S.T.A.L.K.E.R. в программу и добавлена индикация отображения, а то выходила глупость - игру запустил, но программа показывает отсутствие дисковой активности. Мило?
По числам в табличках, надеюсь, особых трудностей нет - показывается время выполнения и объем операций; минимальный, максимальный и средний размер блока доступа.
На рисунке справа отображается количество операций с разными размерами блоков. Да решение неудачное, извините. Каждый столбик соответствует своему размеру блока - левый 1 Кбайт (и меньше), второй 2 Кбайт, третий 4 Кбайт .... последний 32 Мбайт (и больше).
Давайте всё же вернемся к нашим баранам.
Напомню - компьютер использовался только для игр и просмотра фильмов стандартной размерности через Media Player Classic.
Первое, что бросается в глаза - операционная система 'постоянно' читала мелкие файлы длиной 1-2 Кбайт. Отчасти, низкоскоростное чтение настолько мелких файлов (скорее фрагментов) вызвано работой программы просмотра фильмов, но не все же 40 часов из 100. С одной стороны это непонятно, с другой - разве это большая нагрузка для современной дисковой системы?
Для высокоскоростного обмена характерно чтение блоком 2 Кбайт и запись 512 Кбайт. Причем, записывалось довольно много, 83 Гбайт. Сложно сказать, откуда столько взялось, может что-то переписывал по сети. Впрочем, да, именно так - перегонял файлы через VirtualDub с сети на свой компьютер, за это говорит размер блока доступа - в свойствах программы VirtualDub выставлено записывать блоками по 512 Кбайт.
Для режима отображения свойственно чтение блоками 128 Кбайт и более. Причем, если перейти от количества запросов к объему переданных данных, то средний блок чтения составит 2 Мбайт.
Записи в режиме отображения практически не было.
Вполне очевидно, что это "среднебольничная" температура. Информация полезна, но хочется чего-то конкретного. Что можно на себе примерить и сказать 'вранье'. Сейчас будет.
Возьмем игру Borderlands. Она базируется на Unreal Engine, поэтому результаты не являются столь уж уникальными.
Наверно, лучше привести две статистики – загрузки игры (вместе с вступительными роликами) и самого процесса игры.
Если посмотреть бегло, то никаких существенных отличий между ними нет. Всё тот же поток постоянного низкоскоростного чтения файлов 1 Кбайт, отсутствие каких-либо операций записи. Режим отображения показывает чтение блоками не менее 128 Кбайт и средним порядка 3-8 Мбайт.
Во время игры почти половину времени дисковая система неторопливо читала мелкие файлы длиной 1 Кбайт (или менее) и, примерно, 1/8 времени операционная система загружала отображение. Последний тип операций выполнялся очень большими блоками.
Давайте перейдем к другому компьютеру ... нет, одна игра это не показатель. Надо расширить, ну хоть 'что под руку подвернется'.
Serious Sam 2.
Слева загрузка уровня, справа - процесс игры.
Игра красивая, но очень 'легкая'. Загрузка уровня занимает всего 23 секунды при считывании 120 Мбайт данных. При этом из 23 секунд загрузки только восемь производилось чтение данных с HDD. Запомним. Размер блока доступа 32 Кбайт.
Процесс игры также не вызывает большой дисковой активности - за семь минут игрового времени было считано всего 100 Мбайт в течение четырех секунд. Вполне вероятно, что вклад в эту цифру внесла фоновая активность операционной системы Windows 7 - очень уж она 'неспокойная'.
Надо отметить 'традиционное' низкоскоростное чтение блоком 1 Кбайт.
Singularity.
Как обычно - слева загрузка уровня, справа процесс игры.
В общем и целом поведение очень напоминает предыдущую игру. То же фоновое низкоскоростное чтение, очень быстрая загрузка уровня.
Размер блока чтения вычислить затруднительно, присутствует нормальное распределение от 2 Кбайт до 256 Кбайт при пике 16 Кбайт. Одно можно сказать точно - во время игры происходит подгрузка данных. Считать 1 Гбайт за 160 секунд, при общем игровом времени 9 минут, 'просто так' не получится. В этой игре возможны появления микрофризов (короткие замирания кадра или резкое падение количества кадров в секунду). Впрочем, тестовый прогон с анализом результатов программы FRAPS не показал наличие каких-либо проблем. Это говорит, что с таким типом нагрузки обычный HDD справляется весьма успешно.
Bulletstorm.
Характер поведения напоминает Serious Sam 2. Загрузка быстрая, во время самой игры подгрузка данных практически отсутствует. Блок считывания переменной длины, от 2 Кбайт до 64 Кбайт.
Mass Effect 2.
В этой игре нагрузка на дисковую систему смехотворна. Ну, или мне не повезло с выбором места.
реклама
Лента материалов раздела
Соблюдение Правил конференции строго обязательно!
Флуд, флейм и оффтоп преследуются по всей строгости закона!
Комментарии, содержащие оскорбления, нецензурные выражения (в т.ч. замаскированный мат), экстремистские высказывания, рекламу и спам, удаляются независимо от содержимого, а к их авторам могут применяться меры вплоть до запрета написания комментариев и, в случае написания комментария через социальные сети, жалобы в администрацию данной сети.
Комментарии Правила