The concern is not really the speed of the flash (because it is the same
component in both cases), it is how to make the storage slow down the
least. Brought this up with a coworker (Allyn Malventano, storage
reviewer) and he had some interesting points.
1) Mobile flash controllers mostly cannot do concurrent I/O requests --
but that doesn't matter.
2) If you hit the file system more, you will be doing a bit more CPU
work fetching where the files are -- but obviously not a lot. It's not
like you're trying to make another network connection to a server.
3) Flash Memory pages are 2kb in size and random access by nature. If
your file gets close to 2kb (like, >1kb) you will be doing the same
number of requests regardless... except for file table look-up.
So if your system has a bunch of <<< 2kb files (like, 10's or low-100's
of bytes) then "they should be packaged together into some sort of
container format." He suggested some sort of prefetching done by B2G so
if you call a cached file it just points to its location in RAM which
could be freed if needed by something else... but that's not a topic for us.
------ TL;DR: ------
What is for us is that Base64 will basically just hurt you with
overhead, ballooned memory usage, and development time unless your files
are <<< 2kb. Theoretically sprites should help if the overwhelming
majority will always be loaded together such as a pack of really small
textures for a game or something -- but how much? Who knows.