This replaces the parallel gzip with the boring gzip from Go's standard lib. The main motivations for doing this are: 1) Reduce runtime memory requirements 2) shed some external dependencies There's obviously a trade-off with compression speed/time (as seen below), but I feel like it's a worthwhile trade-off. Note that there's likely very little impact to boot performance wrt extracting these archives, the compression levels are similar. Measured on a Shift 6mq, which is a very fast phone... ** compress/gzip: User time (seconds): 1.81 System time (seconds): 0.38 Percent of CPU this job got: 104% Elapsed (wall clock) time (h:mm:ss or m:ss): 0:02.09 Maximum resident set size (kbytes): 62024 -rw-r--r-- 1 clayton clayton 6.1M Sep 20 17:20 initramfs -rw-r--r-- 1 clayton clayton 2.5M Sep 20 17:20 initramfs-extra ** pgzip: User time (seconds): 1.19 System time (seconds): 0.48 Percent of CPU this job got: 159% Elapsed (wall clock) time (h:mm:ss or m:ss): 0:01.05 Maximum resident set size (kbytes): 109952 -rw-r--r-- 1 clayton clayton 6.8M Sep 20 17:20 initramfs -rw-r--r-- 1 clayton clayton 2.8M Sep 20 17:20 initramfs-extra inspired by: https://gitlab.com/postmarketOS/pmaports/-/issues/1704
9 lines
197 B
Modula-2
9 lines
197 B
Modula-2
module gitlab.com/postmarketOS/postmarketos-mkinitfs
|
|
|
|
go 1.16
|
|
|
|
require (
|
|
github.com/cavaliercoder/go-cpio v0.0.0-20180626203310-925f9528c45e
|
|
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c
|
|
)
|