Comparative Speed of WURFL and Device Atlas
This has probably been done to death elsewhere, but since I’ve been playing around with WURFL and Device Atlas for mobile device detection, I thought I’d publish some comparative performance numbers.
As part of our mobile browser concurrency test we needed to identify test results for mobile vs. non-mobile devices (we get a lot of traditional browsers using our “mobile” concurrency test!). Because we did this as a post-processing step, we had a fair number of unique user agents – 1,572 – to classify. We decided to use WURFL to identify mobile devices, but then also decided to perform that same classification via Device Atlas to see if we got similar results (more on that in a later post). Not content to stop there, we decided to try both the old and new versions of WURFL, Device Atlas, plus a handy PHP mobile detection script.
Here are the results for processing 1,572 unique user agents:
Method | Time (seconds) | Mobile Found | Non-Mobile Found |
---|---|---|---|
WURFL Old API | 1082 | 711 | 861 |
WURFL New API | 20.8 | 1090 | 482 |
Device Atlas | 1.2 | 527 | 1045 |
Mobile Device Detect | 1.3 | 684 | 888 |
As you can see, performance and result quality vary significantly between the different methods. Well, it’s tough to see the result quality here, but the difference between various results says that correctness is an issue. The speed differences are tremendous though. 1,080 seconds is a long time to wait for results; 1.2 seconds on the other hand is quite pleasurable. Now in all fairness, we didn’t do much to optimize the server performance, so it’s possible that WURFL will benefit from an in-memory caching strategy. Perhaps we’ll see.
In my next post I’ll talk about how the results differ and the implications for relying on mobile device detection in your server code.