Signal-ios: Poor performance (due to large messages database?)

Created on 23 Jun 2019  路  5Comments  路  Source: signalapp/Signal-iOS

  • [x] I have searched open and closed issues for duplicates
  • [x] I am submitting a bug report for existing functionality that does not work as intended
  • [x] This isn't a feature request or a discussion topic

Bug description

Poor performance while using Signal:

  • Long start up times (never lower than 5 seconds, often around 5-10 seconds, and up to 15 seconds)
  • After starting up, Signal will often remain unresponsive for an amount of time, especially after a start up that's occurred after a period of time without Internet connection (as it begins to load in messages it received during this time)
  • Using 3D Touch to peak into a chat will often cause the app to be unresponsive for some time until the chat loads, even if the pressure from the screen is removed while the chat is loading

i.e. start up time refers to how long a fresh restart of the app takes after it has been killed in memory for whatever reason

Complete guess for an explanation:
I suspect this is something to do with the size of my Signal messages database (for me, it's around 5GB at the moment). Signal is my primary messaging app, and compared with iMessage for example which stores video and photo attachments in iCloud, Signal takes up a lot more local storage.
If this is true, then this is also probably linked to my other currently open issue for Signal-iOS #3784, where searching through all my messages will leave the app unresponsive for a while and then crash. I'm assuming this is also to do with Signal's inability to handle a large database but I could definitely be wrong.

Steps to reproduce

  • Use the app
  • Maybe have a lot of messages already stored in the Signal DB?

Actual result:
Poor performance

Expected result:
Good performance! (fluid animations, snappy, lower start up times, etc.)

Device info

Device: iPhone 6s

iOS version: 12.4 public beta

Signal version: 2.40.0.26

Link to debug log

https://debuglogs.org/c19804b2b4c4c591e4289c2e016483fd701e8de3396235da664af85e19d81536.zip

Not sure how useful a debug log is in this case. I submitted this after I started the app, scrolled down (was choppy and unresponsive during this), opened a chat and sent one message.


If my explanations are unclear, I will try to make a video demonstrating the poor performance I'm talking about.

Most helpful comment

It's literally impossible to search old messsages in Signal. I tried to look a message sent last year in december and it took more than 2 minutes to jump to it; meanwhile, on WhatsApp, it is instant. This just shows yet another way in which Signal is really far behind their competitors. Something as key as performance should always be the top priority. Sometimes it even crashes.

All 5 comments

It's literally impossible to search old messsages in Signal. I tried to look a message sent last year in december and it took more than 2 minutes to jump to it; meanwhile, on WhatsApp, it is instant. This just shows yet another way in which Signal is really far behind their competitors. Something as key as performance should always be the top priority. Sometimes it even crashes.

Maybe Signal for iOS should be rewritten from scratch using the swift language, objective C is deprecated.

Is Objective-C deprecated? I didn鈥檛 think it was, and I can鈥檛 find anywhere that says it is. I鈥檓 not sure the Signal devs have the resources for a full rewrite of the app. It鈥檚 also probably not necessary, they could implement a bunch of database optimisation to the current application instead and it鈥檇 probably be less time consuming.

Is Objective-C deprecated? I didn鈥檛 think it was, and I can鈥檛 find anywhere that says it is. I鈥檓 not sure the Signal devs have the resources for a full rewrite of the app. It鈥檚 also probably not necessary, they could implement a bunch of database optimisation to the current application instead and it鈥檇 probably be less time consuming.

maybe "deprecated" wasn't the appropriate word, i meant, swift is a more efficient language for iOS

Closing because there has since been a DB update and other performance improvements which have improved things for me.

Was this page helpful?
0 / 5 - 0 ratings