Battery life improvements with Apple silicon builds

Under the Hood By Alexandr Stelnykovych | By Viktor Vecsei | Posted on November 10, 2021

We have tested the battery consumption rate of the IVPN app with constant VPN connectivity using two protocols (WireGuard and OpenVPN) on two different app builds (M1 and Intel). We concluded that using a dedicated Apple silicon app build with WireGuard protocol can offer up to 22% increase in battery life over OpenVPN on Intel build version when bandwidth is not limited. This translates to up to 2,5 hours of extra use time on an M1 Macbook Air. In contrast, a test with artificial speed limits demonstrated only a modest (2%) improvement. Read on for detailed results.

Why these tests?

When connected, VPN apps have the potential to be notorious battery hogs due to the constant encryption operations being performed. While apps (including our software) run well on M1 Rosetta without a dedicated build, we have received customer requests for an ARM version, citing expectations around improved battery performance. As a result, we planned to validate whether customer assumptions are true. If, and only if tests show that significant gains can be achieved in battery performance we were ready to commit to compiling an M1 version of the IVPN app going forward.

Testing process design

Device used: 2020 M1 Macbook Air

Testing battery drain time (100% to 0%) with machine unplugged

Conducting eight test runs with active VPN connection, combination of:

Further notes for testing environment:

What are the findings?

  Intel M1
  Battery drain time(hours) Battery drain time(hours)
OpenVPN(speed limit 21Mbs) 14,15 14,03
WireGuard(speed limit 21Mbs) 14,29 14,48
OpenVPN 10,61 10,96
WireGuard 12,33 13,01

Image

Looking at the chart above we can deduce customers connecting through OpenVPN on an Intel-based IVPN app build could potentially achieve a ≈22% or 2,5 hours increase in battery life by switching both app builds and VPN protocols.

We have to note these results are artificial and achieving them could be unrealistic. Speed-limited tests might replicate everyday use with more fidelity, since you use similar amounts of bandwidth for similar tasks even if you switch protocols and builds. Comparing the results of these tests show the lower bound for expected improvements is roughly 2%. We are planning to replicate these tests with the recently released M1 Pro and Max in the coming weeks and update this post with the results.

Following these findings, we released a dedicated M1 ARM build and will continue to support it from now on. The choice between the Intel and M1 versions will be optional for all customers. For the best battery performance, please download the appropriate build for your device. If you are currently using the Intel version, you will not be prompted to upgrade to the Apple silicon version, you must download and install it manually.

Test it yourself

To confirm the results or add your findings for M1 Pro or Max, follow these steps:

  1. Download both M1 and Intel IVPN macOS app builds here.
  2. If you don’t have an active IVPN subscription, email us for a demo account.
  3. Download the test scripts used here.

If you decide to carry these tests out, please post your results on Reddit.

Apps
We invite you to discuss this post in our Reddit community or on Twitter. You can also send your feedback to blog@ivpn.net.
IVPN News

Independent security audit concluded

By Nick Pestell

IVPN News

IVPN applications are now open source

By Viktor Vecsei

Releases

Beta IVPN Linux app released

By Viktor Vecsei

Kill Switch and WireGuard Multi-hop added to IVPN for iOS Releases

Kill Switch and WireGuard Multi-hop added to IVPN for iOS

Posted on November 9, 2021 by Juraj Hilje

Kill Switch and WireGuard Multi-hop options are now available in the latest version of our iOS app (v2.5.0). The Kill Switch protects from leaking data outside of the VPN by preventing network connections if the tunnel is unavailable.
Kill switch changes in IVPN for Android Under the Hood

Kill switch changes in IVPN for Android

Posted on October 14, 2021 by Aleksandr Mykhailenko

TL;DR - Before our latest Android update (2.7.0) customers had two different options for a kill switch: one implemented by IVPN, and another available through device settings in the Android OS. We have removed our custom solution from the IVPN app and suggest using the native Android solution from now on.
Spotted a mistake or have an idea on how to improve this page?
Suggest an edit on GitHub.