Если Вы не хотите отключать контроль учётных записей, Вы могли бы попытаться просто отключить UIPI (Изоляция Полномочия Пользовательского интерфейса).
Откройте regedit и перейдите в: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
Добавьте новое DWORD (32-bit) Value
названный EnableUIPI
и набор это к 0
.
Перезапустите машину и посмотрите, ведет ли она себя, поскольку Вы хотите ее к.
Это всегда будет более быстрым кошке несжатый файл, поскольку нет никаких издержек, связанных с этим. Даже если Вы не пишете временный файл, Вы проходите движения распаковки, которые громко жуют ЦП. При доступе к этим файлам достаточно часто, вероятно, лучше сохранить их несжатыми, если у Вас есть пространство.
Тем не менее выведение данных к стандарту (gunzip-c, zcat, и т.д....) не инициирует запись во временный файл. Данные передаются по каналу непосредственно к grep
команда, которая рассматривает несжатый поток как свой собственный стандарт в.
Статья Wikipedia о LZ* кодирование здесь: http://en.wikipedia.org/wiki/LZ77_and_LZ78.
Как всегда, ничто не бьет фактическое измерение.
Ваш пробег может варьироваться, но в моей системе, захватывание уже несжатого файла взяло приблизительно треть время когда передача по каналу zcat
или gunzip
в grep
сделал. Это не удивительно.
gzip-dc | grep нечто (или gunzip-c) | grep нечто пишет в канал. То, как канал реализован, зависит от Вашей операционной системы, но обычно это будет оставаться в памяти. Как другие указали, захватывание несжатого файла всегда будет быстрее из-за времени, которое требуется для распаковки сжатых данных. Используя другое сжатие программа может или не может улучшить производительность; можно всегда измерять его.
Используя сжатие мог на самом деле обеспечить более быструю пропускную способность дискам, но это зависит от ряда факторов, включая используемый алгоритм сжатия и вид данных, которые Вы перемещаете. ZFS, например, в большой степени полагается на это предположение.
gzip или распакует целый файл к временному и переименует его в конце (стандарт gzip -d myfile.gz
) или не используют любой временный файл при всем чтении некоторых блоков сжатых данных за один раз и плевания несжатыми данными по stdout (gzip -d -c...
).
В современной системе я подозреваю a gunzip | grep
могло быть быстрее, чем захват несжатого файла, с другой стороны gunzip | grep
будет всегда выигрывать распаковку файла и затем захват несжатого :)
Зависит от размера файла: когда ввод-вывод доминирует, затем ЦП выполнения распаковки занимает меньше времени, чем передача файлов. Будет ли ввод-вывод доминировать, зависит в большой степени от относительных скоростей Вашего ЦП, Ваших систем хранения и пропускной способности между ними.
Кроме того, как в стороне, grep -Z
иначе zgrep
также удобно.
cat
производит логически линейное чтение, тогда как опция распаковки требует более случайных чтений для обработки алгоритма. Это doesn' t обязательно читает целый набор данных в память перед распаковкой. – McJeff 14 June 2010 в 16:38