On Thu, Dec 8, 2022, at 10:28 AM, Adam Williamson wrote:
> On Thu, 2022-12-08 at 17:10 +0000, Gary Buhrmaster wrote:
>> On Thu, Dec 8, 2022 at 5:06 PM Adam Williamson
>> <adamw...@fedoraproject.org> wrote:
>> 
>> > It already *is* compressed, which is why it doesn't get any smaller in
>> > the compressed filesystem image, unlike the other things I mentioned.
>> > Check for yourself - look under /lib/firmware and you'll see only
>> > things ending in .xz.
>> 
>> Right, but zstd *may* have a better compression
>> ratio than .xz (that was at least one of the reasons
>> given for the changes to support it).
>
> I actually spent half an hour looking into that yesterday as I got
> diverted into the details of how the filesystem compression stuff
> works, but all the references I found say xz consistently compresses
> better than zstd. zstd's advantages over xz are in *performance* (time
> taken to compress and decompress). So switching from xz to zstd seems
> like it would make things bigger, not smaller.

xz will use a larger computation cost upfront (compression) to achieve a higher 
compression ratio than zstd, i.e. you can always ask xz to spend more time to 
get a higher compression ratio and thus beat zstd on resulting file size. But 
zstd will always beat xz if you favor time to compress, and significantly beats 
xz on decompression time.

Net costs: Fedora releng takes one compression hit per image created, but 
consumers of those images which also includes a ton of Fedora QA bot time as 
well as human users are in the dozens to thousands of hits per image created. 
The net energy cost is quite a lot higher using xz compared to zstd. Only 
focusing on image size is misleading. There's a very real energy hit of all 
this compression and decompression. I don't know how to weigh the costs and 
figure out a compromise, but totally ignoring one of the costs is probably 
incorrect. For all I know a balanced approach means using xz but at a lower 
compression ratio, but someone with round tuits and interest would need to look 
at it.



-- 
Chris Murphy
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to