← Back
Tech Hut April 16, 2022 11m

HUGE Speed Differences! Flatpak vs. Snap vs. AppImage

Read full transcript 8 segments
  1. 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  

  2. 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  

  3. 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  

  4. 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  

  5. 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  

  6. 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  

  7. 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  

  8. 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.

View original episode ↗