gunzip работает в памяти, или это пишет в диск?

Если Вы не хотите отключать контроль учётных записей, Вы могли бы попытаться просто отключить UIPI (Изоляция Полномочия Пользовательского интерфейса).

Откройте regedit и перейдите в: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System

Добавьте новое DWORD (32-bit) Value названный EnableUIPI и набор это к 0.

Перезапустите машину и посмотрите, ведет ли она себя, поскольку Вы хотите ее к.

7
задан 14 June 2010 в 15:36
6 ответов

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

Тем не менее выведение данных к стандарту (gunzip-c, zcat, и т.д....) не инициирует запись во временный файл. Данные передаются по каналу непосредственно к grep команда, которая рассматривает несжатый поток как свой собственный стандарт в.

Статья Wikipedia о LZ* кодирование здесь: http://en.wikipedia.org/wiki/LZ77_and_LZ78.

4
ответ дан 2 December 2019 в 23:32
  • 1
    It' s распространенный теперь, когда IO является медленной частью машины, таким образом, идея позади gunzip того, чтобы быть быстрее состоит в том, потому что, если это может считать данные с диска, более быстрого (сжатый) затем, используют CPU для распаковки его, из которого существует много из. Имейте смысл, почему doesn' t эта работа? –  Ryan Detzel 14 June 2010 в 16:11
  • 2
    Прибавляемый к то, что я сказал выше, если сжатый файл составляет 1 ГБ и несжатое, составляет 3 ГБ, теория - это it' s намного быстрее, чтобы считать сжатый в и потратить впустую процессорное время затем для чтения файла на 3 ГБ от диска. –  Ryan Detzel 14 June 2010 в 16:36
  • 3
    IO почти всегда был медленным битом. Стандарт поле дизайна Von Neumann вписывается в ту категорию. Я don' t знают достаточно о базовом алгоритме сжатия, чтобы ответить, что определенно, но мои edumucated предполагают? Выполнение cat производит логически линейное чтение, тогда как опция распаковки требует более случайных чтений для обработки алгоритма. Это doesn' t обязательно читает целый набор данных в память перед распаковкой. –  McJeff 14 June 2010 в 16:38

Как всегда, ничто не бьет фактическое измерение.

Ваш пробег может варьироваться, но в моей системе, захватывание уже несжатого файла взяло приблизительно треть время когда передача по каналу zcat или gunzip в grep сделал. Это не удивительно.

3
ответ дан 2 December 2019 в 23:32

Можно также заменить gzip с lzo для улучшения производительности.

Используя LZO может сделать вещи быстрее (меньший дисковый вход-ouput и мало сжатия ЦП наверху)

1
ответ дан 2 December 2019 в 23:32

gzip-dc | grep нечто (или gunzip-c) | grep нечто пишет в канал. То, как канал реализован, зависит от Вашей операционной системы, но обычно это будет оставаться в памяти. Как другие указали, захватывание несжатого файла всегда будет быстрее из-за времени, которое требуется для распаковки сжатых данных. Используя другое сжатие программа может или не может улучшить производительность; можно всегда измерять его.

1
ответ дан 2 December 2019 в 23:32

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

gzip или распакует целый файл к временному и переименует его в конце (стандарт gzip -d myfile.gz) или не используют любой временный файл при всем чтении некоторых блоков сжатых данных за один раз и плевания несжатыми данными по stdout (gzip -d -c...).

В современной системе я подозреваю a gunzip | grep могло быть быстрее, чем захват несжатого файла, с другой стороны gunzip | grep будет всегда выигрывать распаковку файла и затем захват несжатого :)

1
ответ дан 2 December 2019 в 23:32

Зависит от размера файла: когда ввод-вывод доминирует, затем ЦП выполнения распаковки занимает меньше времени, чем передача файлов. Будет ли ввод-вывод доминировать, зависит в большой степени от относительных скоростей Вашего ЦП, Ваших систем хранения и пропускной способности между ними.

Кроме того, как в стороне, grep -Z иначе zgrep также удобно.

0
ответ дан 2 December 2019 в 23:32

Теги

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