Apple iPhone Performance Study

iPhone Performance Study

Jailbreaking the iPhone

 

To enable access to the phone’s OS, you need to “Jailbreak” it. The iPhone is essentially a mini-mac like OS so many things learned developing for the Mac apply.

 

This link takes you to the software used to “Jailbreak” an iPhone. Note that there can be risks to the phone which can cause it to need to be reset to an OOB “Out Of Box” state. The readme and troubleshooting.txt files in this folder explain more. This software can also unlock the phone allowing it to be used on any cell system. There are special commands to jailbreak the phone and leave it running on a licensed carrier (AT&T in the USA). Since my phone is a legally licensed one, that is what I have done.

http://theiphoneproject.org/

 

With a jailbreaked iPhone, you can SSH into the phone and run TOP to see which apps are using what system resources. I’ll give the steps below I used on a Windows Vista system to accomplish this.

 

I started with a relatively clean iPhone, no apps have been installed, though a few URL links have been added to the home page.

    1. Run iTunes to back up the phone
    2. Close iTunes
    3. Run a CMD box and move to the directory that contains the ZiPhone tools, run “ZiPhone –j” as shown below.

iphone+perf+1.jpg

    1. At this point the phone reboots and you’ll need to slide to unlock it.
    2. There are 2 added icons, 1 is Zibris’s Blog (the hackers self promotional blog site) and then the Installer. I moved these to the 2nd home page so they won’t annoy my wife when she uses the phone.
    3. Run the Installer.
    4. When it first comes up, it has to update its sources. This took a few minutes on my system.
    5. Once it was back, I could select “Uninstall” at the bottom to see what apps have been installed. On my system the only thing that showed up there was the Installer app.
    6. Click Install (down at the bottom), Scroll down to System then select BSD.
    7. Once that is installed, select System again, then OpenSSH. Now you have OpenSSH installed and can remotely access the iPhone.
    8. Now you’ll need a terminal program to connect to the iPhone. I downloaded Putty from here: /sites/default/files/m/e/0/1/putty.exe
    9. To access the iPhone you’ll need the IP address. You can get that by using the Home key, then Settings, then WiFi, then click on the little blue arrow for details on the connection you are using. For me it was 192.168.1.100
    10. Run Putty, and enter your IP address in the Host field
    11. Select Connect. This brings up a terminal window using the SSH server on the iPhone.
    12. It’s asking for a username, enter “root”
    13. Then it asks for password, enter “alpine”
    14. Now you have a # prompt and are into the OS. I typed “top” to see the running apps. An example of what I see is shown below.

SpringBoard is the name of the Home Screen launching app.

iphone+perf+home.jpg

Playing an MP3 song, this is what the load looks like.

iphone+perf+mp3.jpg

When making a phone call, this is the load:

iphone+perf+call.jpg

When browsing and loading a page this is the load:

iphone+perf+browse.jpg

This is the load when playing a YouTube video.

iphone+perf+utube.jpg

This initial review shows that the browser uses more CPU load than nearly any other application at times up to 100%. The YouTube application is optimized and uses much less around 30% once the video is streaming, though it does briefly hit 100% as things initially load. The phone and music player were VERY impressive in the light loads they caused for the system.

 

iPhone performance numbers

iPhone App

Avg CPU % Used

# Processes

# Threads

Idle w/Top

7.30%

20

93 (as low as 90)

Phone Call

10.00%

20

93

Playing Mp3

20.00%

20

93

YouTube

30.00%

22

119

Safari Browser

100.00%

21

100

 

The safari load was a flickr.com page that included many small graphics, as nearly every flickr page does. It was at 100% for several seconds and then once loaded went back to the idle screen

 

Pour de plus amples informations sur les optimisations de compilation, consultez notre Avertissement concernant les optimisations.