{ "version": "https://jsonfeed.org/version/1.1", "user_comment": "This feed allows you to read the posts from this site in any feed reader that supports the JSON Feed format. To add this feed to your reader, copy the following URL -- https://matoken.org/blog/tag/zstd/feed/json/ -- and add it your reader.", "home_page_url": "https://matoken.org/blog/tag/zstd/", "feed_url": "https://matoken.org/blog/tag/zstd/feed/json/", "language": "ja", "title": "ZSTD – matoken's blog", "description": "Is there no plan B?", "icon": "https://matoken.org/blog/wp-content/uploads/2025/03/cropped-1865f695c4eecc844385acef2f078255036adccd42c254580ea3844543ab56d9.jpeg", "items": [ { "id": "http://matoken.org/blog/?p=3141", "url": "https://matoken.org/blog/2021/03/25/change-the-linux-kernel-initramfs-compression-format-on-debian/", "title": "Debian \u3067 Linux Kernel \u306e initramfs \u306e\u5727\u7e2e\u5f62\u5f0f\u3092\u5909\u66f4\u3059\u308b\ud83d\udc27\ud83d\udddc\ufe0f", "content_html": "
\n
\n
\n

\u5148\u65e5\u300cDebian sid\u3067Linux Kernel(5.11)\u3092build\u3059\u308b\u30e1\u30e2 \u300d\u3092\u66f8\u3044\u305f\u306e\u3067\u3059\u304c\uff0cTwitter\u3067@henrich\u3055\u3093\u304b\u3089\u3053\u3093\u306a\u30e1\u30c3\u30bb\u30fc\u30b8\u304c\uff0e

\n
\n

/boot\u306e\u5bb9\u91cf\u306e\u305f\u3081\u306b\u306finitramfs\u306e\u5727\u7e2e\u3092gzip\u304b\u3089xz\u3084zstd\u306b\u3059\u308b\u306e\u3082\u3042\u308a\u3067\u3059\u306d

\n

\u2014 henrich (@henrich) March 23, 2021

\n

\n
\n
\n

\u305d\u3046\u3044\u3048\u3070\u5727\u7e2e\u5f62\u5f0f\u8272\u3005\u3042\u3063\u305f\u306a\u3068\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\uff0e

\n
\n
\n
\n
\n

\u73fe\u5728\u306e\u5727\u7e2e\u5f62\u5f0f\u3092\u78ba\u8a8d\u3059\u308b

\n
\n
\n
\n
$ grep COMPRESS /etc/initramfs-tools/initramfs.conf\n# COMPRESS: [ gzip | bzip2 | lz4 | lzma | lzop | xz | zstd ]\nCOMPRESS=gzip
\n
\n
\n
\n
\n
$ file --mime-type /boot/initrd.img-`uname -r`\n/boot/initrd.img-5.11.8+: application/gzip
\n
\n
\n
\n

\u8a2d\u5b9a\u306f gzip \u3067\uff0c\u5b9f\u969b\u306e\u30d5\u30a1\u30a4\u30eb\u3082gzip\u306b\u306a\u3063\u3066\u3044\u307e\u3059\uff0e
\n\u5727\u7e2e\u5f62\u5f0f\u306f gzip \u4ee5\u5916\u306b bzip2, lz4, lzma, lzop, xz, zstd \u304c\u9078\u3079\u308b\u3088\u3046\u3067\u3059\uff0e

\n
\n
\n
\n
\n

\u5727\u7e2e\u5f62\u5f0f\u306e\u6bd4\u8f03

\n
\n
\n
\n
$ ls -1sS --block-size=1 ./initrd.img-5.11.8+.*\n183033856 ./initrd.img-5.11.8+.raw\n 81076224 ./initrd.img-5.11.8+.lz4\n 78315520 ./initrd.img-5.11.8+.lzop\n 54329344 ./initrd.img-5.11.8+.gzip\n 51761152 ./initrd.img-5.11.8+.zstd\n 50081792 ./initrd.img-5.11.8+.bz2\n 36548608 ./initrd.img-5.11.8+.xz\n 36540416 ./initrd.img-5.11.8+.lzma
\n
\n
\n
\n

\u5bb9\u91cf\u304c\u3069\u306e\u304f\u3089\u3044\u306b\u306a\u308b\u306e\u304b\u5404\u30a2\u30fc\u30ab\u30a4\u30d0\u3067\u5727\u7e2e\u3057\u3066\u307f\u307e\u3057\u305f\uff0e

\n
\n
\n
\n
$ \\time -f %e cat ./initrd.img-5.11.8+.raw > /dev/null\n0.03\n$ \\time -f %e lz4cat ./initrd.img-5.11.8+.lz4 > /dev/null\n0.38\n$ \\time -f %e lzop -d -c ./initrd.img-5.11.8+.lzop > /dev/null\n0.42\n$ \\time -f %e zstdcat ./initrd.img-5.11.8+.zstd > /dev/null\n0.44\n$ \\time -f %e zcat ./initrd.img-5.11.8+.gzip > /dev/null\n1.38\n$ \\time -f %e lzma -d -c ./initrd.img-5.11.8+.lzma > /dev/null\n3.22\n$ \\time -f %e xzcat ./initrd.img-5.11.8+.xz > /dev/null\n3.37\n$ \\time -f %e bzcat ./initrd.img-5.11.8+.bz2 > /dev/null\n9.39
\n
\n
\n
\n

\u5c55\u958b\u6642\u9593\u3082\u78ba\u8a8d\u3057\u3066\u307f\u307e\u3057\u305f\uff0e

\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\u5727\u7e2e\u5f62\u5f0f\u5727\u7e2e\u30c7\u30fc\u30bf\u91cf(byte)\u5c55\u958b\u6642\u9593(\u79d2)
\n

raw

\n
\n

183033856

\n
\n

0.03

\n
\n

lz4

\n
\n

81076224

\n
\n

0.38

\n
\n

lzop

\n
\n

78315520

\n
\n

0.43

\n
\n

gzip

\n
\n

54329344

\n
\n

1.38

\n
\n

zstd

\n
\n

51761152

\n
\n

0.44

\n
\n

bzip2

\n
\n

50081792

\n
\n

9.39

\n
\n

xz

\n
\n

36548608

\n
\n

3.37

\n
\n

lzma

\n
\n

36540416

\n
\n

3.22

\n
\n
\n

\u5727\u7e2e\u30c7\u30fc\u30bf\u306e\u5727\u7e2e\u7387\u306a\u3069\u306f\u65e2\u5b9a\u5024\u306e\u307e\u307e\u3067\uff0c\u5c55\u958b\u6642\u9593\u306f \\time -f %e zcat ./initrd.img-5.11.8+.gzip > /dev/null \u82e5\u3057\u304f\u306f \\time -f %e lzma -d -c ./initrd.img-5.11.8+.lzma > /dev/null \u306e\u3088\u3046\u306b\u3057\u3066\u6e2c\u308a\u307e\u3057\u305f\uff0e

\n
\n
\n

\u30b5\u30a4\u30ba\u3067\u306f raw > lz4 \u2252 lzop > gzip \u2252 zstd \u2252 bz2 > xz \u2252 lzma \u306a\u611f\u3058\u3067\uff0c
\n\u5c55\u958b\u901f\u5ea6\u306f bz2 > xz \u2252 lzma > gzip > zstd \u2252 lzop \u2252 lz4 > raw \u306a\u611f\u3058\u3067\u3059\uff0e

\n
\n
\n\n\n\n\n\n\n\n
\n
Caution
\n
\n\u6642\u9593\u306b\u3064\u3044\u3066\u306f\u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u74b0\u5883\u3067\u8272\u3005\u52d5\u3044\u3066\u3044\u308b\u72b6\u614b\u30671\u56de\u3057\u304b\u6e2c\u3063\u3066\u3044\u306a\u3044\u306e\u3067\u76ee\u5b89\u7a0b\u5ea6\u306b\u3057\u3066\u304f\u3060\u3055\u3044\uff0e
\n
\n
\n\n\n\n\n\n\n\n
\n
Caution
\n
\n\u3053\u3053\u3067\u306f\u65e2\u5b9a\u5024\u3067\u5727\u7e2e\u3057\u307e\u3057\u305f\u304c\uff0czstd, lz4, xz\u306b\u3064\u3044\u3066\u306finitramfs\u4f5c\u6210\u6642\u306b\u5727\u7e2e\u30aa\u30d7\u30b7\u30e7\u30f3\u306a\u3069\u304c\u65e2\u5b9a\u5024\u3068\u9055\u3046\u3088\u3046\u306a\u306e\u3067\u76ee\u5b89\u7a0b\u5ea6\u306b\u3057\u3066\u304f\u3060\u3055\u3044\uff0e
\n
\n
\n

\u5bb9\u91cf\u7684\u306b\u306fxz, lzma\u304c\u826f\u3055\u305d\u3046\u3067\u3059\u304c\u5c55\u958b\u6642\u9593\u304c\u3068\u3066\u3082\u5897\u3048\u305d\u3046\u3067\u3059\uff0ezstd\u306fgzip\u3088\u308a\u901f\u304f\u3066\u5c0f\u3055\u304f\u306a\u3063\u3066\u826f\u3055\u305d\u3046\u3067\u3059\uff0e
\n\u3068\u3044\u3046\u3053\u3068\u3067zstd\u306b\u3057\u3066\u307f\u307e\u3059\uff0e

\n
\n
\n
\n
\n

initramfs\u3092 zstd \u3067\u4f5c\u308a\u76f4\u3059

\n
\n
\n
\n
$ sudo git -C /etc diff HEAD /etc/initramfs-tools/initramfs.conf\ndiff --git a/initramfs-tools/initramfs.conf b/initramfs-tools/initramfs.conf\nindex 01bdd85..a0c051b 100644\n--- a/initramfs-tools/initramfs.conf\n+++ b/initramfs-tools/initramfs.conf\n@@ -41,7 +41,7 @@ KEYMAP=n\n # COMPRESS: [ gzip | bzip2 | lz4 | lzma | lzop | xz | zstd ]\n #\n\n-COMPRESS=gzip\n+COMPRESS=zstd\n\n #\n # DEVICE: ...
\n
\n
\n
\n

/etc/initramfs-tools/initramfs.conf \u3092\u7de8\u96c6\u3057\u3066\uff0c COMPRESS \u3092 zstd \u306b\u5909\u66f4\u3057\u307e\u3059\uff0e

\n
\n
\n
\n
$ update-initramfs -h\n\nUsage: update-initramfs {-c|-d|-u} [-k version] [-v] [-b directory]\n\nOptions:\n -k version     Specify kernel version or 'all'\n -c             Create a new initramfs\n -u             Update an existing initramfs\n -d             Remove an existing initramfs\n -b directory   Set alternate boot directory\n -v             Be verbose\n\nSee update-initramfs(8) for further details.\n\n$ sudo update-initramfs -k `uname -r` -u -v
\n
\n
\n
\n

update-initramfs \u3067\u66f4\u65b0\u3092\u884c\u3044\u307e\u3059\uff0e

\n
\n
\n
\n
$ ls -s --block-size=1 /boot/initrd.img-5.11.8+\n54542336 /boot/initrd.img-5.11.8+\n$ ls -s --block-size=1 /boot/initrd.img-5.11.8+\n41611264 /boot/initrd.img-5.11.8+\n$ file --mime-type /boot/initrd.img-5.11.8+\n/boot/initrd.img-5.11.8+: application/zstd\n$ zstd -lv /boot/initrd.img-5.11.8+\n*** zstd command line interface 64-bits v1.4.8, by Yann Collet ***\n/boot/initrd.img-5.11.8+\n# Zstandard Frames: 1\nWindow Size: 8.00 MB (8388608 B)\nCompressed Size: 39.53 MB (41446437 B)\nDecompressed Size: 174.55 MB (183032320 B)\nRatio: 4.4161\nCheck: XXH64
\n
\n
\n
\n

\u51fa\u6765\u4e0a\u304c\u3063\u305f\u30d5\u30a1\u30a4\u30eb\u3092\u78ba\u8a8d\u3059\u308b\u3068 zstd \u306b\u306a\u3063\u3066\u3044\u307e\u3057\u305f\uff0e
\n\u518d\u8d77\u52d5\u3057\u3066\u3082\u554f\u984c\u3042\u308a\u307e\u305b\u3093\u3067\u3057\u305f :)
\n\u4e0a\u3067\u78ba\u8a8d\u3057\u305f\u5bb9\u91cf\u3088\u308a\u5927\u5206\u5c0f\u3055\u5538\u3063\u3066\u3044\u308b\u306e\u306f\u5727\u7e2e\u30ec\u30d9\u30eb\u306e\u5dee\u3067\u3057\u3087\u3046\u304b?

\n
\n
\n
\n
\n

initramfs\u5727\u7e2e\u30ec\u30d9\u30eb\u306e\u78ba\u8a8d

\n
\n
\n
\n
$ grep zstd /usr/sbin/mkinitramfs\nzstd)   compress=\"zstd -q -19 -T0\" ;;
\n
\n
\n
\n

update-initramfs \u304b\u3089\u547c\u3070\u308c\u308b mkinitramfs \u3092\u78ba\u8a8d\u3059\u308b\u3068zstd\u306e\u5727\u7e2e\u30ec\u30d9\u30eb\u30aa\u30d7\u30b7\u30e7\u30f3\u306f -19 \u3067\u6700\u9ad8\u5727\u7e2e\u7387\u3067\u3057\u305f\uff0e(\u65e2\u5b9a\u5024\u306f -3 )

\n
\n
\n
\n
$ \\time -f%e zstdcat -T1 /boot/initrd.img-5.11.8+ > /dev/null\n0.50
\n
\n
\n
\n

\u305d\u306e\u5206\u5c55\u958b\u6642\u9593\u3082\u5c11\u3057\u4f38\u3073\u3066\u3044\u305d\u3046\u3067\u3059\uff0e

\n
\n
\n
\n
case \"${compress}\" in\ngzip)   # If we're doing a reproducible build, use gzip -n\n        if [ -n \"${SOURCE_DATE_EPOCH}\" ]; then\n                compress=\"gzip -n\"\n        # Otherwise, substitute pigz if it's available\n        elif command -v pigz >/dev/null; then\n                compress=pigz\n        fi\n        ;;\nlz4)    compress=\"lz4 -9 -l\" ;;\nzstd)   compress=\"zstd -q -19 -T0\" ;;\nxz)     compress=\"xz --check=crc32\"\n        # If we're not doing a reproducible build, enable multithreading\n        test -z \"${SOURCE_DATE_EPOCH}\" && compress=\"$compress --threads=0\"\n        ;;\nbzip2|lzma|lzop)\n        # no parameters needed\n        ;;\n*)      echo \"W: Unknown compression command ${compress}\" >&2 ;;\nesac
\n
\n
\n
\n

\u5468\u308a\u3092\u898b\u3066\u307f\u308b\u3068\uff0c lz4 \u306f -9 \u3067\u6700\u9ad8( -12 )\u3067\u306f\u306a\u3044\u3051\u3069\u65e2\u5b9a\u5024( 1 )\u3088\u308a\u5727\u7e2e\u7387\u3092\u9ad8\u304f\u3057\u3066\u3042\u308a\u307e\u3059\uff0exz\u306b\u306f\u6574\u5408\u6027\u30c1\u30a7\u30c3\u30af\u304c\u30aa\u30d7\u30b7\u30e7\u30f3\u304c\u3042\u308b\u3051\u3069\u5bb9\u91cf\u306b\u306f\u3042\u307e\u308a\u95a2\u4fc2\u306a\u3044\u304b\u306a?
\n\u305d\u306e\u4ed6\u306f\u65e2\u5b9a\u5024\u306e\u3088\u3046\u3067\u3059\uff0e

\n
\n
\n
\n
$ count=1;while [[ $count -lt 19 ]];do zstdcat /boot/initrd.img-5.11.8+ | zstd -T0 -$count -c - > /tmp/zstd-$count.zstd;count=$(( $count+1 ));done\n$ ls -1sS --block-size=1 /tmp/zstd-*\n56188928 /tmp/zstd-1.zstd\n53272576 /tmp/zstd-2.zstd\n51761152 /tmp/zstd-3.zstd\n51466240 /tmp/zstd-4.zstd\n50061312 /tmp/zstd-5.zstd\n49614848 /tmp/zstd-6.zstd\n47431680 /tmp/zstd-7.zstd\n46690304 /tmp/zstd-8.zstd\n46424064 /tmp/zstd-9.zstd\n45973504 /tmp/zstd-10.zstd\n45850624 /tmp/zstd-11.zstd\n45686784 /tmp/zstd-12.zstd\n45539328 /tmp/zstd-13.zstd\n45371392 /tmp/zstd-14.zstd\n45309952 /tmp/zstd-15.zstd\n44093440 /tmp/zstd-16.zstd\n42987520 /tmp/zstd-17.zstd\n41705472 /tmp/zstd-18.zstd\n41447424 /tmp/zstd-19.zstd\n$ ls -1S /tmp/zstd-* | xargs -I{} -n1 sh -c \"echo -n \\\"{} \\\"; \\time -f%e zstdcat -T0 {} > /dev/null\"\n/tmp/zstd-1.zstd 0.37\n/tmp/zstd-2.zstd 0.36\n/tmp/zstd-3.zstd 0.40\n/tmp/zstd-4.zstd 0.47\n/tmp/zstd-5.zstd 0.44\n/tmp/zstd-6.zstd 0.42\n/tmp/zstd-7.zstd 0.40\n/tmp/zstd-8.zstd 0.37\n/tmp/zstd-9.zstd 0.35\n/tmp/zstd-10.zstd 0.40\n/tmp/zstd-11.zstd 0.41\n/tmp/zstd-12.zstd 0.38\n/tmp/zstd-13.zstd 0.39\n/tmp/zstd-14.zstd 0.39\n/tmp/zstd-15.zstd 0.43\n/tmp/zstd-16.zstd 0.37\n/tmp/zstd-17.zstd 0.42\n/tmp/zstd-18.zstd 0.53\n/tmp/zstd-19.zstd 0.68
\n
\n
\n
\n

\u5727\u7e2e\u30ec\u30d9\u30eb\u3054\u3068\u306e\u5bb9\u91cf\u3068\u5c55\u958b\u6642\u9593\u306f\u3053\u3093\u306a\u611f\u3058\u306b\u306a\u308a\u307e\u3057\u305f\uff0e\u8272\u3005\u52d5\u3044\u3066\u3044\u308b\u74b0\u5883\u306a\u306e\u3067\u304a\u304b\u3057\u305d\u3046\u306a\u3068\u3053\u308d\u304c\u3042\u308a\u307e\u3059\u304c\u5927\u4f53\u306e\u76ee\u5b89\u3068\u3057\u3066\uff0e

\n
\n
\n
\n
\n

Kernel build\u6642\u306e\u52d5\u4f5c

\n
\n
\n

Kernel 5.11.9 \u304c\u6765\u3066\u3044\u305f\u306e\u3067\u30d3\u30eb\u30c9\u3057\u3066\u307f\u307e\u3057\u305f\uff0e

\n
\n
\n
\n
$ wget https://cdn.kernel.org/pub/linux/kernel/v5.x/incr/patch-5.11.8-9.xz\n$ cd linux-5.11\n$ xzcat ../patch-5.11.8-9.xz | patch -p1\n$ grep ^COMPRESS= /etc/initramfs-tools/initramfs.conf\nCOMPRESS=zstd\n$ time make -j`nproc` bindeb-pkg\n$ ls -1sS ../*5.11.9*\n737300 ../linux-image-5.11.9+-dbg_5.11.9+-5_amd64.deb\n 59584 ../linux-image-5.11.9+_5.11.9+-5_amd64.deb\n  8040 ../linux-headers-5.11.9+_5.11.9+-5_amd64.deb\n  1124 ../linux-libc-dev_5.11.9+-5_amd64.deb\n     8 ../linux-5.11.9+_5.11.9+-5_amd64.buildinfo\n     4 ../linux-5.11.9+_5.11.9+-5_amd64.changes\n$ sudo apt install ../linux-image-5.11.9+_5.11.9+-5_amd64.deb ../linux-headers-5.11.9+_5.11.9+-5_amd64.deb ../linux\n-libc-dev_5.11.9+-5_amd64.deb\n$ file /boot/initrd.img-5.11.9+\n/boot/initrd.img-5.11.9+: Zstandard compressed data (v0.8+), Dictionary ID: None\n$ ls --block-size=1 -s /boot/initrd.img-5.11.9+\n41602048 /boot/initrd.img-5.11.9+\n$ sudo shutdown -r now 'kernel upgrade'
\n
\n
\n
\n

\u554f\u984c\u306a\u304f zstd \u306b\u306a\u308a\u307e\u3057\u305f\uff0e

\n
\n
\n
\n
\n

\u53c2\u8003URL

\n
\n
\n

Debian\u306einitramfs\u306e\u5727\u7e2e\u5f62\u5f0f\u3092zstd\u306b\u3057\u3088\u3046\u3068\u3044\u3046\u30d0\u30b0\u30ec\u30dd\u30fc\u30c8\uff0ebullseye\u306f\u30d5\u30ea\u30fc\u30ba\u3055\u308c\u3066\u3044\u308b\u306e\u3067\u5165\u3089\u306a\u3044\uff0e

\n
\n\n
\n
\n
\n

\u74b0\u5883

\n
\n
\n
\n
$ dpkg-query -W initramfs-tools-core zstd\ninitramfs-tools-core    0.140\nzstd    1.4.8+dfsg-2.1\n$ lsb_release -dr\nDescription:    Debian GNU/Linux bullseye/sid\nRelease:        unstable\n$ uname -srm\nLinux 5.11.9+ x86_64
\n
\n
\n
\n
\n", "content_text": "\u5148\u65e5\u300cDebian sid\u3067Linux Kernel(5.11)\u3092build\u3059\u308b\u30e1\u30e2 \u300d\u3092\u66f8\u3044\u305f\u306e\u3067\u3059\u304c\uff0cTwitter\u3067@henrich\u3055\u3093\u304b\u3089\u3053\u3093\u306a\u30e1\u30c3\u30bb\u30fc\u30b8\u304c\uff0e\n\n/boot\u306e\u5bb9\u91cf\u306e\u305f\u3081\u306b\u306finitramfs\u306e\u5727\u7e2e\u3092gzip\u304b\u3089xz\u3084zstd\u306b\u3059\u308b\u306e\u3082\u3042\u308a\u3067\u3059\u306d\n\u2014 henrich (@henrich) March 23, 2021\n\n\n\n\u305d\u3046\u3044\u3048\u3070\u5727\u7e2e\u5f62\u5f0f\u8272\u3005\u3042\u3063\u305f\u306a\u3068\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\uff0e\n\n\n\n\n\u73fe\u5728\u306e\u5727\u7e2e\u5f62\u5f0f\u3092\u78ba\u8a8d\u3059\u308b\n\n\n\n$ grep COMPRESS /etc/initramfs-tools/initramfs.conf\n# COMPRESS: [ gzip | bzip2 | lz4 | lzma | lzop | xz | zstd ]\nCOMPRESS=gzip\n\n\n\n\n$ file --mime-type /boot/initrd.img-`uname -r`\n/boot/initrd.img-5.11.8+: application/gzip\n\n\n\n\u8a2d\u5b9a\u306f gzip \u3067\uff0c\u5b9f\u969b\u306e\u30d5\u30a1\u30a4\u30eb\u3082gzip\u306b\u306a\u3063\u3066\u3044\u307e\u3059\uff0e\n\u5727\u7e2e\u5f62\u5f0f\u306f gzip \u4ee5\u5916\u306b bzip2, lz4, lzma, lzop, xz, zstd \u304c\u9078\u3079\u308b\u3088\u3046\u3067\u3059\uff0e\n\n\n\n\n\u5727\u7e2e\u5f62\u5f0f\u306e\u6bd4\u8f03\n\n\n\n$ ls -1sS --block-size=1 ./initrd.img-5.11.8+.*\n183033856 ./initrd.img-5.11.8+.raw\n 81076224 ./initrd.img-5.11.8+.lz4\n 78315520 ./initrd.img-5.11.8+.lzop\n 54329344 ./initrd.img-5.11.8+.gzip\n 51761152 ./initrd.img-5.11.8+.zstd\n 50081792 ./initrd.img-5.11.8+.bz2\n 36548608 ./initrd.img-5.11.8+.xz\n 36540416 ./initrd.img-5.11.8+.lzma\n\n\n\n\u5bb9\u91cf\u304c\u3069\u306e\u304f\u3089\u3044\u306b\u306a\u308b\u306e\u304b\u5404\u30a2\u30fc\u30ab\u30a4\u30d0\u3067\u5727\u7e2e\u3057\u3066\u307f\u307e\u3057\u305f\uff0e\n\n\n\n$ \\time -f %e cat ./initrd.img-5.11.8+.raw > /dev/null\n0.03\n$ \\time -f %e lz4cat ./initrd.img-5.11.8+.lz4 > /dev/null\n0.38\n$ \\time -f %e lzop -d -c ./initrd.img-5.11.8+.lzop > /dev/null\n0.42\n$ \\time -f %e zstdcat ./initrd.img-5.11.8+.zstd > /dev/null\n0.44\n$ \\time -f %e zcat ./initrd.img-5.11.8+.gzip > /dev/null\n1.38\n$ \\time -f %e lzma -d -c ./initrd.img-5.11.8+.lzma > /dev/null\n3.22\n$ \\time -f %e xzcat ./initrd.img-5.11.8+.xz > /dev/null\n3.37\n$ \\time -f %e bzcat ./initrd.img-5.11.8+.bz2 > /dev/null\n9.39\n\n\n\n\u5c55\u958b\u6642\u9593\u3082\u78ba\u8a8d\u3057\u3066\u307f\u307e\u3057\u305f\uff0e\n\n\n\n\n\n\n\n\n\n\u5727\u7e2e\u5f62\u5f0f\n\u5727\u7e2e\u30c7\u30fc\u30bf\u91cf(byte)\n\u5c55\u958b\u6642\u9593(\u79d2)\n\n\n\n\n\nraw\n\n\n183033856\n\n\n0.03\n\n\n\n\nlz4\n\n\n81076224\n\n\n0.38\n\n\n\n\nlzop\n\n\n78315520\n\n\n0.43\n\n\n\n\ngzip\n\n\n54329344\n\n\n1.38\n\n\n\n\nzstd\n\n\n51761152\n\n\n0.44\n\n\n\n\nbzip2\n\n\n50081792\n\n\n9.39\n\n\n\n\nxz\n\n\n36548608\n\n\n3.37\n\n\n\n\nlzma\n\n\n36540416\n\n\n3.22\n\n\n\n\n\n\u5727\u7e2e\u30c7\u30fc\u30bf\u306e\u5727\u7e2e\u7387\u306a\u3069\u306f\u65e2\u5b9a\u5024\u306e\u307e\u307e\u3067\uff0c\u5c55\u958b\u6642\u9593\u306f \\time -f %e zcat ./initrd.img-5.11.8+.gzip > /dev/null \u82e5\u3057\u304f\u306f \\time -f %e lzma -d -c ./initrd.img-5.11.8+.lzma > /dev/null \u306e\u3088\u3046\u306b\u3057\u3066\u6e2c\u308a\u307e\u3057\u305f\uff0e\n\n\n\u30b5\u30a4\u30ba\u3067\u306f raw > lz4 \u2252 lzop > gzip \u2252 zstd \u2252 bz2 > xz \u2252 lzma \u306a\u611f\u3058\u3067\uff0c\n\u5c55\u958b\u901f\u5ea6\u306f bz2 > xz \u2252 lzma > gzip > zstd \u2252 lzop \u2252 lz4 > raw \u306a\u611f\u3058\u3067\u3059\uff0e\n\n\n\n\n\n\nCaution\n\n\n\u6642\u9593\u306b\u3064\u3044\u3066\u306f\u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u74b0\u5883\u3067\u8272\u3005\u52d5\u3044\u3066\u3044\u308b\u72b6\u614b\u30671\u56de\u3057\u304b\u6e2c\u3063\u3066\u3044\u306a\u3044\u306e\u3067\u76ee\u5b89\u7a0b\u5ea6\u306b\u3057\u3066\u304f\u3060\u3055\u3044\uff0e\n\n\n\n\n\n\n\n\n\nCaution\n\n\n\u3053\u3053\u3067\u306f\u65e2\u5b9a\u5024\u3067\u5727\u7e2e\u3057\u307e\u3057\u305f\u304c\uff0czstd, lz4, xz\u306b\u3064\u3044\u3066\u306finitramfs\u4f5c\u6210\u6642\u306b\u5727\u7e2e\u30aa\u30d7\u30b7\u30e7\u30f3\u306a\u3069\u304c\u65e2\u5b9a\u5024\u3068\u9055\u3046\u3088\u3046\u306a\u306e\u3067\u76ee\u5b89\u7a0b\u5ea6\u306b\u3057\u3066\u304f\u3060\u3055\u3044\uff0e\n\n\n\n\n\n\u5bb9\u91cf\u7684\u306b\u306fxz, lzma\u304c\u826f\u3055\u305d\u3046\u3067\u3059\u304c\u5c55\u958b\u6642\u9593\u304c\u3068\u3066\u3082\u5897\u3048\u305d\u3046\u3067\u3059\uff0ezstd\u306fgzip\u3088\u308a\u901f\u304f\u3066\u5c0f\u3055\u304f\u306a\u3063\u3066\u826f\u3055\u305d\u3046\u3067\u3059\uff0e\n\u3068\u3044\u3046\u3053\u3068\u3067zstd\u306b\u3057\u3066\u307f\u307e\u3059\uff0e\n\n\n\n\ninitramfs\u3092 zstd \u3067\u4f5c\u308a\u76f4\u3059\n\n\n\n$ sudo git -C /etc diff HEAD /etc/initramfs-tools/initramfs.conf\ndiff --git a/initramfs-tools/initramfs.conf b/initramfs-tools/initramfs.conf\nindex 01bdd85..a0c051b 100644\n--- a/initramfs-tools/initramfs.conf\n+++ b/initramfs-tools/initramfs.conf\n@@ -41,7 +41,7 @@ KEYMAP=n\n # COMPRESS: [ gzip | bzip2 | lz4 | lzma | lzop | xz | zstd ]\n #\n\n-COMPRESS=gzip\n+COMPRESS=zstd\n\n #\n # DEVICE: ...\n\n\n\n/etc/initramfs-tools/initramfs.conf \u3092\u7de8\u96c6\u3057\u3066\uff0c COMPRESS \u3092 zstd \u306b\u5909\u66f4\u3057\u307e\u3059\uff0e\n\n\n\n$ update-initramfs -h\n\nUsage: update-initramfs {-c|-d|-u} [-k version] [-v] [-b directory]\n\nOptions:\n -k version Specify kernel version or 'all'\n -c Create a new initramfs\n -u Update an existing initramfs\n -d Remove an existing initramfs\n -b directory Set alternate boot directory\n -v Be verbose\n\nSee update-initramfs(8) for further details.\n\n$ sudo update-initramfs -k `uname -r` -u -v\n\n\n\nupdate-initramfs \u3067\u66f4\u65b0\u3092\u884c\u3044\u307e\u3059\uff0e\n\n\n\n$ ls -s --block-size=1 /boot/initrd.img-5.11.8+\n54542336 /boot/initrd.img-5.11.8+\n$ ls -s --block-size=1 /boot/initrd.img-5.11.8+\n41611264 /boot/initrd.img-5.11.8+\n$ file --mime-type /boot/initrd.img-5.11.8+\n/boot/initrd.img-5.11.8+: application/zstd\n$ zstd -lv /boot/initrd.img-5.11.8+\n*** zstd command line interface 64-bits v1.4.8, by Yann Collet ***\n/boot/initrd.img-5.11.8+\n# Zstandard Frames: 1\nWindow Size: 8.00 MB (8388608 B)\nCompressed Size: 39.53 MB (41446437 B)\nDecompressed Size: 174.55 MB (183032320 B)\nRatio: 4.4161\nCheck: XXH64\n\n\n\n\u51fa\u6765\u4e0a\u304c\u3063\u305f\u30d5\u30a1\u30a4\u30eb\u3092\u78ba\u8a8d\u3059\u308b\u3068 zstd \u306b\u306a\u3063\u3066\u3044\u307e\u3057\u305f\uff0e\n\u518d\u8d77\u52d5\u3057\u3066\u3082\u554f\u984c\u3042\u308a\u307e\u305b\u3093\u3067\u3057\u305f :)\n\u4e0a\u3067\u78ba\u8a8d\u3057\u305f\u5bb9\u91cf\u3088\u308a\u5927\u5206\u5c0f\u3055\u5538\u3063\u3066\u3044\u308b\u306e\u306f\u5727\u7e2e\u30ec\u30d9\u30eb\u306e\u5dee\u3067\u3057\u3087\u3046\u304b?\n\n\n\n\ninitramfs\u5727\u7e2e\u30ec\u30d9\u30eb\u306e\u78ba\u8a8d\n\n\n\n$ grep zstd /usr/sbin/mkinitramfs\nzstd) compress=\"zstd -q -19 -T0\" ;;\n\n\n\nupdate-initramfs \u304b\u3089\u547c\u3070\u308c\u308b mkinitramfs \u3092\u78ba\u8a8d\u3059\u308b\u3068zstd\u306e\u5727\u7e2e\u30ec\u30d9\u30eb\u30aa\u30d7\u30b7\u30e7\u30f3\u306f -19 \u3067\u6700\u9ad8\u5727\u7e2e\u7387\u3067\u3057\u305f\uff0e(\u65e2\u5b9a\u5024\u306f -3 )\n\n\n\n$ \\time -f%e zstdcat -T1 /boot/initrd.img-5.11.8+ > /dev/null\n0.50\n\n\n\n\u305d\u306e\u5206\u5c55\u958b\u6642\u9593\u3082\u5c11\u3057\u4f38\u3073\u3066\u3044\u305d\u3046\u3067\u3059\uff0e\n\n\n\ncase \"${compress}\" in\ngzip) # If we're doing a reproducible build, use gzip -n\n if [ -n \"${SOURCE_DATE_EPOCH}\" ]; then\n compress=\"gzip -n\"\n # Otherwise, substitute pigz if it's available\n elif command -v pigz >/dev/null; then\n compress=pigz\n fi\n ;;\nlz4) compress=\"lz4 -9 -l\" ;;\nzstd) compress=\"zstd -q -19 -T0\" ;;\nxz) compress=\"xz --check=crc32\"\n # If we're not doing a reproducible build, enable multithreading\n test -z \"${SOURCE_DATE_EPOCH}\" && compress=\"$compress --threads=0\"\n ;;\nbzip2|lzma|lzop)\n # no parameters needed\n ;;\n*) echo \"W: Unknown compression command ${compress}\" >&2 ;;\nesac\n\n\n\n\u5468\u308a\u3092\u898b\u3066\u307f\u308b\u3068\uff0c lz4 \u306f -9 \u3067\u6700\u9ad8( -12 )\u3067\u306f\u306a\u3044\u3051\u3069\u65e2\u5b9a\u5024( 1 )\u3088\u308a\u5727\u7e2e\u7387\u3092\u9ad8\u304f\u3057\u3066\u3042\u308a\u307e\u3059\uff0exz\u306b\u306f\u6574\u5408\u6027\u30c1\u30a7\u30c3\u30af\u304c\u30aa\u30d7\u30b7\u30e7\u30f3\u304c\u3042\u308b\u3051\u3069\u5bb9\u91cf\u306b\u306f\u3042\u307e\u308a\u95a2\u4fc2\u306a\u3044\u304b\u306a?\n\u305d\u306e\u4ed6\u306f\u65e2\u5b9a\u5024\u306e\u3088\u3046\u3067\u3059\uff0e\n\n\n\n$ count=1;while [[ $count -lt 19 ]];do zstdcat /boot/initrd.img-5.11.8+ | zstd -T0 -$count -c - > /tmp/zstd-$count.zstd;count=$(( $count+1 ));done\n$ ls -1sS --block-size=1 /tmp/zstd-*\n56188928 /tmp/zstd-1.zstd\n53272576 /tmp/zstd-2.zstd\n51761152 /tmp/zstd-3.zstd\n51466240 /tmp/zstd-4.zstd\n50061312 /tmp/zstd-5.zstd\n49614848 /tmp/zstd-6.zstd\n47431680 /tmp/zstd-7.zstd\n46690304 /tmp/zstd-8.zstd\n46424064 /tmp/zstd-9.zstd\n45973504 /tmp/zstd-10.zstd\n45850624 /tmp/zstd-11.zstd\n45686784 /tmp/zstd-12.zstd\n45539328 /tmp/zstd-13.zstd\n45371392 /tmp/zstd-14.zstd\n45309952 /tmp/zstd-15.zstd\n44093440 /tmp/zstd-16.zstd\n42987520 /tmp/zstd-17.zstd\n41705472 /tmp/zstd-18.zstd\n41447424 /tmp/zstd-19.zstd\n$ ls -1S /tmp/zstd-* | xargs -I{} -n1 sh -c \"echo -n \\\"{} \\\"; \\time -f%e zstdcat -T0 {} > /dev/null\"\n/tmp/zstd-1.zstd 0.37\n/tmp/zstd-2.zstd 0.36\n/tmp/zstd-3.zstd 0.40\n/tmp/zstd-4.zstd 0.47\n/tmp/zstd-5.zstd 0.44\n/tmp/zstd-6.zstd 0.42\n/tmp/zstd-7.zstd 0.40\n/tmp/zstd-8.zstd 0.37\n/tmp/zstd-9.zstd 0.35\n/tmp/zstd-10.zstd 0.40\n/tmp/zstd-11.zstd 0.41\n/tmp/zstd-12.zstd 0.38\n/tmp/zstd-13.zstd 0.39\n/tmp/zstd-14.zstd 0.39\n/tmp/zstd-15.zstd 0.43\n/tmp/zstd-16.zstd 0.37\n/tmp/zstd-17.zstd 0.42\n/tmp/zstd-18.zstd 0.53\n/tmp/zstd-19.zstd 0.68\n\n\n\n\u5727\u7e2e\u30ec\u30d9\u30eb\u3054\u3068\u306e\u5bb9\u91cf\u3068\u5c55\u958b\u6642\u9593\u306f\u3053\u3093\u306a\u611f\u3058\u306b\u306a\u308a\u307e\u3057\u305f\uff0e\u8272\u3005\u52d5\u3044\u3066\u3044\u308b\u74b0\u5883\u306a\u306e\u3067\u304a\u304b\u3057\u305d\u3046\u306a\u3068\u3053\u308d\u304c\u3042\u308a\u307e\u3059\u304c\u5927\u4f53\u306e\u76ee\u5b89\u3068\u3057\u3066\uff0e\n\n\n\n\nKernel build\u6642\u306e\u52d5\u4f5c\n\n\nKernel 5.11.9 \u304c\u6765\u3066\u3044\u305f\u306e\u3067\u30d3\u30eb\u30c9\u3057\u3066\u307f\u307e\u3057\u305f\uff0e\n\n\n\n$ wget https://cdn.kernel.org/pub/linux/kernel/v5.x/incr/patch-5.11.8-9.xz\n$ cd linux-5.11\n$ xzcat ../patch-5.11.8-9.xz | patch -p1\n$ grep ^COMPRESS= /etc/initramfs-tools/initramfs.conf\nCOMPRESS=zstd\n$ time make -j`nproc` bindeb-pkg\n$ ls -1sS ../*5.11.9*\n737300 ../linux-image-5.11.9+-dbg_5.11.9+-5_amd64.deb\n 59584 ../linux-image-5.11.9+_5.11.9+-5_amd64.deb\n 8040 ../linux-headers-5.11.9+_5.11.9+-5_amd64.deb\n 1124 ../linux-libc-dev_5.11.9+-5_amd64.deb\n 8 ../linux-5.11.9+_5.11.9+-5_amd64.buildinfo\n 4 ../linux-5.11.9+_5.11.9+-5_amd64.changes\n$ sudo apt install ../linux-image-5.11.9+_5.11.9+-5_amd64.deb ../linux-headers-5.11.9+_5.11.9+-5_amd64.deb ../linux\n-libc-dev_5.11.9+-5_amd64.deb\n$ file /boot/initrd.img-5.11.9+\n/boot/initrd.img-5.11.9+: Zstandard compressed data (v0.8+), Dictionary ID: None\n$ ls --block-size=1 -s /boot/initrd.img-5.11.9+\n41602048 /boot/initrd.img-5.11.9+\n$ sudo shutdown -r now 'kernel upgrade'\n\n\n\n\u554f\u984c\u306a\u304f zstd \u306b\u306a\u308a\u307e\u3057\u305f\uff0e\n\n\n\n\n\u53c2\u8003URL\n\n\nDebian\u306einitramfs\u306e\u5727\u7e2e\u5f62\u5f0f\u3092zstd\u306b\u3057\u3088\u3046\u3068\u3044\u3046\u30d0\u30b0\u30ec\u30dd\u30fc\u30c8\uff0ebullseye\u306f\u30d5\u30ea\u30fc\u30ba\u3055\u308c\u3066\u3044\u308b\u306e\u3067\u5165\u3089\u306a\u3044\uff0e\n\n\n\n#976054 – initramfs-tools: [RFC] Compress initramfs file with zstd – Debian Bug report logs\n\n\n\n\n\n\u74b0\u5883\n\n\n\n$ dpkg-query -W initramfs-tools-core zstd\ninitramfs-tools-core 0.140\nzstd 1.4.8+dfsg-2.1\n$ lsb_release -dr\nDescription: Debian GNU/Linux bullseye/sid\nRelease: unstable\n$ uname -srm\nLinux 5.11.9+ x86_64", "date_published": "2021-03-25T21:19:39+09:00", "date_modified": "2021-03-25T21:41:18+09:00", "authors": [ { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" } ], "author": { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" }, "tags": [ "initramfs", "kernel", "Linux", "ZSTD", "Debian", "sid" ] }, { "id": "http://matoken.org/blog/?p=3045", "url": "https://matoken.org/blog/2021/03/05/it-seems-that-long-mode-has-become-faster-with-zstd-1-4-9-so-i-will-try-a-little/", "title": "ZSTD 1.4.9\u3067Long Mode\u304c\u901f\u304f\u306a\u3063\u305f\u3089\u3057\u3044\u306e\u3067\u5c11\u3057\u8a66\u3059", "content_html": "
\n

ZSTD 1.4.9\u304c\u30ea\u30ea\u30fc\u30b9\u3055\u308c\u3066\u3044\u307e\u3057\u305f\uff0e

\n
\n
\n\n
\n
\n

\u4eca\u56de --long \u5229\u7528\u6642\u306b\u6700\u59272\u500d\u306e\u9ad8\u901f\u5316\u304c\u58f2\u308a\u306e\u3088\u3046\u3067\u3059\uff0e\u305d\u308c\u306f\u3059\u3054\u3044\u3063\u3066\u3053\u3068\u3067\u5c11\u3057\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\uff0e

\n
\n
\n
\n
>2x Faster Long Distance Mode\nLong Distance Mode (LDM) --long just got a whole lot faster thanks to optimizations by @mpu in #2483! These optimizations preserve the compression ratio but drastically speed up compression. It is especially noticeable in multithreaded mode, because the long distance match finder is not parallelized.
\n
\n
\n
\n

\u73fe\u5728\u306ezstd\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u306f1\u3064\u524d\u306e1.4.8\u3067\u3057\u305f\uff0e

\n
\n
\n
\n
$ zstd -V\n*** zstd command line interface 64-bits v1.4.8, by Yann Collet ***
\n
\n
\n
\n

1.4.9\u3092source\u304b\u3089build\u3057\u307e\u3059\uff0e

\n
\n
\n
\n
$ sudo apt build-dep zstd (1)\n$ git clone https://github.com/facebook/zstd (2)\n$ cd zstd\n$ git checkout v1.4.9 (3)\n$ make (4)\n$ ./zstd -V (5)\n*** zstd command line interface 64-bits v1.4.9, by Yann Collet ***
\n
\n
\n
\n
    \n
  1. zstd\u30d3\u30eb\u30c9\u306b\u5fc5\u8981\u306a\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u5c0e\u5165
  2. \n
  3. source\u306eclone
  4. \n
  5. 1.4.9\u306b\u5207\u308a\u66ff\u3048
  6. \n
  7. make
  8. \n
  9. \u30d0\u30fc\u30b8\u30e7\u30f3\u78ba\u8a8d
  10. \n
\n
\n
\n
ZSTD(1)
\n
\n
       \u2022   --long[=#]:  enables long distance matching with # windowLog, if not # is not present it defaults to 27. This increases the window\n           size (windowLog) and memory usage for both the compressor and decompressor. This setting is designed to  improve  the  compression\n           ratio for files with long matches at a large distance.\n\n           Note: If windowLog is set to larger than 27, --long=windowLog or --memory=windowSize needs to be passed to the decompressor.
\n
\n
\n
\n

--long \u306f 31\u307e\u3067\u306e\u3088\u3046\u3067\u3059\uff0e32\u3092\u6307\u5b9a\u3059\u308b\u3068\u3053\u3046\u3044\u3046\u30a8\u30e9\u30fc\u306b\u306a\u308a\u307e\u3059\uff0e

\n
\n
\n

zstd: error 11 : Parameter is out of bound

\n
\n
\n

\u3061\u3087\u3046\u3069\u5927\u304d\u3081\u306etar\u304c\u3042\u3063\u305f\u306e\u3067\u3053\u308c\u3067\u8a66\u3057\u307e\u3059\uff0e

\n
\n
\n
\n
$ ls -l ../linux-5.11.tar\n-rw-r--r-- 1 matoken matoken 1064212480 Feb 15 18:18 ../linux-5.11.tar
\n
\n
\n
\n
\n
$ grep -m1 ^\"model name\" /proc/cpuinfo (1)\nmodel name      : Intel(R) Core(TM) i5-3320M CPU @ 2.60GHz\n$ nproc (2)\n4\n$ /bin/time -f\"\\treal\\t%e\" zstd -q -T`nproc` -1 --long=31 ../linux-5.11.tar -o /dev/null (3)\n        real    8.10\n$ /bin/time -f\"\\treal\\t%e\" ./zstd -q -T`nproc` -1 --long=31 ../linux-5.11.tar -o /dev/null (4)\n        real    5.27\n$ /bin/time -f\"\\treal\\t%e\" zstd -q -T`nproc` --long=31 ../linux-5.11.tar -o /dev/null (5)\n        real    8.36\n$ /bin/time -f\"\\treal\\t%e\" ./zstd -q -T`nproc` --long=31 ../linux-5.11.tar -o /dev/null (6)\n        real    5.76\n$ /bin/time -f\"\\treal\\t%e\" zstd -q -T`nproc` -19 --long=31 ../linux-5.11.tar -o /dev/null (7)\n        real    388.15\n$ /bin/time -f\"\\treal\\t%e\" ./zstd -q -T`nproc` -19 --long=31 ../linux-5.11.tar -o /dev/null (8)\n        real    318.08\n$ /bin/time -f\"\\treal\\t%e\" zstd -q -T1 --long=31 ../linux-5.11.tar -o /dev/null (9)\n        real    11.81\n$ /bin/time -f\"\\treal\\t%e\" ./zstd -q -T1 --long=31 ../linux-5.11.tar -o /dev/null (10)\n        real    7.89
\n
\n
\n
\n
    \n
  1. CPU\u306f Intel\u00ae Core\"\u2122\" i5-3320M CPU @ 2.60GHz
  2. \n
  3. \u30d7\u30ed\u30bb\u30c3\u30b5\u6570
  4. \n
  5. \u5727\u7e2e\u30ec\u30d9\u30eb1(\u6700\u4f4e)\u306e1.4.8\u30678.10s
  6. \n
  7. \u5727\u7e2e\u30ec\u30d9\u30eb1(\u6700\u4f4e)\u306e1.4.9\u30675.27s
  8. \n
  9. \u5727\u7e2e\u30ec\u30d9\u30eb3(\u30c7\u30d5\u30a9\u30eb\u30c8)\u306e1.4.8\u30678.36s
  10. \n
  11. \u5727\u7e2e\u30ec\u30d9\u30eb3(\u30c7\u30d5\u30a9\u30eb\u30c8)\u306e1.4.9\u30675.76s
  12. \n
  13. \u5727\u7e2e\u30ec\u30d9\u30eb19(\u6700\u9ad8)\u306e1.4.8\u3067388.15s
  14. \n
  15. \u5727\u7e2e\u30ec\u30d9\u30eb19(\u6700\u9ad8)\u306e1.4.9\u3067318.08s
  16. \n
  17. \u30b9\u30ec\u30c3\u30c9\u6570\u30921\u306b\u3057\u305f\u3068\u304d\u306e\u5727\u7e2e\u30ec\u30d9\u30eb3(\u30c7\u30d5\u30a9\u30eb\u30c8)\u306e1.4.8\u306711.81s
  18. \n
  19. \u30b9\u30ec\u30c3\u30c9\u6570\u30921\u306b\u3057\u305f\u3068\u304d\u306e\u5727\u7e2e\u30ec\u30d9\u30eb3(\u30c7\u30d5\u30a9\u30eb\u30c8)\u306e1.4.8\u30677.89s
  20. \n
\n
\n
\n

2\u500d\u3068\u307e\u3067\u306f\u884c\u304d\u307e\u305b\u3093\u304c\u901f\u304f\u306a\u3063\u3066\u3044\u308b\u3088\u3046\u3067\u3059 :)
\n\u30de\u30eb\u30c1\u30b9\u30ec\u30c3\u30c9\u3067\u805e\u304d\u305d\u3046\u306a\u3053\u3068\u304c\u66f8\u304b\u308c\u3066\u3044\u307e\u3059\u304c\uff0c\u30b9\u30ec\u30c3\u30c9\u6570\u30921\u306b\u3057\u3066\u3082\u3042\u307e\u308a\u5272\u5408\u5909\u308f\u3089\u306a\u3044?

\n
\n
\n

\u3053\u306e\u74b0\u5883\u306f\u3088\u304f\u30b5\u30fc\u30de\u30eb\u30b9\u30ed\u30c3\u30c8\u30ea\u30f3\u30b0\u3057\u3066\u3044\u308b\u306e\u3067\u53c2\u8003\u7a0b\u5ea6\u306b\u2026\u2026\uff0e

\n
\n
\n
\u74b0\u5883
\n
\n
$ ./zstd -V\n*** zstd command line interface 64-bits v1.4.9, by Yann Collet ***\n$ zstd -V\n*** zstd command line interface 64-bits v1.4.8, by Yann Collet ***\n$ dpkg-query -W zstd\nzstd    1.4.8+dfsg-2.1\n$ lsb_release -dr\nDescription:    Debian GNU/Linux bullseye/sid\nRelease:        unstable\n$ uname -m\nx86_64
\n
\n
\n", "content_text": "ZSTD 1.4.9\u304c\u30ea\u30ea\u30fc\u30b9\u3055\u308c\u3066\u3044\u307e\u3057\u305f\uff0e\n\n\n\nZstd 1.4.9 Released With ~2x Faster Performance For Long Mode – Phoronix\nRelease Zstandard v1.4.9 \u00b7 facebook/zstd\nZstandard – Real-time data compression algorithm\n\n\n\n\u4eca\u56de --long \u5229\u7528\u6642\u306b\u6700\u59272\u500d\u306e\u9ad8\u901f\u5316\u304c\u58f2\u308a\u306e\u3088\u3046\u3067\u3059\uff0e\u305d\u308c\u306f\u3059\u3054\u3044\u3063\u3066\u3053\u3068\u3067\u5c11\u3057\u8a66\u3057\u3066\u307f\u307e\u3057\u305f\uff0e\n\n\n\n>2x Faster Long Distance Mode\nLong Distance Mode (LDM) --long just got a whole lot faster thanks to optimizations by @mpu in #2483! These optimizations preserve the compression ratio but drastically speed up compression. It is especially noticeable in multithreaded mode, because the long distance match finder is not parallelized.\n\n\n\n\u73fe\u5728\u306ezstd\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u306f1\u3064\u524d\u306e1.4.8\u3067\u3057\u305f\uff0e\n\n\n\n$ zstd -V\n*** zstd command line interface 64-bits v1.4.8, by Yann Collet ***\n\n\n\n1.4.9\u3092source\u304b\u3089build\u3057\u307e\u3059\uff0e\n\n\n\n$ sudo apt build-dep zstd (1)\n$ git clone https://github.com/facebook/zstd (2)\n$ cd zstd\n$ git checkout v1.4.9 (3)\n$ make (4)\n$ ./zstd -V (5)\n*** zstd command line interface 64-bits v1.4.9, by Yann Collet ***\n\n\n\n\nzstd\u30d3\u30eb\u30c9\u306b\u5fc5\u8981\u306a\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u5c0e\u5165\nsource\u306eclone\n1.4.9\u306b\u5207\u308a\u66ff\u3048\nmake\n\u30d0\u30fc\u30b8\u30e7\u30f3\u78ba\u8a8d\n\n\n\nZSTD(1)\n\n \u2022 --long[=#]: enables long distance matching with # windowLog, if not # is not present it defaults to 27. This increases the window\n size (windowLog) and memory usage for both the compressor and decompressor. This setting is designed to improve the compression\n ratio for files with long matches at a large distance.\n\n Note: If windowLog is set to larger than 27, --long=windowLog or --memory=windowSize needs to be passed to the decompressor.\n\n\n\n--long \u306f 31\u307e\u3067\u306e\u3088\u3046\u3067\u3059\uff0e32\u3092\u6307\u5b9a\u3059\u308b\u3068\u3053\u3046\u3044\u3046\u30a8\u30e9\u30fc\u306b\u306a\u308a\u307e\u3059\uff0e\n\n\nzstd: error 11 : Parameter is out of bound\n\n\n\u3061\u3087\u3046\u3069\u5927\u304d\u3081\u306etar\u304c\u3042\u3063\u305f\u306e\u3067\u3053\u308c\u3067\u8a66\u3057\u307e\u3059\uff0e\n\n\n\n$ ls -l ../linux-5.11.tar\n-rw-r--r-- 1 matoken matoken 1064212480 Feb 15 18:18 ../linux-5.11.tar\n\n\n\n\n$ grep -m1 ^\"model name\" /proc/cpuinfo (1)\nmodel name : Intel(R) Core(TM) i5-3320M CPU @ 2.60GHz\n$ nproc (2)\n4\n$ /bin/time -f\"\\treal\\t%e\" zstd -q -T`nproc` -1 --long=31 ../linux-5.11.tar -o /dev/null (3)\n real 8.10\n$ /bin/time -f\"\\treal\\t%e\" ./zstd -q -T`nproc` -1 --long=31 ../linux-5.11.tar -o /dev/null (4)\n real 5.27\n$ /bin/time -f\"\\treal\\t%e\" zstd -q -T`nproc` --long=31 ../linux-5.11.tar -o /dev/null (5)\n real 8.36\n$ /bin/time -f\"\\treal\\t%e\" ./zstd -q -T`nproc` --long=31 ../linux-5.11.tar -o /dev/null (6)\n real 5.76\n$ /bin/time -f\"\\treal\\t%e\" zstd -q -T`nproc` -19 --long=31 ../linux-5.11.tar -o /dev/null (7)\n real 388.15\n$ /bin/time -f\"\\treal\\t%e\" ./zstd -q -T`nproc` -19 --long=31 ../linux-5.11.tar -o /dev/null (8)\n real 318.08\n$ /bin/time -f\"\\treal\\t%e\" zstd -q -T1 --long=31 ../linux-5.11.tar -o /dev/null (9)\n real 11.81\n$ /bin/time -f\"\\treal\\t%e\" ./zstd -q -T1 --long=31 ../linux-5.11.tar -o /dev/null (10)\n real 7.89\n\n\n\n\nCPU\u306f Intel\u00ae Core i5-3320M CPU @ 2.60GHz\n\u30d7\u30ed\u30bb\u30c3\u30b5\u6570\n\u5727\u7e2e\u30ec\u30d9\u30eb1(\u6700\u4f4e)\u306e1.4.8\u30678.10s\n\u5727\u7e2e\u30ec\u30d9\u30eb1(\u6700\u4f4e)\u306e1.4.9\u30675.27s\n\u5727\u7e2e\u30ec\u30d9\u30eb3(\u30c7\u30d5\u30a9\u30eb\u30c8)\u306e1.4.8\u30678.36s\n\u5727\u7e2e\u30ec\u30d9\u30eb3(\u30c7\u30d5\u30a9\u30eb\u30c8)\u306e1.4.9\u30675.76s\n\u5727\u7e2e\u30ec\u30d9\u30eb19(\u6700\u9ad8)\u306e1.4.8\u3067388.15s\n\u5727\u7e2e\u30ec\u30d9\u30eb19(\u6700\u9ad8)\u306e1.4.9\u3067318.08s\n\u30b9\u30ec\u30c3\u30c9\u6570\u30921\u306b\u3057\u305f\u3068\u304d\u306e\u5727\u7e2e\u30ec\u30d9\u30eb3(\u30c7\u30d5\u30a9\u30eb\u30c8)\u306e1.4.8\u306711.81s\n\u30b9\u30ec\u30c3\u30c9\u6570\u30921\u306b\u3057\u305f\u3068\u304d\u306e\u5727\u7e2e\u30ec\u30d9\u30eb3(\u30c7\u30d5\u30a9\u30eb\u30c8)\u306e1.4.8\u30677.89s\n\n\n\n2\u500d\u3068\u307e\u3067\u306f\u884c\u304d\u307e\u305b\u3093\u304c\u901f\u304f\u306a\u3063\u3066\u3044\u308b\u3088\u3046\u3067\u3059 :)\n\u30de\u30eb\u30c1\u30b9\u30ec\u30c3\u30c9\u3067\u805e\u304d\u305d\u3046\u306a\u3053\u3068\u304c\u66f8\u304b\u308c\u3066\u3044\u307e\u3059\u304c\uff0c\u30b9\u30ec\u30c3\u30c9\u6570\u30921\u306b\u3057\u3066\u3082\u3042\u307e\u308a\u5272\u5408\u5909\u308f\u3089\u306a\u3044?\n\n\n\u3053\u306e\u74b0\u5883\u306f\u3088\u304f\u30b5\u30fc\u30de\u30eb\u30b9\u30ed\u30c3\u30c8\u30ea\u30f3\u30b0\u3057\u3066\u3044\u308b\u306e\u3067\u53c2\u8003\u7a0b\u5ea6\u306b\u2026\u2026\uff0e\n\n\n\u74b0\u5883\n\n$ ./zstd -V\n*** zstd command line interface 64-bits v1.4.9, by Yann Collet ***\n$ zstd -V\n*** zstd command line interface 64-bits v1.4.8, by Yann Collet ***\n$ dpkg-query -W zstd\nzstd 1.4.8+dfsg-2.1\n$ lsb_release -dr\nDescription: Debian GNU/Linux bullseye/sid\nRelease: unstable\n$ uname -m\nx86_64", "date_published": "2021-03-05T00:17:19+09:00", "date_modified": "2021-03-05T00:17:19+09:00", "authors": [ { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" } ], "author": { "name": "matoken", "url": "https://matoken.org/blog/author/matoken/", "avatar": "https://secure.gravatar.com/avatar/38f5f3b575c5eb45cda6aa659bca119ac7a5e16b46565e869d0030e3bd66981d?s=512&d=mm&r=g" }, "tags": [ "Zstandard", "ZSTD", "Debian", "Linux", "sid" ] } ] }