From 4e5aab154274effb75484f89837ff852b24eee01 Mon Sep 17 00:00:00 2001 From: Paul Duncan Date: Wed, 2 Mar 2022 02:25:32 -0500 Subject: added posts/2022-03-02-tiny-binaries-redux.md --- content/posts/2021-12-31-tiny-binaries.md | 5 +++ content/posts/2022-03-02-tiny-binaries-redux.md | 49 +++++++++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 content/posts/2022-03-02-tiny-binaries-redux.md (limited to 'content/posts') diff --git a/content/posts/2021-12-31-tiny-binaries.md b/content/posts/2021-12-31-tiny-binaries.md index 8e0c5bb..d965c2e 100644 --- a/content/posts/2021-12-31-tiny-binaries.md +++ b/content/posts/2021-12-31-tiny-binaries.md @@ -45,6 +45,9 @@ Optimization][tb-asm] for an explanation of the assembly results. and makes it [significantly easier to create stripped binaries][rust-strip]. +**Update (2022-03-02):** Added a [follow up post][tb-redux] with Go +1.18rc1, Rust 1.59, and TinyGo 0.22. + [x86-64]: https://en.wikipedia.org/wiki/X86-64 "64-bit version of x86 instruction set" [linux]: https://en.wikipedia.org/wiki/Linux @@ -73,3 +76,5 @@ binaries][rust-strip]. "Rust 1.59.0 release announcement." [rust-strip]: https://blog.rust-lang.org/2022/02/24/Rust-1.59.0.html#creating-stripped-binaries "Creating stripped binaries section of Rust 1.59.0 release announcement." +[tb-redux]: {{< ref "2022-03-02-tiny-binaries-redux.md" >}} + "Tiny Binaries Redux post." diff --git a/content/posts/2022-03-02-tiny-binaries-redux.md b/content/posts/2022-03-02-tiny-binaries-redux.md new file mode 100644 index 0000000..075b753 --- /dev/null +++ b/content/posts/2022-03-02-tiny-binaries-redux.md @@ -0,0 +1,49 @@ +--- +slug: tiny-binaries-redux +title: "Tiny Binaries Redux" +date: "2022-03-02T01:03:47-04:00" +--- +I regenerated the [Tiny Binaries][] chart with the following changes: + +* Added [Rust 1.59][]. +* Added [TinyGo 0.22.0][tinygo]. +* Replaced [Go 1.18beta1][] with [Go 1.18rc1][]. + +### Results + +{{< figure + src="/files/posts/tiny-binaries-redux/sizes-all.svg" + class=image + caption="All Static Binary Sizes" +>}} + +### Notes + +* [TinyGo][] binaries are ... tiny! +* [Go 1.18rc1][] generates slightly larger binaries than [Go + 1.18beta1][]. +* [Rust 1.59][] generates slightly smaller binaries than [Rust + 1.57][rust 1.57]. +* [UPX][] still makes a huge difference. + +See the [tiny-binaries GitHub repository][repo] for additional details +and a table of results. + +[tiny binaries]: {{< ref "2021-12-31-tiny-binaries.md" >}} + "Original Tiny Binaries article." +[repo]: https://github.com/pablotron/tiny-binaries + "Tiny Binaries GitHub repository" +[rust]: https://www.rust-lang.org/ + "Rust programming language" +[rust 1.59]: https://blog.rust-lang.org/2021/12/02/Rust-1.57.0.html + "Rust 1.57.0 release announcement." +[rust 1.59]: https://blog.rust-lang.org/2022/02/24/Rust-1.59.0.html + "Rust 1.59.0 release announcement." +[go 1.18beta1]: https://go.dev/ + "Go programming language, version 1.18beta1." +[go 1.18rc1]: https://go.dev/dl/#go1.18rc1 + "Go 1.18rc1 download." +[tinygo]: https://tinygo.org/ + "TinyGo: Small Go compiler." +[upx]: https://upx.github.io/ + "Ultimate Packer for eXecutables." -- cgit v1.2.3