я использую cat
передать разные файлы в один большой файл. Количество разных файлов варьируется от двух до десяти, но общий размер всех файлов всегда одинаков (пара ГБ).
Моя проблема: каждый раз, когда у меня есть шесть файлов, время, необходимое для их объединения пики (то есть значительно больше, чем с пятью или семью), и я понятия не имею, почему.
У кого-нибудь есть идея?
Файлы (все одинакового размера)
output
outputTEMP1
outputTEMP2
outputTEMP3
outputTEMP4
outputTEMP5
команда
cat outputTEMP* >> output && rm -f outputTEMP*
В настоящее время машина должна выполнить некоторые вычисления, но я обновлю ее позже, когда появятся новые измерения.
linux
performance
brandstaetter
источник
источник
Ответы:
Одним из способов устранения этой проблемы является использование strace.
Опция -tt записывает метку времени системного вызова с разрешением в миллисекунды. -e trace = open, закрывать только журнал, закрывать API. Попробуйте удалить их, и вы увидите очень шумный файл журнала.
источник
Таким образом, комментарий Дэвидеса точный. Нам нужны две вещи, чтобы сделать точную оценку:
Предполагая, что у вас есть место на диске, я опишу тестовый сценарий, который более точно определит, является ли это реальной проблемой. Если это так, подтверждающие данные этого подхода помогут разработчикам узнать, что это реально, и смогут воспроизвести его.
Чтобы помочь с изоляцией проблемы, давайте не будем делать здесь часть rm. Позвольте файлам TEMP сидеть без дела позже. Затем вы можете повторить тесты, выполнив часть 'rm' позже, если хотите.
Вот тестовый сценарий:
используйте команду времени следующим образом:
время (cat outputTEMP * & gt; output)
Захватите реальные, пользовательские и системные значения, указанные для каждого теста, который вы запускаете.
Я согласен с Рейнольдсом; если это действительно так, вы обязательно должны отправить подробности по электронной почте bug-coreutils@gnu.org.
источник