HUGE Speed Differences! Flatpak vs. Snap vs. AppImage
Read full transcript 8 segments
-
What we're going to be doing is checking out some of the more popular Linux packaging formats, and running some benchmarks to see if there are any clear winners between them. But before we get into the actual benchmarking, we must first talk about what these different packaging formats are, and what are some of the key differences between them. Now for this, we're going to be focusing on flatpaks, snaps, and appimages. All of these have the benefit of being independent from your Linux distribution, meaning that no matter what version or distribution of Linux we're running, you can run all of these packaging formats. And this differs from something like APT, pacman DNF, whatever it may be, because those are distributions specific package management systems. So now to cover some of the differences. First up, I'm going to talk about flatpaks. This is a decentralized system, where you can pull applications from a variety of sources with flathub being the most popular at the moment, the actual flatpak applications run in a sandboxed environment. So it will be completely separate from your systems runtime. And these sandbox applications include everything that you're going to need to run the application including all of the dependencies. And generally, this also makes flat packs secure, because it won't actually interfere with your system at all unless if you give it explicit permission to do so. A con of flat packs on a lot of these compared to your distributions native package management system is the file sizes are going to generally be a little bit larger because of all those pre included dependencies. And then there are snap packages. Now this is definitely the most controversial of
-
the bunch. Snap packages are a packaging system that is developed by Canonical the parent company of Ubuntu. And one of the big issues that a lot of people have with the snap packages is the snap store itself is proprietary and controlled by canonical. And recently, they've started replacing some of the packages on the Ubuntu system with snaps by default. And another "feature" of snaps is their auto updating nature now like flatpaks snaps are also going to contain all of the dependencies needed to run the actual application. And generally, it's going to be isolated from the rest of your system. Now of these appimages are definitely the most interesting and unique as they are a individual executable file that will contain everything you need to run an entire application. So there's simply just one file per appimage. And with this that makes appimages incredibly portable. And with that very easy to manage various versions of one type of application on your system. For those of you who are running Windows, a really good way to kind of compare this is these are very similar to portable .exe files that you may open and run on Windows. And appimages are really easy to run you just first within permissions make sure it is actually executable, and then click on the file to open it up or you can launch it through the terminal appimage hub is a huge repository and a great resource to find various app images and applications. And many developers who opt to actually provide this format for their
-
applications usually have direct downloads on their websites. Now the main issue with the app image format is these applications are not just directly installed on your system. So this will require more manual intervention to create desktop entries that will show up in your menus. And of course, updating them, you're just gonna have to download the new version, and replace it depending on how you have your system set up. But before we get into testing, we're gonna have to thank the sponsor of today's video, SurfShark now I know that there's a lot of VPN ads on YouTube, but a lot of them are full of fluff. And I'm gonna give you the two actual reasons why you might want to use a VPN provider. Let's say you are on the Ubuntu Website and you want to download the ISO via a peer to peer download all the people who are downloading it, and everybody else really can see your public IP address. This generally is not a good thing. And that is where a VPN such as surf shark comes in very handy, as it will mask that IP address with an IP address related to one of their many servers around the world. And then the other good reason is to get around geo blocks and geo restrictions. A lot of people talk about being able to watch Netflix of Canada while you're in the United States. Whatever it may be, it's good for that because you can connect to any of these servers around the world SurfShark themselves has over 3200 of these servers in 65 different countries. If you use the link down below SurfShark.deals/TECHHUT you can get 83% off your subscription and a extra three months for free. So make sure you check the link down below. So I was browsing around on our r/Linux on Reddit
-
and I stumbled across this posting showing a substantial difference in internet speeds between the actual snap packages and a direct Firefox download. So that got me thinking what else can we do to see the performance differences of the same application but on different packaging formats? So first, let's take a closer look at Firefox. Now. I wasn't able to do this same internet speed test that I saw on Reddit, mostly because there is wild variations in my internet speed. And that wouldn't really be a very accurate number. But I was able to run a suite of browser benchmarks, and the very first one we ran was BaseMark Web 3.0. And this benchmark includes various system and graphics tests that use web recommended features and gives us a comprehensive performance benchmark as a score so we can see the differences. Now for all of these tests, I did it on both Ubuntu and fedora using in addition to these various packaging formats, the APT and DNF installations and pulling up this first graph here for BaseMark Web 3.0, we can see some substantial differences between the packaging formats, and in between Fedora and Ubuntu. So it's kind of a distribution comparison to if you're interested in that. And for this, this was done on Firefox version 99, across all platforms and distributions, and we can see app images and flatpaks are neck and neck with App images performing slightly better on fedora and flatpaks performing slightly better on Ubuntu. And then on Fedora snaps actually had an advantage over the DNF installation and then for Ubuntu to snap still had an advantage but not nearly
-
as much as the fedora advantage. And then if we look at the native package installation versus snap packages, snap still had a slight advantage particularly on Fedora, but overall with Ubuntu, it was generally neck to neck. And then from there, we went ahead and ran a MotionMark which this specifically focuses on graphic rendering. Again, this is scores. So the higher the better. And overall, we saw very similar results. In this case, Ubuntu actually had an edge in these scores with appimages generally performing better than flatpaks. And then the native package installation through APT or DNF, was slightly behind the snap package performance. And then from there, we went ahead and ran Speedometer, which just as a very general test for browser responsiveness, this one was a lot tighter again, we're seeing a lot of the similar results across these browser benchmarks, which generally I think is really good that these are consistent between various tests, basically telling me that these results are fairly accurate. Again, appimages and flatpaks are neck to neck. And with this variation of 2%. Down here, it's basically a tie between appimages and flatpaks. And with general browser responsiveness, the DNF installation on Fedora did perform substantially better than the snap package. And then with Ubuntu, the snap had a very slight advantage in comparison to the APT installation. Now going forward from Firefox, there aren't too many benchmarking tools that we could use to actually measure this. So I had to
-
kind of come up with some of my own benchmarking techniques for some of these and the next one that we ran was just a simple Kdenlive render, what I did was added about an eight minute video added one effect to the entire thing. So it did have to do a little bit of extra work with the rendering. And then right here, this is the results we got. Now this is going to be kind of flipped from what we saw with Firefox. In this case, this is in time second. So the lower the score, the better APT and DNF did substantially better than all of the cross platform package systems. And I mean by a good margin to if you're going to be rendering things in Kdenlive by the looks of this anyways, you should probably just install it with your system package management software. Appimage was pretty close with about a 32nd difference, but then flatpaks and snaps, kind of lagged behind everything by anywhere from 50 to 20 seconds. And the next step we ran one of my favorite little benchmarks, which is the GIMP at Lava render, opened up GIMP created a 5000 by 5000 canvas, rendered out the lava texture, which is a slightly intensive process. Now I do have to note the appimage version of gimp isn't kept as up to date as all the other versions it's behind about six months. But even with this app image did perform the best and actually did beat out the native installation by just about eight seconds. And then both flat packs and snap packages fell behind the native installation by a considerable margin. So just considering this graph, personally, I'm going to be switching my GIMP installation to
-
simply using an app image. And then from there we went to a blender image render. Now there is actually a blender benchmarking utility. But unfortunately, there's not a flat pack set package and all that for that utility. So I had to download some project files directly from Blender and then render those out as a single image. My computer's not very good. So rendering out the entire animation would have taken hours. As we can see here rendering out a single image took over 400 seconds no matter what I ran. And I did this with flatpak and snap packages. For some reason the native installation on both Ubuntu and Fedora was just not cooperating with the files that I downloaded. But these are the results. This is one of the very few cases that snap package is performing slightly better land flat pack exe. And this is arguable, but part of the reason for this might be that our snap package are one of the download options directly from Blender. So it's one of their main supported formats. So generally from this, I can conclude that running something where you're rendering out files doing creative work, it's probably better to use the native application from your distributions Package Manager. But for everything else, flatpaks, appimages, might be better snaps in general kind of suck. In my personal opinion, you can voice your opinion in the comments. And if you are looking for very specific benchmarks, although these were incredibly easy to run, you could run them for yourself, just get your latest project for whatever application you want to know runs a better time
-
the render process or whatever it may be, and figure out what works best for you. Big thank you to our YouTube members, Patreon supporters, you guys are also fan tastic and all these graphs and things that I talked about in this video will like always be linked down below. So with all that, I hope you all have a beautiful day and good bye Transcribed by https://otter.ai
Summary
This tech analysis compares popular Linux packaging formats: Flatpak, Snap, and AppImage. It highlights their differences in sandboxing, distribution independence, and dependency management, noting Flatpak's decentralized nature, Snap's proprietary store and auto-updates, and AppImage's portable, single-file executables. The practical takeaway is to understand these variations to choose the best format for your needs.