My experience with GrapheneOS on several phones (as well as many friends of mine running it) is that both performance and battery life is noticably better with GrapheneOS. So there must be something going on with the state of your phone.
It could be a combination of several things.
Apps:
One factor could be that you just have a bunch of apps installed. Especially apps from Play Store will commonly have a lot of trackers. It's comparable to browser trackers (which are watching and analysing your activity, logging it and sending this to a remote server).
Replacing these apps with alternatives from a repository like F-Droid or IzzyOnDroid (a repository with more apps and quicker updates, created by an F-Droid developer). I recommend Neo Store (or Droid-ify) as your F-Droid client as you can toggle many additional repositories from the app instead of having to search it up and copy links and follow instructions. Neo Store (or Droid-ify) also have additional features that are quite useful.
If you have a lot of apps installed, this will definitely affect both performance (and thus battery drain). You might not be aware of background services or tasks.
Check resource usage:
Go to Settings --> Battery --> Battery usage
. Anything sticking out?
Check Running Services
in Developer options
.
Also, go to the 3-dotted menu at the top right, toggle "Show cached processes". These apps are just kept in cache and doesn't necessarily do anything. Remember, in most cases it's better to keep apps in memory rather than killing them (as it requires more energy to start them up again rather than just keeping them in memory). If you are running out of memory, then it's a different matter. But then I'd instead consider uninstalling or changing out apps to better ones.
Setting apps to "unrestricted" is unlikely to affect battery usage if the app is written properly. I set unrestricted to all apps I want to work reliably and that I'm regularly using or depending on for its notifications.
Other stuff:
Old systems will become filled up with logs and caches. I don't see this as something that will likely cause a system to behave like you're describing, but it could be a factor among others that affect the total outcome.
Have you installed any app that claims that it speeds up the system or free up resources or anything similar? If so, uninstall them. Those apps are making the system spend more resources than it should and making the problem worse or just outright causing new problems.
Do you have animated wallpaper engine installed? A custom launcher? Theming? A lot of overlays?
What hardware are you running?
Which GrapheneOS version? Stable release? Not beta or alpha?
Did you transfer or import settings or apps from another phone?
Do you use multiple users?
Are you actually running out of memory? Do you mind uploading screenshots of AccuBattery message and performance-related info, as well as background apps and services and other related things mentioned here. The more the better. Even a list of your apps or at least a number of how many and how many of those are running in the background and are cached.
It's easier to help if we know more. Of course, only upload things that you are comfortable with and avoid uploading anything that can be identifiable like usernames, e-mail or apps that are otherwise of sensitive or personal nature (medical-related, dating, membership stuff or even banking apps if you want to be super incognito). You can censor details or apps with e.g. Fossify Gallery (the editing tools are alright enough).
In case you want to wipe the system and start from a clean slate:
I can recommend some nice apps and tools to make backup and later importing easier. I can also recommend good app replacements that I and others I know have good experience with. :)
Developer options, performance and battery life:
I highly doubt simply having the menu enabled and exposed have any effect on either performance or battery life. Some might speculate it could enable other features that would be useful for developers, such as logging or debugging. However, developers are interested in testing actual real-world experience and it's just unintuitive and strange if it did some additional stuff in the background that the developer was not told, this could scew testing results.
However, there are certain options within Developer options that can affect performance and battery life. The majority of these options that affect these aspects are pretty obvious for most people.
So don't worry about Developer options. And don't worry about not being a developer, I won't call the Android settings police if you don't. ;) :D
Animations:
fid02's advice about using Settings > Accessibility > Color and motion > Remove animations: ON
instead of Developer options' animation settings is a good. Though, it's seemingly just a shortcut for toggling the three animation-related Developer options "off".
If you toggle either setting (either in Accessibility menus or in Developer options) both settings reflect the same state.
"Disable Bluetooth A2DP hardware offload":
This setting, if enabled, disables decoding and processing in the Bluetooth device. So by having this setting off (as is default) you ask the Bluetooth device to do audio decoding and processing. For old devices, this may be problematic. There might be other ways to fix your issues either on the device side or other Bluetooth settings in Developer Options (or in the regular Bluetooth settings). It depends on the device and the issue you are facing.
By enabling this setting (which disables A2DP hardware offload) you ask the phone to do this instead and this will likely cause increased battery usage, but it's not enough to tank performance! It's a very trivial task for the phone's hardware to take care of.
Hope this helps. :)
fid02 There's almost never a need for developer options to be enabled... unless you are a developer!
I respectfully beg to differ, as a non-developer. One of the first things I enable on a phone is "Show taps". It's a great indication of touch input in general, but especially in case you crack the screen. Because then you can see which part(s) of the screen is working and how it interprets your touch inputs (if it sounds useless; trust me, it is not. I've been able to operate cracked phones this way, e.g. by strategically rotating the screen to use the part where it's working. Also, when the screen is wet, you can see whether drops of water or damp affect touch input by being aware of what the "screen sees as touch input". Sometimes it also doesn't register touch inputs properly and you'll similarly be able to know why.
Not having "Show Taps" enabled is simply a no-go for me, even if was the only Developer option I used.
Before animations could be disabled in the accessibility option in the regular settings, the Developer option's animations options were the first thing I did on a new phone. Seeing as there's a "non-dev" setting for it now, it makes sense to use that instead. Like I said, it's very likely just a shortcut for the Developer options that bypasses the need of enabling and accessing Developer options.
But in addition to "Show taps", I also like "Enable Wi-Fi Verbose logging", "Always show crash dialog" and "Show background ANRs". Some potentially interesting and potentially useful ones are "Force activities to be resizable", "Enable freeform windows" and "Enable non-resizable in multi window".
Here's a continued list of options I find useful:
- "Bluetooth AVRCP Version" and/or "Bluetooth MAP Version" have helped me in the past.
- "Disable absolute volume" has helped me in the past.
- "Bluetooth Audio LDAC Codec" also has its use (although I'm not quite sure if the setting is respected all the time).
- "Show Bluetooth devices without names" have been useful in the past (find a specific device by MAC among several identical device models).
- "Wi-Fi scan throttling" is useful when mapping Wi-Fi network signal strength and channels, such apps need this to be off.
- "USB debugging", "Wireless debugging" and "disable adb authorization timeout" also have their uses.
- "Quick settins developer tiles" and e.g. "Wireless debugging" tile enabled can definitely be useful.
- "Running services" and "Standby apps" have their uses.
- "Enable Bluetooth HCI snoop log" is useful for checking e.g. supported bitrates and codecs for BT devices.
- "Select mock location app" has its use.
I'm not a developer, but the Developer options are super nice and handy even for regular people. Just because it says "Developer options" doesn't mean it's just for developers. I think we all know the reasoning behind naming it that way.