Monday, October 12, 2009
iPhone Voice Memo App Broken
Well, it was a woohoo for only a bit, as I discovered this weekend that the Voice Memo app seems to stop recording around 25-30 minutes now. A bit annoying as this caused me to miss about 10 minutes of what I was recording as I didn't notice it right away.
"Why might this be the case?" I asked. A bit of Googling revealed this thread on Apple's discussion forum where the consensus is that OS 3.1 broke this and introduced somewhere around a 74.3 MB file size limit. Depending on what you are recording this causes it to stop somewhere between 25 and 35 minutes it would appear. Worse, reports are that when it stops you can't start recording again for a minute or so.
So, what was a cool app that solved a real use case is now useless for anything that might go over 20 minutes. Back to using 3rd party apps as it doesn't appear Apple has even acknowledged this issue let alone said when it might be fixed. Has anyone else ran into the problem or found a solution other than a 3rd party app?
Thursday, October 1, 2009
Amazon Public Data Sets
Public Data Sets on AWS provides a centralized repository of public data sets that can be seamlessly integrated into AWS cloud-based applications. AWS is hosting the public data sets at no charge for the community, and like all AWS services, users pay only for the compute and storage they use for their own applications.
What is cool about this is that it greatly simplifies getting access to large sets of data that while public in the past, were difficult to work with as you had to download, install, load, and otherwise provide the infrastructure for and manage all the data yourself.
The one that caught my eye was the Daily Global Weather data set. Now, I haven't used this yet and there are other great resources for local weather station data like the Weather Underground (where I upload my station data by the way), but this is a great way to gain access to a bunch of historical weather data. Other data sets include census data, Wikipedia data, geographic data, and more.
One drawback for data sets that are continuing to be updated each day, like historical weather data, is that you aren't accessing a continually updated data store, rather you are creating your own EBS volume from a snapshot. This means (if I understand all this correctly) that if you need the most recent data, the snapshot must be updated regularly and you would have to update your EBS volume from it manually. Or perhaps there are tools to assist with that.
All in all, a useful service, and a great move by Amazon to drive more users to EC2.
Friday, September 25, 2009
iPhone MMS is here ... I think
Getting MMS enabled involved checking for updates in iTunes and then syncing my phone. Once done, you have to reboot. Upon rebooting running the MMS app provides for attaching a picture or when using the Photo app you can now compose an MMS from there. Great! So how well does it work?
Alas, I tried sending an MMS to my boss and he received nothing. I sent again, and still nothing. So I sent an SMS and that got through fine. So something isn't working with MMS. Now, he has not applied the update on his iPhone yet so perhaps that is the issue. But in the past when an iPhone was sent an MMS at least an SMS was delivered with a convoluted link to a web-site where you could enter a password and view the media, so I'd think it would have still done that, but no.
What are others experiencing?
I'll be able to update another iPhone and try between updated phones shortly and will report back then.
Update: Original try was to a 3G running 3.0.1. Subsequently tried to one running 3.1 but without the carrier settings and it too failed. Updated that one with the carrier settings and now it works. So it appears the MMS hack of the past does not work now if the MMS is sent from another iPhone.
Tuesday, September 22, 2009
Google Sync now supports Mail on the iPhone
I was interested then when Google announced today that Google Sync was adding mail support, and especially push mail support for Gmail. Now, I have to be honest that I'm perfectly happy with my current setup and in fact am leery of adding anything with push as it is likely to impact battery life and we all know that under heavy use the battery on an iPhone is not its strongest point. And I'm not really losing anything without push as I get enough e-mail that my phone would be going "ding" all the time and because I get enough mail, I don't really need a notification to know I have new messages so I just go run the app and let it download the messages then and I'm set. The few seconds spent downloading is well worth not taxing the battery. But I decided to give it a shot anyway as I can always turn push off and have the optimization of a single account to configure and manage.
So I followed the instructions, deleting my existing Gmail account then going to the settings for the Google Sync account and turning on mail syncing. Worked great, that is until I went to try to look at my mail. I immediately get a message saying unable to connect to the server and no messages are listed. I try again a few times and same result. After waiting a bit and trying again, it finally works and I can see the messages just like I could previously. So what, I had that before and while I now have a single account to manage, lets see if push really works as that would be the perk of having this.
I make sure push is turned on, get back to the iPhone's Home screen and send myself an e-mail from another account. I stare closely at the Mail app to see the unread message count go up and listen for the ding, but nothing. I wait 30 seconds and nothing. A minute and nothing. In the meantime in the web interface on my laptop I saw the message arrive about 5 seconds after sending. "What's up?" I ask. I again run the Mail app and get the connection error again. So I give up for the time being.
An hour or two later I gave it another shot and this time there is a friendly "ding" and the message count jumps up, ... but by 3? I look at the web interface and only my test message arrived so that doesn't make sense. So I run the Mail app to see what the three messages are. To my surprise when I go to my Inbox the Mail app doesn't show me any new messages and proceeds to try to connect to download them. Huh? I thought I had push?
I suspect that the failure to connects and perhaps other issues are caused by Google's servers being overloaded, so I may try again later. But to test the theory out I turn mail off on the Google Sync account and recreate my old Gmail account. When I use it, the Mail app connects quickly and downloads 200 messages in seconds. Hmmm, so either it isn't the servers, or the more likely explanation is that the "Exchange" servers supporting the push and syncing are overloaded but the standard servers for serving up POP and IMAP are working just fine.
For me, I'll just stick with my 2 accounts and no push for now. I may try the push again later when Google figures things out.
But what is your experience? Have you successfully gotten push working from Gmail on the iPhone? Post your comments!
Monday, September 21, 2009
AT&T asks consumers to pay more for better cell coverage
For those that do perhaps have poor coverage near their homes, AT&T is now offering a "personal cell" you can install at home. Called the MicroCell, it is a femtocell device that is supposed to boost 3G signals indoors, and a phone is supposed to be able to switch to/from it and the regular 3G network. It is nice that AT&T is doing something to help customers in poor reception areas, but that is where the kudos stop.
First, the way it works is that the femtocell ties into your home internet connection to get to AT&T's network, effectively routing your cell phone connection over your cable/DSL/FiOS connection. Sounds nice, but if you were going to make calls over your internet connection why not just use Skype or some VoIP provider like Vonage and avoid the hassle of another device? You say you want to receive incoming calls? Fine, get a Google Voice number and give that out instead of your mobile number and use it to route incoming calls wherever you want!
Second, while the femtocell (it is a fun word to say so I'm writing it a lot, go ahead, say it out loud 5 times in a row) will give you a stronger signal at home, if you are indeed in a poor reception area, once on a call, you are stranded at home as the call will drop if you leave the range of your femtocell. So it is really no better than a cordless phone at home and see the Google Voice suggestion above to handle the incoming calls.
Third, they are charging $150 for the device. Ok, they say there is a $100 rebate, ... IF you sign up for a $20 monthly plan! So let me get this straight. I'm already paying nearly $100 a month or more for my voice and data plan, another $50 plus a month for high-speed internet, and because the former doesn't work well you want to use the service from the latter to "fix" it but want to charge me for equipment and another $20 a month on top of that?!
Before piling on too much, it is just a trial right now and pricing when they roll it out could change. And AT&T shouldn't be singled out as both Sprint and Verizon are reportedly doing the same thing (not but with 3G speeds, so give AT&T credit there!) and are probably subject to the same criticisms above.
So give them credit for identifying a solution for a common problem, just as a consumer don't give in to paying more money on top of what you are already paying. There is other technology that can leverage what you are already paying for to help solve the problem.
Thoughts? Agree or disagree?
Sunday, August 30, 2009
It's Football Season! Schmidt Computer Rankings Have a New Home
This year, rather than muddling up this blog with the occasional entry on my computer's ratings, I've created a computer ratings blog that I'll do my best to diligently keep updated each week. I've already posted last years season ending college ratings and the NFL will be there soon.
Go take a look and let me know what you think!
Saturday, August 29, 2009
Snow Leopard is here! My initial review.
I actually did an upgrade, upgrading a MacBook Pro from 10.5, and the upgrade itself took about 45 minutes. One strange thing was during the middle of the upgrade the screen went 90% dim and I could hardly read how much longer it would take. But alas everything completed without a hitch and the machine rebooted.
Since one of the perks of the new OS is improved performance, I had done a few very unscientific tests on the machine prior to upgrading and then did the same tests post upgrade. The tests I performed and timed were:
- Boot and login.
- Start NeoOffice.
- Open a simple .ods file from a fully closed NeoOffice.
- Start Safari pointed to the default apple.com page.
- Start Firefox pointed to google.com.
- Open Eclipse.
- Re-open Eclipse from fully closed.
- Transcode a .wmv video to .ogv format.
After these tests I also looked at memory usage to see where things stood.
I did perform the tests on Snow Leopard twice since I was a bit surprised by a few the first time. Note that in each case the tests were performed in order so everything started from a fresh reboot.
Action | Leopard | Snow Leopard (1) | Snow Leopard (2) |
Boot to login screen | 40 | 33 | 35 |
Start NeoOffice | 23 | 17 | 20 |
Open .ods in NeoOffice | 10 | 12 | 9 |
Start Safari (apple.com) | 8 | 5 | 4 |
Start Firefox (google.com) | 8 | 8 | 6 |
Open Eclipse | 17 | 36 | 19 |
Re-open Eclipse | 7 | 7 | 7 |
Transcode WMV to OGV (wall clock) | 4:52 | 5:14 | 4:51 |
Transcode (user time) | 4:48 | 4:55 | 4:46 |
Free (GB) | 2.43 | 2.03 | 2.14 |
Wired (MB) | 153.5 | 304.4 | 162.8 |
Active (MB) | 376.68 | 524.7 | 403.3 |
Inactive (MB) | 45.21 | 157.3 | 310.7 |
Used (MB) | 575.39 | 986.4 | 876.8 |
VM size (GB) | 30.2 | 104.04 | 107.73 |
Page ins (MB) | 243.07 | 916 | 224.6 |
- So Snow Leopard boots a little faster, but not dramatically so. Further, on the first reboot, completing the login took about 5 seconds whereas with Leopard it was just a second or so. The second test on Snow Leopard was in the 1-2 second range so perhaps it was just something with the very first login.
- It would appear NeoOffice itself starts a bit quicker under Snow Leopard, but opening a spreadsheet is roughly the same. I'm not sure if anything can really be concluded here.
- Safari certainly starts quicker, I'm not sure if there is a new version that is faster or if they sneakily have it partly loaded/started behind the scenes. Firefox took basically the same time to start but was perhaps slightly faster under Snow Leopard.
- Oddly, the first time under Snow Leopard, Eclipse took much longer to open than with Leopard. This was the big reason I did a second test and in that one it was closer to the same time. I'm not sure if there was something about running Java the first time or what. In both cases re-opening Eclipse after a full close was the same time.
- Surprisingly the transcoding of the video was slower under Snow Leopard the first time. The second time it was just about the same.
- The memory management with Snow Leopard seems to be quite a bit different as performing the exact same steps resulted in over 50% memory being used, although in the second test the bulk of this increase was inactive. But the VM size was over 3 times greater in each case.
Wednesday, August 26, 2009
HTML5 in Action; Plugin-free video and browser geolocation
The first is the ability to have video in web-pages without requiring any plug-ins. This is done with the new <video> element, an example of which can be viewed below or here which happens to show Galen Rupp going sub-4:00 earlier this year. But take a look at the source of that page and see how simple it is:
<video src="RuppMile.ogv" controls/>
Isn't that easier than relying on plugins and or much more complicated HTML that has to download and use Flash?
Now, a few caveats are that (to my knowledge) this only works in Firefox 3.5 and Safari 4 and the video has to be in Ogg Theora, Ogg Vorbis, or WAV format. The Ogg media formats are not patent encumbered like other formats are so look for their growth and adoption to increase. Learn more about it here.
The second is the use of some geolocation APIs that are not part of HTML5. This can open a whole host of possibilities for applications to take advantage of location and deliver innovative applications for consumers. I've created a simple example that uses the information provided to create a Google map centered on your location. Try it here.
The source for this is a little more complicated due to the Javascript and use of Google's APIs but it boils down to the following:
navigator.geolocation.getCurrentPosition(showPosition);
function showPosition(position) { var latLong = position.coords.latitude + ',' + position.coords.longitude; document.getElementById('latLong').value = latLong; loadPage(); }
The first line of code registers a method to be called when the location is known and when that method is called it can retrieve the coordinates and do with it what it wants. In my case I load the map.
Again, this requires Firefox 3.5 where it uses a service to get your location from your IP address which is somewhat accurate, or you can use Safari on your iPhone which tends to be much more accurate with its cell tower triangulation and GPS capabilities.
Grab Firefox 3.5 and start giving HTML5 a try!
Galen Rupp video requiring no Flash, Silverlight, or other plugin!
Tuesday, July 28, 2009
Apple Stifling Innovation
Then I come across a story on Apple blocking Google Voice from the App Store that reinforces the notion that they are stifling innovation. Now, in this case it is likely due in part to pressure from AT&T, but there are official Google Voice apps for other mobile devices so it is still Apple that is caving in this case. And if true that Phil Schiller had personally approved it and had to call to apologize, it is more embarrassing but also probably proof that it came from AT&T or (gasp) Steve.
I can understand, but don't agree with, why Apple would restrict apps may adversely affect battery life or confuse the average user, but outright not allowing interesting and creative apps that are ground breaking and available on other mobile devices is just wrong. I love my iPhone and am happy I made the purchase as Android wasn't mature enough yet and I can jailbreak to get around some of Apple's restrictions, but I'm growing increasingly open to my next phone being something else as the other platforms mature and don't impose the restrictions Apple does.
Sunday, July 26, 2009
Additional Thoughts on Google Latitude for iPhone and Apple vs Google, Apple vs Palm?
That said, Apple does control the device and Latitude not being available for the iPhone was a glaring gap so Google no doubt had to accept the limitations. And clearly Apple is being successful with the iPhone, but at what point will Apple have to relinquish some control or risk losing market share to other devices running Android? The iPhone has a head start but you can be sure that Android will improve and the openness of the platform will be an advantage that will benefit it.
And related, but in the Apple vs Palm front, as you are probably aware, one of the Palm Pre's touted features was being able to sync with iTunes. Apple used their control of the platform to break that sync'ing with an iTunes update, but Palm has countered with an OS update that makes the sync'ing work again. When will this cycle end? Probably not any time soon.
Thursday, July 23, 2009
Initial thoughts on Google Latitude for iPhone
As they highlight in the blog, this is not an app but rather a web-app you access in Safari. Apparently Apple didn't want to confuse users with a new Google Maps type of app when there is already the native Maps app. Since keeps things simple, but the downside is it apparently only can update your location when you are actually running Safari on the google.com/latitude site as it can't run in the background. That is awfully limiting and I'd think its fatal flaw, but we'll see.
When I first pointed Safari at the app, it came up with a login form to log in to my Google account and, whoa, what just happened? Suddenly Safari disappears and I'm back at the iPhone home screen. This is the first outright crash of Safari on the iPhone I recall.
So, I try it again and this time there is no crash and I'm able to login. Along the way though I'm asked to allow using my location no fewer than three times which seems a little much. Oddly, getting all the way out of Safari, and running it again it only asked me once.
In any case, it tells me I have a friend request (I'd gotten that far when I tried to look at it awhile back) so I accept it and then go to try to add more friends myself. It lets me scroll through my address book, but oddly the app has a floating menu bar at the bottom that it has to try to reposition while scrolling and the scrolling is much jumpier and frankly annoying than the scrolling in any other app I've seen on the iPhone.
Another first, and potential flaw, is that while I am inside and thus GPS assist isn't working, the location it has for me using its triangulation method isn't accurate, and in fact my actual location is about 400 meters outside the displayed accuracy circle. I'm sure it probably has something to do with my specific location and isn't a widespread problem, but I swear before the OS 3.0 upgrade in the same situation Maps was more accurate. And Maps is consistent so it isn't unique to Latitude.
In summary, great idea, but a few rough edges, particularly having to have Safari on the app in the foreground for it to work, probably make it more toy than genuinely useful app. Have you tried it? What do you think? Your comments are welcome.
Monday, July 20, 2009
Mid-July Track Update, Paris Golden League, Heusden, and more
The big meet of the weekend was the Paris Golden League event Friday night. The highlight of the night was Usain Bolt running 9.79 in the 100m for a meet record, made all the more impressive by the conditions he had to run it in (cooling and heavy rain). It's unfortunate that Bolt and Gay (world leading 9.77 this year) won't meet before the World Championships in Berlin. The mens 3000m also had an outstanding showing by Bekele running 7:28.64 by taking it out strong behind the pacemaker and slowly building a gap over Lagat. Lagat still finished well in a PB of 7:33.15 for second and Chris Solinsky ran a solid 7:37.72 for fourth.
In the 400m, Jeremy Wariner won the mens in an ok 45.28 due in part to the wind and rain, but Sanya Richards threw down an impressive 49.34 so the weather cannot have been that bad. In other women's action standard chasing Maggie Vessey was a DNS in the 800m (tightness in leg during warmup or something, perhaps another shot Tuesday in Gent) but Anna Willard made the USA proud winning and setting a PB in 1:58.80 and this isn't even her event for Berlin! And in the women's 100m Kerron Stewart continued her impressive year winning handily in 10.99.
The standard chasing continued he Heusden in Belgium on Saturday with a number of good showings. These were headlined by Matt Tegenkamp running 13:07.97 to get second in the 5000m to meet the A standard making it so his teammate Evan Jager can make the team (has the B standard) joining their other teammate Chris Solinsky and defending champ Bernard Lagat in Berlin. Jager, dropping down for a little speedwork also set a PB in the 1500 B heat in 3:38.33 so he is running well. Nate Brannen won the 1500 A heat in 3:36.53 which did not quite meet the A standard.
Heusden was also the site of Pamela Jelimo trying to come back to form after a couple very disappointing times well over 2 minutes, and succeeded winning in 1:59.59. Leonel Manzano also dropped down in distance to run the 800m and did so successfully finishing in 1:46.20 which I believe is a PB.
Today in Rethymyno Greece there was some good sprint action including LoLo Jones running a world leading 12.47 100m hurdles and Debbie Ferguson-McKenzie running a 22.32 world leader.
This weekend's big meet is the London Super GP where Bolt and Powell will run the 100m, Gay the 200m, and a host of others in other events at the 2 day event, but during this week Gent on Tuesday should see a number of Americans looking to run fast times including Maggie Vessey trying to get sub-2:00 in the 800m.
Thursday, July 9, 2009
Browser Market Share; Who is Really #1?
Why do I ask this question? I've been a long time user of StatCounter.com on my blog to track some statistics and focused primarily on page views, but I recently also set up Google Analytics to see what data it provides. In light of the recent announcement about Chrome OS, I was also curious how the Chrome Browser was being adopted.
In browsing through what it has to offer I came across its browser report where not only was IE not #1, it wasn't even #2 with Safari beating it out. I also found it interesting that Chrome is at nearly 4%.
But clearly, a handful of hits on my blog is likely not representative of the broader market. Additionally, I likely have a significant audience from Sun which may help skew the results towards Firefox and Safari. And the general audience that reads my blog is probably more technical and likely to be using alternative browsers. So what else can we look at?
The May report from Market Share By Net Applications shows what one might expect with IE at 65.5% followed by Firefox at 22.5%, Safari at 8.4%, and Chrome at only 1.8%.
For another perspective, w3schools.com lists their stats and for the month of June, Firefox is at 47.3%, the sum for IE 40.7%, and Chrome beating out Safari 6.0% to 3.1%. Again, a more technical audience leads to greater use of Firefox and Chrome.
Last, going back to where I started with my stat gathering, StatCounter.com has global stats for the past year and while the data shows similar results to Market Share above, approximately 60% IE, 30% Firefox, and everything else in the weeds, since it looks at the past year you can see a trend of IE losing about 10% points.
Will this gradual decline continue? It's hard to say, but I can say that competition and choice is good and in the end the consumer wins.
It is also very interesting to see the platforms StatCounter.com reports. This shows that 95+% of their traffic is coming from Windows meaning that even where the provided default is IE, approximately a third of those folks make the choice and effort to switch.
So what does all this data show us? Clearly, IE is still #1 amongst the general population. But technical audiences, those that both have the knowledge to make a choice and the aptitude and interest to execute on that and install something other than the default, are seemingly beginning to abandon IE in favor of the competition.
I'll continue to look at this in the future and report back!
Wednesday, July 8, 2009
Thoughts on Google Chrome OS - Not a Microsoft Killer ... Yet
But the more interesting and groundbreaking news was the announcement of the forthcoming Chrome OS. There are some that see this as an all out assault on Microsoft. When you combine their Google Apps with the Chrome Browser and now Chrome OS, you have a full stack for the end user. But given that in their announcement they are clearly focused on the netbook market, I would stop well short of calling this an all out assault. That's not to say that this isn't just the next logical step in a strategy that started with mobile and embedded devices with Android, moves to netbooks with Chrome OS, and someday could target the broader desktop and ultimately enterprise market with another offering.
There are also those that take a more pessimistic view of this complete stack and chances that it will be successful, both because the netbook market isn't that large and enterprises are not going to embrace it any time soon. All valid points, but one doesn't go from having no OS to competing with everything Microsoft has in the OS arena overnight. There are also other flaws in Dennis' pessimistic view. He seems to think that because Google will open-source what they are doing they are washing their hands of maintaining it. He clearly doesn't understand open-source as code being open-source certainly doesn't stop a vendor from providing full support to customers or OEMs and I'm sure Google would love to generate revenue from doing so.
So is just another variant of Linux on the desktop and should Google should have just joined or put their weight behind an existing Linux distro or just brought their version of Linux used in their infrastructure to the consumer? The latter is just silly as the Linux they use in their data centers is clearly tuned and equipped for high performance search and serving up web applications, not a consumer's desktop or netbook form factors. The former is a valid point as there are distros like gOS that have integrated Google gadgets and Google Apps into the desktop and users experience or Damn Small Linux that would serve as a good starting point for Google, but if Google is serious about this they aren't going to take a join an existing small community approach but need to own it and drive the direction themselves.
If one reads between the lines though, I think it is clear that this isn't going to just be another Linux distro and will be much more, and perhaps that systematic next step in the all out assault on Microsoft. The key quote to me is:
"Later this year we will open-source its code, and netbooks running
Google Chrome OS will be available for consumers in the second half of
2010."
If this were to be just Google's variant of a Linux distro running on netbooks, they should be able to do that in a few months. If we aren't going to see netbooks until the second half of 2010 (a full year-plus!), Google has designs on doing much more with the OS to make it truly focused on an easier to use, web-oriented, and faster experience to differentiate it from other Linux distros, Windows XP/Vista/7, and Mac OS X. This is apparent in another quote (emphasis mine):
"The software architecture is simple — Google Chrome running within a new windowing system on top of a Linux kernel."
Clearly Google does not see Gnome or KDE as options (bloated) or other lighter weight alternatives like XFCE as sufficient so will be creating their own windowing system. Look for this, and trimming the OS to just what is needed and perhaps some innovation around quicker startup, to be where the investment is made.
In the end, competition and choice is good. I'll certainly be interested to see what Google does with Chrome OS and and how the competition reacts.
Monday, July 6, 2009
Update: Benchmarking the iPhone, and lots of other devices
First, thanks for the comments and keep them coming. I had one comment that the Java ME version didn't work on Sony K850i. I created a new version created with the latest NetBeans 6.7 for the latest CLDC/MIDP versions but it too didn't work simply saying "Invalid application". I know it worked on several BlackBerry's and a Motorola L6 so suggestions are welcome.
Another comment provided some numbers for an IBM T43 which I've added to the spreadsheet.
As promised, I started fiddling with creating a proper iPhone app using Xcode and have gotten an ugly but functional version of the app working and initial indications are that it scores better than the one compiled with gcc on the iPhone. Where the gcc version had a score of 27.9 the Xcode version scores double that at 65.7. This is running on the same phone/hardware so the difference has to be the compiler and Xcode must generate a lot better code. I'm still researching to see what I can find out.
Last, as promised, I've made some source code available. Take a look at the C version and I'll work on getting the others up as soon as I know they are stable.
I welcome more feedback and results from running the benchmark.
Monday, June 29, 2009
Benchmarking the iPhone, and lots of other devices too
Benchmarking has been around for years, and I started playing around with writing them back in college. I recall an assembly language class were the assignment was to implement the Sieve of Eratosthenes in as few bytes as possible. I "won" the assignment by doing it in 24 (or was it 25, too many years ago!) bytes, but that got me started on benchmarking as I instrumented the code to time how long it took and then proceeded to run it on all the different machines I could to see which one was the fastest.
Clearly though, having a benchmark written in 8086 assembly language had limited usefulness, so in later years I rewrote it in C and added several other standard algorithms to the stable that were executed including calculating PI, a selection sort, and computing Ackermann's function to test recursive performance. I proceeded to run it on every machine I could from PCs running MS-DOS to workstations running Solaris to PPC machines running LynxOS and AIX. In later years, I ran the same benchmark on UltraSPARC, SGI MIPS, and DEC Alpha machines as well as today's dual-core Intel chips. Somewhere along the line I starting writing more in Java than C and I ported the benchmark to Java to see how it compared, and several years ago I began using BlackBerry's and wrote a Java ME version.
As you can imagine given the wide range of machines I've run it on in the past, having an iPhone was just begging to run it there too. While I have creating a proper iPhone app version on my list of things to do, thankfully a jailbroken iPhone makes it pretty easy to run the C and Java versions I already had. A sampling of results appears below, but the summary for the iPhone is that the native version is about 5 times faster than the Java one and ever so slightly faster than a 75 MHz Pentium 5 of yesteryear.
Machine | Language | Math | Array | Sort | Sieve | Ackermann | Total |
---|---|---|---|---|---|---|---|
Motorola L6 | Java ME | 0.11 | 0.19 | 0.23 | 0.13 | 0.19 | 0.17 |
BlackBerry Curve (OS 4.5) | Java ME | 0.95 | 2.21 | 2.96 | 1.72 | 2.96 | 1.81 |
iPhone 3G | Java SE | 12.4 | 4.79 | 4.64 | 3.28 | 5.01 | 4.95 |
Intel 486DX2-66 (Linux) | C | 10 | 10 | 10 | 10 | 10 | 10 |
SPARC-20 (Solaris) | C | 66.4 | 20.3 | 17.6 | 20.1 | 4.1 | 12.1 |
Pentium 5 75 MHz (Linux) | C | 21.3 | 19.6 | 28.6 | 23.2 | 33.4 | 24.2 |
iPhone 3G | C | 65.9 | 21 | 23.4 | 19.2 | 46.7 | 27.9 |
DEC Alpha 275 MHz (OSF/1) | C | 111.4 | 93.6 | 63.1 | 41.2 | 76.1 | 68.6 |
Pentium 600 MHz (Linux) | Java SE | 191.9 | 106.1 | 99.1 | 68.9 | 78.2 | 96.1 |
Pentium 600 MHz (Linux) | C | 216.4 | 319.3 | 219.8 | 171.5 | 131.2 | 194.1 |
MacBook Pro 2.33 GHz | Java SE | 655 | 1096 | 794 | 549 | 334 | 587 |
MacBook Pro 2.33 GHz | C | 1089 | 2413 | 664 | 800 | 1356 | 1037 |
You may also view the full list that I have maintained over the years. You'll notice that I did my initial calibration on a 66 MHz 486 DX-2 so that it scores 10 in each of the tests.
Now, I'll be the first to admit that my benchmark is pretty simplistic and thus shouldn't be be the end all be all testing to compare machines or platforms. The results can also be significantly affected by the quality of the C compiler or JVM being used. However, the results can provide a rough comparison and are at least fun to look at.
For example a SPARC-20 has terrible performance with deep recursion. And as noted above the JVM on the iPhone is about 5 times slower than a native app whereas on an x86 box the JVM is about half as fast as native.
While I've run the benchmark on quite a few machines, I'd love to add more to the list. If you'd like to run it, here is the binaries in a variety of formats:
- Linux on x86 - Download the binary, set the executable flag, and execute with "./sci <iterations>". On most of today's faster machines iterations should be 10,000 to have reasonable results.
- OS X on x86 - Download the binary, set the executable flag, and execute with "./sci <iterations>". On most of today's faster machines iterations should be 10,000 to have reasonable results.
- OS X on ARM/iPhone - Download the binary, use ssh/scp to get it on your jailbroken iPhone, and execute with "./sci <iterations>". The default iterations should be fine.
- Solaris on x86 - Download the binary, set the executable flag, and execute with "./sci <iterations>". On most of today's faster machines iterations should be 10,000 to have reasonable results.
- Solaris on SPARC - Download the binary, set the executable flag, and execute with "./sci <iterations>". On most of today's faster machines iterations should be 10,000 to have reasonable results.
- AIX on RS/6000 - Download the binary, set the executable flag, and execute with "./sci <iterations>". On most of today's faster machines iterations should be 10,000 to have reasonable results.
- Java SE - Download the jar and execute it on any machine you have a JVM with "java -jar SCIJ.jar <iterations>". On most of today's faster machines iterations should be at least 5,000.
- Java ME devices - Point your phone/device browser at the link and it should prompt to install the application. Run the app and if it executes in less than a few seconds change the iterations to a larger number to make it more accurate in calculating the benchmark.
If you do run the benchmark, please post a comment on this blog entry with the chipset, clock-speed, operating system, and results from each of the tests that the program displays. As soon as someone jailbreaks an iPhone 3G S, it would be great to add that result to the list.
Enjoy!