Smartphone Slow? It's Not the Network, it's NAND Flash
SAN JOSE -- NAND flash memory in smartphones can significantly blunt the performance of web browsing, email loading, games and even social network sites Facebook and Google+, researchers say.
While users and experts typically point to processor chips and wireless network connectivity as the culprit of poor smartphone performance, storage is more of an issue, according to researchers from Georgia Institute of Technology and NEC Corp.
The researchers tested top selling 16GB embedded flash memory cards in several Android smartphones and found performance over WiFi declined an average of 100 percent to 300 percent across mobile applications.
In one flash memory test, performance dropped more than 2000 percent.
"A good chunk of time for users is spent waiting for websites to load ... [and for] applications to load," said Hyojun Kim, a Ph.D. student in the College of Computing at Georgia Tech.
And, while waiting for apps to load is annoying, a more nefarious impact of poor flash performance is that it depletes a smartphone's battery.
Kim, lead author of the report, Revisiting Storage for Smartphones , discussed the research at the Usenix Conference on File and Storage Technologies here this week.
Kim said wireless network performance has kept pace with most of today's mobile applications, as have the single and dual core CPUs being used in today's sophisticated smartphones. What hasn't kept pace is the bandwidth of NAND flash, he said.
"Why would anyone want to see a 20-second wait time on their phone, particularly if the network is not the problem," he said.
The research identified the problem with poor flash device performance to be rooted in random I/O from application databases such as heavy random writes.
In flash memory, random write performance is orders of magnitude worse than sequential writes, Kim said.
The smartphone tests involved the use of applications such as WebBench Browser, Facebook, Android Email. Google Maps, App Install, Pulse News Reader, and RLBench SQLite. The flash cards came from Transcend, RiData, SanDisk, Kingston, Wintec, A-Data, Patriot Memory and PNY.
Benchmark testing of smartphone flash memory showed performance varied widely among vendor's products depending on whether I/O was random or sequential
"Apart from the benefits of selecting a good flash card, there are some fundamental ways we're using storage in a bad way," he said, referring to the way many applications are created to write data randomly, which causes flash performance to fall of a cliff.
The researcher's initial efforts focused on developing a set of pilot solutions that can improve the performance of a smartphone's storage subsystem and consequently mobile applications.
Kim and the others are looking at using a small amount of higher performance phase-change random access memory (PRAM) to store performance critical data, a RAID driver encompassing the internal flash and external SD card, using a log-structured file system for storing SQLite databases that are used on the web.
The PRAM buffer, Kim said, could be used to stage writes or be used as the final location for the SQLite databases.
The team also looked at making changes to the SQLite FSync code path, which commits the buffered data to the storage.
"We find that changes to the storage subsystem can significantly improve user experience; our pilot solutions demonstrate possible benefits and serve as references for deployable solutions in the future," Kim wrote in his research paper.
Lucas Mearian covers storage, disaster recovery and business continuity, financial services infrastructure and health care IT for Computerworld. Follow Lucas on Twitter at @lucasmearian , or subscribe to Lucas's RSS feed . His e-mail address is email@example.com.
Read more about storage in Computerworld's Storage Topic Center.
For comprehensive coverage of the Android ecosystem, visit Greenbot.com.