Email or username:

Password:

Forgot your password?
Daniel Gultsch

I installed #Signal and #Conversations_im on a clean install of #GrapheneOS on my Pixel 4a and measured the battery impact. The results are shocking!

Both messengers had only one contact: my regular phone.

I used my regular phone to send messages to the Pixel 4a (which was not used for anything else over the course of the experiment).

I always sent the same message via Signal and #XMPP (mixing up which app went first). In total I sent ~32 messages in intervals of 10mins to a few hours.

Battery usage stats from an Android phone. The battery is down to 10% after 20 hours since last full charge.

Signal has consumed 95% in that period and Conversations 5%
39 comments
مسعود :verified:

@daniel
Truly shocking.

What push mechanisms are you using for Signal and for Conversations?

Daniel Gultsch

@masoud Both have direct connections to their respective servers because #GrapheneOS comes without Play Services. Both apps prompted me for exemptions to "Battery optimizations" which I granted.

On the sending side I made sure (by looking at the double ticks ✅ ) that the messages were delivered instantly.

MattJ

@daniel
I wonder if this is related to the bandwidth/power optimizations that XMPP clients/servers support (e.g. CSI) or just general app bloat.
@masoud

Andreas K

@mattj @daniel @masoud
XMPP by its very nature is a protocol that effectively uses "notifications", as it pushes XML stanzas over a channel.
(so as the mobile is almost certainly using some form of NAT, as long as some form of pinging below the timeout of the NAT happens, everything is fine).

So for XMPP not having Google notifications should make little difference, I don't see how an XMPP client/server would even use them.

Now Signal, OTOH, I have no idea what it does. 🤷

@mattj @daniel @masoud
XMPP by its very nature is a protocol that effectively uses "notifications", as it pushes XML stanzas over a channel.
(so as the mobile is almost certainly using some form of NAT, as long as some form of pinging below the timeout of the NAT happens, everything is fine).

So for XMPP not having Google notifications should make little difference, I don't see how an XMPP client/server would even use them.

mathieui

@daniel This is in line with my experience with signal. I have revoked all battery optimization permissions and essentially allow my phone to insta-kill it once it goes to the background. I don’t receive messages unless I open it, but my battery last eons longer.

adb

@daniel I did some tests in the past as well and I remember #Conversations was one of the best apps on optimal battery usage, great work Daniel! 👌

Remus

@daniel

Do you plan to make experiments with element, too?
I would expect Conversations to perform a lot better since matrix is known to be more heavy on ressources but i mention it because it feels like an obvious direct competitor

Daniel Gultsch

@ikonoklast the thing about #Signal that it was at least reliable. Messages were delivered instantly (same as with Conversations). From what I've been hearing about Element is that it becomes notoriously unreliable when it’s working without an external push service. And then it obviously becomes hard to measure battery impact if the app is dead half the time.
But yes maybe. Signal vs Conversations was easy to pull off because I use both apps on a daily basis anyway. I don’t use #Matrix

iamreinder

@daniel That seems quite significant. I have looked into hosting my own XMPP server in the past. I like the idea of a small non-bigtech chat platform for my inner circle. Unfortunately, the biggest challenge is to get people to switch their conversation with you over to a different app.

lbja

@iamreinder @daniel I had lots of success by not being available on walled garden messengers anymore

床井 一郎

@daniel

So I suspect Signal has a wakelock problem as they haven't tested extensively on devices without Play services? The battery drain is running at almost constant speed.

Conversations is great. There's not much to modify/customise before getting it to run on my devices.

yetzt

@daniel you have to disable "mine bitcoin" in the settings. /s

Sandro :nixos: :verified_gay:

@daniel Signal is probably not testing/optimizing for phones without Play Services.

Ichthyx

@daniel btw molly a signal soft fork have unified push support. So we can use correct software (Conversions) as a notify provider 👍

jr conlin —〰—

@daniel

Not really surprised.

The CPU and Radio on your phone are both high draw devices. It's why your phone wants to kill or sleep any program as soon as possible. FCM & APNS use carrier data (& no encryption) which use much lower power stuff.
Otherwise you get what you see, or worse)

That's why Firefox only does Push it we have access to native, but also why data is encrypted.

Râu Cao ⚡

@daniel While you're testing with GrapheneOS, maybe you could check if it keeps the connection open for longer when the phone is locked. Since a couple of months or so, I see 0 connections in the widget when unlocking my phone after a while, but then it reconnects quickly. However, the battery savings settings are the same as before and I don't know why it would disconnect otherwise.

Daniel Gultsch

@raucao Both apps had no problem maintaining their respective connections. Messages were delivered instantly (as indicated by double check marks + me hearing the notification when I happened to be in the same room as the test phone)

DELETED

@daniel though I am sure Signal is more battery consuming than any other XMPP app, I am unsure if the difference is as dramatic as shown in this screenshot. There is 20% usage by Signal and 12% usage by Monocles on my phone.

Daniel Gultsch

@gumnaam Note that in my testing I never actually opened or otherwise interacted with the apps. (I did make sure that messages got delivered though).

As soon as you start interacting with the apps or if/when they receive a different amount of messages your results get skewed (Screen time is obviously a big contributor to battery consumption)

DELETED

@daniel my screen time shows 1 minute for both apps. So, I don't think the result should be THAT skewed.

Temmie

@daniel I recommend Monocles over Conversations since it feels like a more fleshed out app than Conversations while still being based on the same code

Menel :xmpp:

@temmie19
Eh. I think it is bad taste to recommend a fork to the original app author that does 98% of the work for both apps.

While monocles has more features it is also more unstable, in the past it took a bit time with important security updates. And the UI is personal taste... So...
And nothing about this was asking about recommendations for different xmpp android apps anyway.

Temmie

@Menel I had no idea they were the app creator/lead dev. Just recommended something based on my own experiences of using nothing but XMPP for two years

Marek

@daniel Mhh, Signal always keeps a connection to their server open for push messages. Maybe try Molly (Signal fork) with UnifiedPush and use Conversations as UnifiedPush provider.

basti n00b0ss

@daniel

I use the @mollyim fork and it looks like that it does not use that much battery

Screenshot of the Battery Power usage charts

TIDAL 37%
Fairmail 24%
Molly 6 %
Tusky 5%
Element 4%
L2xUXvNo
@daniel
I had to freeze Signal messenger after noticing such a high battery consumption. It always was in the background, I occasionally used it to make calls only.
Marcus

@daniel I wonder if it would be any better if you used the play store version and microG. That's what I'm using on CalyxOS and while my notifications from Signal are less reliable than Conversations, battery usage isn't too bad, though it is worse. Here's my top contenders right now. I'm using the F-Droid version of Conversations.

A screenshot listing my battery usage.

- Wireguard
- Signal
- Conversations
pixelschubsi

@daniel Signal needs to keep active and send regular pings to keep the WebSocket connection open. This is not a technical requirement of WebSockets, but stems from Signal using the latest advanced cloud technology on their servers which cuts the connection if it doesn't see active payload traffic.

pixelschubsi

@daniel That's why Molly people developed mollysocket, which is basically just a proxy you run on a private VPS so you don't have to keep the connection to the signal server from your client. And because your private VPS does not use the same advanced cloud technology as Signal, you can connect to it and keep the connection alive just using the regular means of TCP, which is far better on the battery.

Iak

@daniel interessant. Ich kämpfe auf meinem #grapheneos auch seit einer Weile mit dem Akkuverbrauch von #signal. Schade, dass in #younohost seit dem Update auf #debian 12 nicht mehr automatisch ein #XMPP Server integriert ist. Das war schon ein sehr bequemer Weg für Laien wie mich, unfallfrei, unkompliziert und günstig einen solchen zu klicken und pflegen.

Menel :xmpp:

@kai
Jemand versucht bei yunohost snikket zu integrieren aktuell. Aber ist noch nicht fertig das Project.
Snikket kann man auch selber wirklich einfach installieren. Aber dafür braucht man ein normales Linux System aktuell.

Go Up