IO — Ivan Labs

Как данные реально попадают с диска в ОЗУ

2 мин чтения
ЖелезоХранение данных

«Загрузка» — один из самых частых опытов в вычислительной технике, и это прямое, видимое следствие реальной работы конвейера диск-ОЗУ.

Почему этот шаг вообще существует

Процессор не может выполнять код или обрабатывать данные напрямую с устройства хранения — ему сначала нужны эти данные в ОЗУ, потому что хранилище (даже быстрые NVMe SSD) всё ещё значимо медленнее ОЗУ для целей процессора. Это вся причина, по которой «загрузка» существует как отдельный, видимый шаг.

Что реально происходит во время «загрузки»

  1. Операционная система находит нужные данные на устройстве хранения (блоки данных файла).
  2. Эти данные читаются из хранилища в ОЗУ — скорость этого шага сильно зависит от типа устройства хранения (см. наше сравнение NVMe и SATA насчёт того, насколько это варьируется).
  3. Процессор обрабатывает/инициализирует эти данные, как только они в ОЗУ — здесь происходит реальное вычисление, декомпрессия, настройка начального состояния приложения и т.д.
  4. Приложение становится пригодным для использования, как только достаточная часть этого конвейера завершена для его начального экрана или состояния.

Почему второй раз часто быстрее

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

Где реально узкое место, и почему оно варьируется

Узкое местоКогда доминирует
Скорость чтения хранилищаПервая загрузка, холодный кэш, особенно на HDD или SATA SSD
Обработка/декомпрессия процессоромКак только данные в ОЗУ, для инициализации, требующей вычислений
Кэш ОЗУ уже «тёплый»Повторное открытие недавно использованного — часто почти мгновенно

Почему это важно для воспринимаемой «скорости компьютера»

Большая доля того, что люди воспринимают как «мой компьютер ощущается медленным», на самом деле именно этот конвейер диск-ОЗУ, являющийся узким местом — либо из-за медленного хранилища, недостаточной ОЗУ, заставляющей этот кэш быстро вытесняться, либо из-за реально больших объёмов данных, которым нужно переместиться для конкретной задачи. Обновление скорости хранилища (см. наш гайд NVMe против SATA) или ёмкости ОЗУ (см. как работает ОЗУ) напрямую решает именно этот конвейер, больше, чем это сделал бы один более быстрый процессор для жалоб, специфичных ко времени загрузки.

Частые вопросы

Почему приложению нужно время на «загрузку» каждый раз, когда вы его открываете, даже не в первый раз?

Если операционная система не закэшировала его данные в ОЗУ с недавнего предыдущего использования, код и данные приложения нужно снова читать из хранилища в ОЗУ — этот шаг чтения, каким бы быстрым ни было устройство хранения, всё равно занимает заметно больше времени, чем чтение напрямую из ОЗУ.

Держит ли операционная система что-то в ОЗУ, чтобы ускорить это?

Да — большинство операционных систем используют доступную свободную ОЗУ, чтобы автоматически кэшировать недавно использованные данные диска, поэтому повторное открытие того же приложения вскоре после закрытия часто быстрее первого раза, без каких-либо намеренных действий пользователя.

Более быстрый процессор ускоряет загрузку с диска?

Только частично — более быстрый процессор помогает с обработкой данных после их прибытия (декомпрессия, инициализация), но реальная передача из хранилища в ОЗУ ограничена собственной скоростью устройства хранения, которую процессор мало чем может ускорить.

Нужна помощь с этим?

Свяжитесь со мной, и я помогу разобраться.

Связаться со мной

Похожие статьи

Поделиться:X / TwitterLinkedIn