FAQ's

Other

Is your iPhone running slower than it did after you first jailbroke it? Do you have issues where apps are running slower or taking longer to load than they use to? Some of this can be caused by what you have chosen to install on your iPhone. Let’s take a look at some things that can cause your device to slow down.

Apps come in 3 categories: 1) Regular app. It only runs when you run it. Installing it is pretty harmless. It just copies files into /Applications folder. This will not slow your device down. 2) Daemon app. This will slow your device down. It is a process that stays running taking up both CPU, memory, and draining battery. 3) Mobile substrate addon. This is a springboard extension.

The problem:
The problem on iPhone is that you are very limited in memory. The device does not provide any memory swap or such. So when memory is full, apps start crashing. If background processes or springboard is taking up more memory than normal, then you run into problems like Safari crashing more often than not etc.

Apps
Regular apps generally won’t cause you any grief. Installation of these just copies files to a folder and they don’t run unless you run them. Most of them quit when you tap home. Apps that are known to run in the background could cause you system-wide slowdown and instability. In addition, installing apps, a lot of them, requires springboard to enumerate and buffer into memory an icon for each app. This isn’t all that significant, however. Each icon, uncompressed takes approximately 14kb of memory. 100 icons is only 1.4mb of memory. Not all that significant. So just installing applications won’t really impact you. All apps installed from AppStore just copy files and do not run in the background.

Daemon Processes:
For the most part you should just avoid any app that runs as a daemon. Learn to do without. Daemons are bad because they are processes that always run utilizing memory, CPU, and battery. Some examples of daemon processes include Intelliscreen (has to update the events). Note: not all Daemons are instant battery drainers. Some are very thin and use very little memory, cpu, and don’t really drain your battery. SSH, for example, is pretty thin and safe.

The real problem here is that you, as a normal user, have no way to know if the app you are installing contains a Daemon or not. Most apps do not, and those that do usually do not advertise as such. For the most part, you can assume any application that is providing you notifications or doing something while you do not interact with it must have some form of Daemon running to do so. Although I haven’t looked and could be wrong about this, I would suspect taskbar notifier and Intelliscreen both provide some sort of daemons.

Detecting daemon processes is pretty tough especially for the beginner. As of this writing, the only way to do so is to use the “top” command in SSH or terminal or the “ps” command. Then you need to know what should be running and compare it to what actually is running.

In the screenshot above you can see top running and “Categories” listed as a running process. This shows that Categories is running in the background. (Note: this only happens if you enable the “background” option in the Categories folder settings menus).

Mobile Substrate:
Mobile Substrate is an ingenious mechanism that allows for apps to extend the springboard. The springboard is your iPhone desktop that controls app launching, most preferences, and locking of the device. Mobile Substrate allows you to have apps that hook into the springboard and allow springboard to do things it normally cannot do. Examples of Mobile Substrate apps include Winterboard, SBSettings, Quickgold, and backgrounder.

In general, Mobile Substrate plugins are much better than daemons because they do not use any additional CPU or battery. They can, however, use more memory (depending on what the plugin is or does). In general, you do not want Mobile Substrate plugins installed that you are not using. How do you know what is installed? You have two options: 1) Look in /Library/MobileSubstrate/DynamicLibraries folder. 2) Open Cydia and start uninstalling mobilesubstrate. Do not actually uninstall this but check out the confirmation screen. It will show you all the other packages that are going to be uninstalled as a result of this action. Those are packages that depend on mobile substrate and are, therefore, mobile substrate plugins.

In the screenshot above, many of the “removing” items are Winterboard themes. The mobile substrate plugins are: attachment= for mailto, QuickGold, SBSettings, Winterboard.

I currently run several mobile substrate plugins and consider Winterboard, SBSettings, and Quickgold “must have” plugins. But you must be careful and do not just install any plugin that comes out. Know what you are getting yourself into.

Update: To clarify, do not avoid mobile substrate “just because” or you are missing out on some of the best reasons to jailbreak. My suggestion is instead to keep your mobile substrate list thin and only install what you really want. Springbridge can generally be uninstalled as it is no longer used. Some folks install every app that comes out and never uninstall what they don’t use.

What To Avoid:
This list is just my opinion. I’m not saying that these apps are dangerous or that the programmers aren’t great. In fact, some of these apps are written by Skrew, who is a very well respected developer. Also, it may be ok wth you if there is a penalty in performance for using some of these elements. Some of them are pretty cool and you may want to run them anyway. That’s fine so long as you do so with the understanding of what the price is that you pay. Anyways, here is my current “avoid” list:

1) Intelliscreen – I recommend avoiding this because I believe it drains battery more than without it. But more importantly, it hooks springboard but does so *directly* bypassing the safety of mobile substrate. This can cause system wide instability. The “performance boost” mode is known to cause instability and incompatibility with other apps. In general, I suggest not installing this app. Update: as of the last version I have tested, intelliscreen bypasses mobile substrate and hooks itself. This bypasses mobile substrate “safe mode” and should never be done. I would definitely hold off on this until it is a mobile substrate plugin.

2) Kate - The also hooks springboard without the safety of mobile substrate. Many mobile substrate issues are solved by simply uninstalling Kate. Kate is cool, but I prefer the power of Winterboard over Facelift.

3) Video Wallpaper – While this is extremely cool, this is a battery drainer. It uses CPU to play the video wallpaper. It also uses Skrew Common. Skrew common uses mobile substrate (great!) but the plugin is huge. It’s 1.2mb for the dylib. Update Nov 13, 2008: Skrew Common has been trimmed down to a much leaner 102k as of v1.54! The same functionality can be provided by Winterboard. I would not suggest running both together.

4) Winterboard Video Wallpaper themes – WInterboard is great. I am not suggesting to avoid Winterboard. But any themes that contain video content should not be used. The impact is the same as Video Wallpaper above.

5) Winterboard Themes with changing backgrounds – These themes are pretty neat. But they come at a cost. The theme requires springboard to be running javascript in a timer loop that runs every 15 seconds or however often the paper changes. This will suck more battery power than normal. Also, depending on how the theme is written, it may utilize a lot of memory if all the images are cached into RAM. The most efficient theme that changes background is “Saurik” that comes with Winterboard. Also, the BigBoss Fantasy Packs have been heavily optimized to only load 10 images at once (lower memory usage), and fade using webkit which is easier on the CPU because it’s hardware accelerated on the iPhone. Still, even these can use more battery than without. (I personally do run fantasy pack #2).

6) Backgrounder - Backgrounder is very useful and if you use it properly, you will have no problem. It lets you background many apps. But know what you are backgrounding. When an app is backgrounded, it is using CPU, Battery, and memory. It is just like a daemon only worse because it probably uses even more memory. Backgrounder, itself, is safe because when nothing is backgrounded, there is almost no extra overhead incurred. In other words, just having backgrounder installed isn’t much of a concern so long as you use it sparingly and know what you’re getting into when you do use it.

7) Categories - Installing categories is safe. However, make sure you are aware that enabling “background mode” on a folder uses up about 5mb of memory per folder you background. You should only background what you need to. I would recommend keeping your backgrounded folder count to 1 or 0. (Better to leave it to 0 and use Quickgold to launch most apps).

Other thoughts:
There are some apps that run all the time straight from Apple. They are: mobile safari, mobile mail, phone, and some other things. Of these apps, safari is the most alarming. It does not need to stay running and one way to free up some unused memory is to kill it. I plan to incorporate this concept into SBSettings.

In addition, some apps just take a long time to load on 2.x and I don’t believe any tricks in this post will help. They are SMS, Maps, and Settings. Notes also seems to take a while to load, but it “tricks” you by showing you the last note you were reading so it looks fast but you cannot type for a few seconds.

I can’t seem to get the top command to run on my iPhone. It doesn’t appear to have been installed with Telesphoreo nor does it appear to be available in Cydia. I would really appreciate some help in getting it to run so I can figure out what I need to remove to to get my iPhone running quickly again.

bigboss, safari also saves up to 8 previous sessions launched. Most apps that launch a link in safari initiate a new session adding to the list. I have to think that clearing the saved sessions has got to help. However I noticed that if you clear them in safari and safari crashes before doing a normal exit the next time you run safari they are still loaded even though you tried to delete them.

I have also tried using MyFox sometimes but is there a way to change the default browser for the iPhone?

Thanks for a thoughtful and insightful article. One thing I’d like to add is that if you have a lot of applications installed, and a lot of contacts as well, QuickGold really slows the phone dramatically. In addition, it uses so much memory, that many large footprint apps simply won’t run. Here’s how I tested:

On a 2.1 3G phone with about 100 apps and 1000 contacts
-uninstalled all mobilesubstrate and daemon apps, rebooted
-ran Bugdom, Clusterball, then Bugdom. Games fine, phone fine

- installed QuickGold, rebooted, launched QuickGold, then pressed Home button- phone already is slightly slower and took much longer to boot. Tried to run Bugdom, it crashed after a few seconds

- rebooted, launched QuickGold, then pressed Home button, then Clusterball, phone crashed after a few seconds.

I won’t bore you with the details, but I did extensive testing with both QG and IntelliScreen, together and separately, and in the end, though I love the functionality of each, I decided they gave too much of a performance hit to be acceptable. Running top during my testing led me to believe the issue is more of a memory problem than a background process problem, so if you’re not running games or other large footprint apps, and if you only have a few apps installed, you probably will be impacted less.

Great article, BB, the one I have been looking for in fact. Been having massive memory issues and also found that despite your earlier recommendation about QG, removing it helped a lot. (Like another poster I have 1000+ contacts and 1500+ bookmarks etc. Maybe if it had the option to only launch apps it would be helpful. Forget about backgrounder.)

I have a question about installed apps and Springboard. Will moving apps to categories automatically reduce this load? 1.5 MB is still a lot when you’re limited to 128 MB or whatever pathetic amount it is.

Thanks for the suggestion. I had already disabled everything except apps and contacts, because quick calling of contacts and launching of apps were my only uses of QG.

However, your suggestion prompted me to think of another approach! I didn’t want to have to reboot my phone every time I played a large game, which is why I uninstalled QG. BUT, I realized that disabling the contacts and apps in prefs might just free up the memory being used without a reboot. That does appear to be the case!

So now I just have to launch QG and disable those items before I play large games Not perfect, but better than doing without one or the other.

I wonder if it might be possible to have QG automatically clear its cache when launching specified apps?

I have found something interesting….I have two iphones…both 8gb. One is my normal ‘user’ and was jailbroke/unlocked using pwnage tool 2.0 on my mac. The other I have my wife using, so I jailbroke/unlocked it on quickpwn windows. Wife’s phone is much faster loading apps, sometimes by 5 seconds or more! Why?

Also, a simple question, but bears asking (I am just smart enough to be dangerous) is…if I uninstall/remove a ‘suspect’ application, will that completely free the phone to run as if it was never installed in the first place? Or in other words, does installing certain apps leave lasting effects even AFTER removal?

Simply access to my iPhone from my iMac via SSH, and use “top” command to see memory activity. In my iPhone, “MobileSafari” still occupies over 20MB (RSIZE) and 70MB (VSIZE) however I don’t launch Safari. (Free PhysMem was less than 2000K)

1. So I launch Safari in my iPhone, then holding down Home Button 6 seconds to completely shut down Safari.

2. “MobileSafari” disappears from activity list until I tap Safari icon to relaunch it. (Free PhysMem became over 35MB) So it’s worth trying.

I also tested the same method to completely shut down MobileMail and MobilePhone which occupy over 10MB (RSIZE) each. (Yes, they are active even when you are not using them.)

1. Launch Mobile Mail, then hold down Home Button 6 seconds to shut it down.

2. Mobile Mail disappears from “top” list but relaunch automatically.

I think it’s because of my mail setting (using fetch every 30 minutes etc… I’m not sure though). Same to MobilePhone (yes, iPhone is a phone! and it relaunches even in Airplane Mode)

I got this technique few days ago, and I’m still monitoring how much effective it is…

Brilliant explanation: clear, deep and very useful. I’d followed all recommendations but one: that concerning “background mode” in Categories. My Categories’ version is 2.18; the site announces a 2.1 version, in which we can control background options. Problem is that I just can’t upgrade to 2.1 version. I’ve tried 10 times, uninstalling and re-installing it but I’m still getting 2.18 version. Is there anything I’m doing wrong?

Again, you say you have 1000 contacts. Try disabling *only* contacts and see if not indexing 1000 contacts frees up enough memory. I have more than 100 apps and it does not seem to use much memory for that.

Big Boss…Great Article..I am also having an
issue with battery drain and trying to find the
source…
I absolutely love SBsettings, its so much quicker and easier than going into Settings or BossPrefs, but I am concerned about the memory footprint and cpu usage. Does it use mobile substrate? Will it slow things down/drain battery?
I really want to keep it installed.

Multiple themes wont matter. I would not bother deleting unused icons. The HTML lock screens may matter especially if they cause network traffic to get updates. Homescreen calendar is suspect. I don’t know how it’s implemented, but there’s no way for javascript to get at this data so something has to “feed” it.

SBSettings is being heavily optimized for these concerns. The memory foot print is *very small*. This is the main reason we have the “more” button so that we can put all the unnecessary stuff into an actual application that does not run inside springboard. The app does not run when not at the front of the screen and does not take up any extra cpu cycles.
At some point, I will try to do an analysis on which plugins use how much memory.

Great informative article BB!! I have a question though. As most iPhone users here my 3g also suffers horrible battery life and i was wondering about the “Dock” app. How is it in the terms of CPU usage and memory footprint? And does disableing it in its settings tab make it as if it was not even installed?

Any comment on how springboard widgets such as time and date winterboard widgets are on battery/performance. I have a winterboard theme which puts the time and date in a large font on the springboard and was wondering if I would be better off without it.

Also I am using Katra’s HD weather theme, which is a lockscreen weather theme… any comment on this as it pertains to performance and memory usage?

Great article and spot on with the comment about themes that change automatically. My phone was having serious stability issues whereby apps would just crash randomly. I ended up figuring out through trial and error that the “Time of Day” theme for winterboard was causing the problems.

I don’t know about the time and date widget but I would imagine that it takes little to no memory/performance impact

As for Katrina’s Weather, it needs to be refreshed so that does make it run even when locked so it will use battery and memory/performance.

Best bet is to uninstall and maybe use the weather widget that goes on the SpringBoard (it will need to be refreshed and use performance and batter but not as much) and you will know your weather OR just use the handy-dandy weather app :P

nice read BB. i totally agree with you that inteliscreen is a memory hog. my iphone was insanely slow. every time i try to call someone it takes about 3-5 seconds to get to the phone screen. my iphone became really unsteady too with random crashes.

i also stop using winterboard themes and widgets that has an html file. my phone runs so much better without it.

top is great way to see what’s running but i don’t understand half the stuff. why hasn’t anyone written an app to see what app is running? before 2.0 firmware there was something call sysinfo that was really useful but somehow never got ported over.

Yea, I think Winterboard gets the short end of the stick a lot. It is the host for so many themes so it can be blamed if things aren’t running well when its usually one of the themes not the winterboard itself that is the issue.

This looks like it uses the status notifier mobile substrate plug in. I’d say try it and see. There may be some penalty in performance but perhaps its not enough to matter and the benefits may be large. That homescreen theme looks pretty interesting. I may test it myself.

I have a 3G and I feel like my battery is draining faster than my 2G… if anything I thought it would last longer. Just checking the time from the lock screen a few times(maybe 5-12 times over a period of an hour) seems like it will be already loose 1%-2% of battery.
I was talking on the phone, a 5 min coversation cost me 4% battery, at that rate I would be at zero after a 2 hour call… and the iphone is supposed to support up to 10 hours of talk time with 3G off.
Im at work for 8 hours and starting from a full charge, just using the phone to check the time, very limited internet
browsing on edge and texting here and there I leave at the end of the day with around 50% battery. I think thats a bit much, but maybe not.
I going to charge my phone and not use it all night and see how much battery power it loses while sleeping.

btw I uninstalled intelliscreen for a day and didnt notice any real difference in battery so I reinstalled it today.
This is quoted off the apples iphone tech specs:
talk time:
Up to 5 hours on 3G
Up to 10 hours on 2G

Standby time: Up to 300 hours

Internet use:
Up to 5 hours on 3G
Up to 6 hours on Wi-Fi

Video playback: Up to 7 hours
Audio playback: Up to 24 hours
——
81% after 16 hours and 21 mins of standby with only a 10 mins of usage and thats just me going into the usage menu to check the usage…
being generous I would say at this rate I would get now about 80-85 hours standby…
any ideas?

well, I’m an advanced iPhone user and I can tell you, the only time I had to re-install my phone from scratch was when I played with Intelliscreen. (I was a paid intelliscreen user, I actually bought the stuff because it’s really cool).

I think there was an issue with iBlacklist or another SMS filtering application, but I just can’t take the risk that it will happen again when I hit another “incompatible” one.

The phone was in constant springboard rebooting mode, no ability to unlock the device, nothing.

I wish the developer brings back the mobilesubstrate interface so that I can re-start using it.

Reading Boss’ comment on winterboard slowing your phone down, and that it has more to do with the theme than winterboard rings true…..I have been meddling with that all day yesterday and found the time delay in which my apps will load varied with which theme I applied. I recently found my favorite theme (that I had with 1.1.4), which was Aqwoah, applied it and immediately noticed the load times being faster. From the ‘woodshelves’ theme (which I liked BTW) to Aqwoah, I gained two seconds on my app ‘loading time’. Hope this helps someone….

First off, you don’t really get those battery times that Apple advertises.

Do you turn your device off every time you put it in your pocket or is the screen lit? Screen running == not in standby. When you put it in your pocket, tap the top power button to turn off screen / lock the device. Next, what is the state of your 3g and wifi toggles? You have SBSettings on, so use it and make sure those are disabled.

What is appshare? What is Installous? Is mewseek running or just installed? You have winterboard but no theme?

Whats do you think is a realistic battery life?
I dont have any other 3Gs to compare my power consumption with, but as compared to my old 2G, it seems lacking.

As to your questions, yes I always put my phone to sleep by hitting the power button up top.
I have all my toggles off(wifi,ssh,3G, bluetooth) with the exception of phone and edge which I of course leave on.
I make sure that Mewseek is completely closed when I finish using it.
With winterboard I am using Orbz theme, which I have added a time and date widget to the springboard. I am also using the preset theme that hides the labels on the apps and dock apps.
Appshare is an appstore clone which downloads ipa application files and Installous is another app that installs the downloaded ipa files.

Hello BigBoss, very interesting article, thanks..
What is the “ps” command from terminal on iPhone for to see informations about memory, cpu percent and other for active process..I have terminal installed on iPhone.
The “top” command is not supported on iPhone, correct ??
Sorry my english..
Thanks.

I’m sure I should probably know this, but the background mode function for categories… is that applied through backgrounder? If not, how do I determine whether I have it running on any of my folder and how can I turn it off? thanks!

It is not using backgrounder. You can tell if folders are backgrounded because:
1) They load instantly after you load them the first time
2) The background setting is set to ON in the configuration of each folder.

Yesterday i installe and uninstalled MySMS and connect.c, and maybe discover or another appstore app (that i kept), and now my iphone has a ReportCras (ReportCrash is its full name) process and another iTunesStore one that cicle on and off (apear and disapar from the list that top displays) and use some/a lot of CPU. This prevents my iphone from going to sleep and it drains its battery.

This is an awesome guide. Easy to read. I learned so much in such a short article. I appreciated a lot and now have a better understanding of things. I restart or respring my iPhone often and I do see the boost at first. It will be nice you someone can write a schedule reboot app for the iPhone.

Do the time anf weather widget themes that come with WbApp use any memory or battery when they are not applied in WinterBoard? I don’t use either of them, should I just SSH into my theme folder and delete them?

Hey BB great write up thanks, just one question i like the feature of intelliscreen that puts your calender on the lock screen so i won’t miss any appointments is there any other safer program out there like that?

Is it possible that background ‘loose’ the indexed categories after xxx time ?
After first time execution they load instantly but, after xxx time (with no apparentely chance in my iPhone) the loading time will increase, again, why ?

One question regarding Intelliview. When you have it on and you double-tap on the time part of the screen it disappears, and comes back when you double-tap, I guess just a way to hide it when not in use. My question is…does it still remain active when flipped off? I mean is it still using CPU when not displayed? Also, I know the video wallpapers drain batteries like champs, but does the video wallpaper still use CPU when you lock it and the screen turns off? Thanks!!

safer is a matter of opinion. what isn’t safe about intelliscreen? we are talking about a mature product on firmware 2.x all of the harmful bugs have been long ironed out. and to chastize a application because it doesn’t use mobile substrate is just foolish if the said application does everything mobile substrate does. And out of pure respect for everything you do BigBoss, I do want to point out that you are wrong… Intelliscreen does NOT bypass safe mode… if you boot into safe mode, intelliscreen is disabled. end of story. and after you RE-ENABLE your mobile substrate, intelliscreen stays disabled for added protection so that you can re-enable it yourself when you feel comfortable…

and finally… intelliscreen has had mobile substrate hooking functionality WAY WAY WAY before mobile substrate even existed, as well as having a safe mode hook that disabled IS way way before safe mode existed… I think its great MS and safe mode finally do exist, but to bash a app because it already has the same functionality and doesn’t need extra dependencies is crazy… especially when puskeels updates IS every other day, is on top of the bug fixes, and makes every possible effort to make his apps compatible, as well as optimizes them even after they are compatible becaues of such tight RAM requierments.

What application was used to run “top” on the iPhone? There is a screenshot of it running on the iPhone in the post. I found the “how to” article to run it on a desktop over a wifi connection, but can’t figure out what app will allow me to run it on the iPhone. Thanks.

I just put up a thread at IPTF that made reference to some of the info here and expanded on it in areas. It also adds other useful info on apps for managing memory. The thread has been made a sticky so wanted to check you were ok with me using some of your ideas – I of course have made reference to this post. My thread is at http://www.ipodtouchfans.com/forums/showthread.php?t=142660&page=2 fyi

hi
I have a huge problem to discuss..
I accidentley deleted the memory of my iphone by selecting “delete unsafe remover” and now my iphone the apple signal turns on and stays on forever and does nothing else the main screen doesn’t show up where I would have to type my password for the security. Nothing happens so can u tell me what I can do? I am stressed I was trying to delete a couple games and two text apps. I installed and before it shut off I remember deleting “saruk’s the program”and then I thought it froze so I pressed the the square button and the same time when I was pressing the top right corner little button its black. On the 8g iphopne the 2G. Help Please.

Many people suggest to remove unnecessary daemons (in order to make the phone faster or getting more RAM) either manually or thru scripts. The suggested SAFE LIST to delete with no particular side effect to the iPhone is:

The advice above is excellent, but I had a problem even without heavy daemons or CPU-consuming Safari windows, etc.

Specifically:
I experienced significantly reduced battery life after jailbreaking my iphone 3g (OS version 3.1.3). I was not running anything special most of the time. I connected to the phone and watched “top” for hours to see what might be the culprit. In the end, what worked for me was disabling Activator completely. (Unfortunately this means no backgrounder, among other things.) Using top, I found that installing Activator makes Springboard a little bit fatter in memory size (this happens more after a bit of use) and possibly consumes more CPU (though I’m guessing not so much). I think that given the scarce memory of the 3g and the frequency at which Springboard is active, this made all the difference. After removing Activator, I’ve had my usual excellent battery life for the past couple of days, even though I made heavy use of the phone yesterday (e.g., more than 100mins of talk time).

Of course, your mileage may vary. Many will not even consider jailbreaking to be useful without Activator, but it’s fine for me. Also, it could be that I’m mistaken and I really was making much heavier use of the phone before. So, all I can say is … I’m fairly experienced with system-level computing (though not with the iphone memory subsystem), I tried to resolve the problem for a day or so, and my tentative conclusion (for 3g and 3.1.3) is that disabling Activator (if you can live with it) helps battery life. Try it at your own risk.

This information was very useful. My iphone was recently jailbroken and I have been facing problems with my phone constantly crashing. It ranged from once a day to three times a day. At first I read that it could possibly be the apps that I am downloading from installous were not yet compatible with the iso software on the iphone 4. But I deleted all of those apps, only retaining free apps from the apple store and the phone still crashes. After reading this I realized that the problem could be the “notifier” since my phone and several others phones have been crashing after the jailbreak with the notifier..and my girlfriends iphone has not yet crashed and she doesn’t have notifier installed. Thanks bigboss

I too have had problems with Activator on both a 3G and a 3GS on both iOS 3.1.3 and 4.1…. I have removed it and am annoyed at the number of Cydia apps that require installing it when they don’t *need* it.

Good article for beginners like myself. I am guessing this article was posted in 2008. How about posting a follow up or an update to this original article? New apps have come out and some old apps have been updated.

I would like to see more articles like this one where it is detailed and updated once every couple of years.