The top/1st line is the first service and it cascaded down as each subsequent service starts. Left to right is time elapsed. Bright red line is time to start that service. Shorter is better.
I did this for the longest time until I realised that because AdGuard works best as a virtual VPN, it is unable to run alongside an actual VPN. Luckily my VPN (and many others) support ad blocking too.
Another benefit of using uBlock Origin is the ability to use the cosmetic filters so you can remove elements from the page that aren’t served as ads in the typical sense. As an example when you’re reading an article and there’s an obnoxious box half way through that says CONSIDER SUBSCRIBING etc. It’s not loading any external resources, it’s just inlined HTML. But you can enter element picker mode and if you are able to uniquely target that element you can filter it out.
That’s not what I’m talking about. I meant to say that AdGuard on mobile (Android) runs by pretending to be a VPN in order to intercept all connections and filter the ads out of them. This works great to remove ads in apps, etc.
However, because it hooks into the VPN interface you can’t then run another VPN (for example Proton VPN) because Android only allows one VPN to run at any time.
TIL You can use `systemd-analyze plot > plot.svg` to plot the service startup time to find bottlenecks (lemmy.world)
Apparently the reason my computer has been taking 2 minutes to boot was a faulty network mount
DNS-based tracker blocking vs local app-based tracker blocking, (kerala.party)
which is more effective, useful, and efficient?