Читайте по сравнению со временем записи

@Robert Longson

это верно. Но вы можете сделать это таким образом. Но символ не так, как он будет работать. К сожалению, вы должны использовать «g» или что-то подобное для ссылки.

body {
  background: url(http://www.broken-links.com/tests/images/faces.svg#devil-view);
}

http://codepen.io/Type-Style/pen/ByvKJq

Это не будет работать, если svg находится в разметке.

6
задан strager 14 May 2009 в 04:27
поделиться

3 ответа

На самом деле это довольно сложный вопрос , и это требует понимания того, как настроена ваша система ввода-вывода. Простой пример, который вы цитируете (чтение / запись фиксированного количества данных в определенное место на диске), не так реалистичен, как вы думаете. Вот краткое описание факторов, которые могут повлиять на производительность ввода-вывода.

  1. Скорость диска
    Скорость жесткого диска обычно выражается в терминах скорости вращения ( об / мин или оборотов в минуту), что говорит вам как быстро тарелки вращаются внутри привода. Типичные значения от 5400 до 10 000 об / мин. Типичная скорость передачи составляет от 1 до 1,6 Гбит / с и может поддерживать скорость передачи до 125 МБ / с.

    Имейте в виду, что существует разница между задержкой и пропускная способность . Если вы записываете очень маленькие фрагменты данных в разные места на диске, вы зависите от диска ». с задержкой ( время поиска , задержка вращения и время доступа). Но если вы одновременно транслируете большой объем данных, вы, вероятно, больше зависите от пропускной способности. Ваша файловая система определяет, как файлы размещаются на диске, и она может попытаться оптимизировать для таких вещей (см. Ниже).

    Еще одна вещь, которую следует учитывать, это то, что вы можете (и большинство предприятий это делают) получить более высокую скорость передачи, используя несколько дисков в конфигурации RAID . Пропускная способность дисков RAID зависит от того, какую комбинацию чередования, зеркалирования и четности вы выбрали. Прочтите статью Википедии , чтобы узнать обо всех тонкостях. Здесь слишком много параметров, чтобы полностью объяснить их.

  2. Кэширование
    Современные ОС тщательно планируют, когда они взаимодействуют с диском. Между вашей программой и физическим диском может быть несколько уровней кешей, поэтому производительность, которую вы увидите как программист приложений, может больше зависеть от того, как ваша ОС обрабатывает данные, чем от фактической производительности вашего диска.

    Большинство современных операционных систем использовать буферный кеш , чтобы данные с диска могли храниться в памяти, а ОС может планировать, когда она обращается к диску. Запись приложением будет казаться быстрой, поскольку она может идти прямо в память, а ОС может дождаться очистки буфера до тех пор, пока ей больше нечего будет делать. На практике операционные системы будут пытаться сбросить записи довольно своевременно, чтобы сбой питания не уничтожил все ваши данные. Таким образом, пока есть доступное буферное пространство, запись будет казаться быстрой. Если вы заполните буферный кеш или если у ОС мало свободной памяти для работы, вы можете увидеть снижение производительности ввода-вывода, потому что ОС должна чаще очищать буферы.

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

  3. Файловая система
    Наконец, есть ваша ] файловая система для рассмотрения. Не все большие записи могут идти в одно и то же место, поэтому вы не можете просто учитывать свою скорость передачи, оценивая, как долго она ' собираюсь взять. Файлы не всегда непрерывны на диске, и ваша файловая система должна вычислить, как они должны быть расположены, что может сильно повлиять на производительность в зависимости от того, сколько места доступно и насколько фрагментирован ваш диск.

Производительность чтения / записи сводится к комбинации всех упомянутых выше эффектов плюс характеристики нагрузки, которую вы накладываете на накопитель (размер данных, частота чтения и записи, и т. Д. ). Как и в большинстве случаев, вам нужно будет поэкспериментировать с вашим приложением, операционной системой, в которой вы собираетесь работать, и вашей конкретной конфигурацией диска, чтобы получить реалистичное представление о том, как оно работает.

что может существенно повлиять на производительность в зависимости от того, сколько места доступно и насколько фрагментирован ваш диск.

Производительность чтения / записи будет зависеть от комбинации всех упомянутых выше эффектов плюс характеристики вашей рабочей нагрузки положить на диск (размер данных, частота чтения и записи, и т. д. ). Как и в большинстве случаев, вам нужно будет поэкспериментировать с вашим приложением, операционной системой, в которой вы собираетесь работать, и вашей конкретной конфигурацией диска, чтобы получить реалистичное представление о том, как оно работает.

что может существенно повлиять на производительность в зависимости от того, сколько места доступно и насколько фрагментирован ваш диск.

Производительность чтения / записи будет зависеть от комбинации всех упомянутых выше эффектов плюс характеристики вашей рабочей нагрузки положить на диск (размер данных, частота чтения и записи, и т. д. ). Как и в большинстве случаев, вам нужно будет поэкспериментировать с вашим приложением, операционной системой, в которой вы собираетесь работать, и вашей конкретной конфигурацией диска, чтобы получить реалистичное представление о том, как оно работает.

18
ответ дан 8 December 2019 в 05:57
поделиться

Короткий ответ: это зависит от многого.

На уровне приложения запись обычно выполняется быстрее. поскольку вы на самом деле только запрашиваете, чтобы ОС записывала данные, и ОС может быстро вернуться к вам и записать данные на досуге. При чтении вам нужно подождать, пока ОС вернется к вам с нужными данными.

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

Большинство твердотельных дисков намного медленнее при записи, чем при чтении.

3
ответ дан 8 December 2019 в 05:57
поделиться

Буферы сильно влияют на время чтения и записи. Буферы могут поддерживаться операционной системой в ОЗУ, и многие диски также содержат внутренние буферы, которые являются частью контроллера диска.

Учтите, что операционная система может кэшировать части файла в ОЗУ, так что чтение из этих частей может завершиться очень быстро. Кроме того, операционная система может кэшировать записи в ОЗУ до тех пор, пока на диск не будет достаточного объема. Вызов функции 'write' может вернуться только после копирования данных в другую область памяти.

Короче говоря, если вам требуется, чтобы биты были записаны на диск (с помощью операции сброса или чего-то подобного) тогда эта операция будет как минимум столько же времени, сколько и некэшированное чтение с диска,

1
ответ дан 8 December 2019 в 05:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: