32 ГБ ОЗУ + 16 ГБ подкачки?

Предположим, что поле, в котором вы хотите объединить/объединить данные, отсортировано:

$ join -1 4 -o1.1,1.2,1.3,0,2.2 file1 file2
1 115258827 12 HG00099 0|0
1 115258827 5 HG00100 0|1
1 115258827 8 HG00101 0|0
1 115258827 6 HG00103 0|0

Это объединяет два файла в четвертом столбце file1(, указанном с помощью -1 4, так как это не первый столбец в этом файле )и первый столбецfile2(это столбцы, которые нужны файлам для сортировки по ).

Флаг -oуказывает joinкакие поля мы хотели бы видеть в выводе и из какого файла их брать(1.3означает "третье поле из первого файла", например, а 0означает поле соединения ).

Преимущество использования joinзаключается в том, что ни один файл не нужно полностью считывать в память.


Если файлы не отсортированы, вы можете либо предварительно -отсортировать их раз и навсегда с помощью

sort -k4 -o file1 file1
sort     -o file2 file2

или, если вы используете оболочку, которая понимает подстановку процессов, вы можете сортировать их одновременно с соединением, используя

join -1 4 -o1.1,1.2,1.3,0,2.2 <( sort -k4 file1 ) <( sort file2 )

Именно отсортированные данные позволяют joinодновременно хранить в памяти только несколько строк каждого файла.

2
04.05.2020, 22:02
2 ответа

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

Обычно я работаю без свопа на чем-то большем, чем рашпиль на каждом пи, на том основании, что я предпочитаю, чтобы машина работала быстро, чем медленно останавливалась.

Если некоторая подкачка действительно необходима, вы можете подумать о устройстве zram, занимающем около 50% вашей оперативной памяти, которое обычно сжимается до половины с помощью zram. Это будет быстрее, чем замена на быстрый SSD.

0
28.04.2021, 23:16

I dual-boot between an Arch-based and a Debian-based distros.

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

У моего ноутбука 8 ГБ ОЗУ и раздел подкачки 12 ГБ, и я иногда использую двойную загрузку между Manjaro Linux и Windows 7 таким образом.

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

1
28.04.2021, 23:16

Теги

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