Why Not Have ReadyBoost for Windows Phone?

WhiteNiteLite

New member
Dec 5, 2011
144
0
0
Visit site
I recently thought about something that I makes a lot of sense to me, but I'm not sure if I'm overlooking something. Remember back during the netbook days, the OEMs would often ship them with the bare minimum amount of RAM. This meant that the performance often wasn't too good. Microsoft started pushing their ReadyBoost feature at that time. Introduced with Vista, it allowed a person to pop in an SD card or flash drive and have the OS use that as "external RAM." In reality it wasn't as good as truly having additional real RAM, but it was still faster than paging to the hard disk, since flash memory is pretty fast.

I'm wondering why Microsoft doesn't do something similar for Windows Phone. Devices with 512MB RAM feel the crunch pretty quickly when they try to multitask. Right now WP tombstones its background apps when it needs more RAM, but this leads to those dreaded Resuming screens as the OS rehydrates the app when a user switches back to it. Not to mention that it's incredibly annoying when a GPS type app gets tombstoned since it loses its place. Why not keep the app "alive" but on a page file stored on the internal storage or SD card. Sure, it would slow things down a bit, but if the app is in the background it wouldn't be too big of an issue. It's better than bringing the app to a halt completely.

Any thoughts on this? Or is there some fundamental flaw that I'm overlooking here?
 

James8561

New member
Dec 3, 2012
1,282
0
0
Visit site
Readyboost worked because the crappy netbooks had extremely slow HDD as their storage devices. These HDD have access latency around 12-18 ms while NAND flash memory (the ones in flash drives and SSD) have access latency around <0.1-0.5 ms so by putting frequently accessed data (that would otherwise reside on the HDD) on the flash memory, responsiveness is increased.
However, RAM access latency is significantly lower at around 9-12 ns as such there's no replacement for having more memory. Without sufficient memory, your apps will still crash. Readyboost only serve to quicken up load times of frequently accessed data (that isn't in RAM)
In mobile devices, no HDD is used, only NAND flash so there is no point in readyboost since everything technically is already "readyboosted"

Glossary:
ms: millisecond (1/1,000 of a second)
ns: nanosecond (1/1,000,000,000 of a second)
 

Zulfigar

New member
Jun 27, 2012
1,676
0
0
Visit site
Readyboost worked because the crappy netbooks had extremely slow HDD as their storage devices. These HDD have access latency around 12-18 ms while NAND flash memory (the ones in flash drives and SSD) have access latency around <0.1-0.5 ms so by putting frequently accessed data (that would otherwise reside on the HDD) on the flash memory, responsiveness is increased.
However, RAM access latency is significantly lower at around 9-12 ns as such there's no replacement for having more memory. Without sufficient memory, your apps will still crash. Readyboost only serve to quicken up load times of frequently accessed data (that isn't in RAM)
In mobile devices, no HDD is used, only NAND flash so there is no point in readyboost since everything technically is already "readyboosted"

True, but doing his idea might make phones like the 5xx and 6xx phones play some of the more ram-intensive games, or even help with Live Lock Screen Beta. Sometimes, 512mb isn't enough, and using a class 10+ microsd card is.
 

David P2

New member
Mar 10, 2014
1,600
0
0
Visit site
I recently thought about something that I makes a lot of sense to me, but I'm not sure if I'm overlooking something. Remember back during the netbook days, the OEMs would often ship them with the bare minimum amount of RAM. This meant that the performance often wasn't too good. Microsoft started pushing their ReadyBoost feature at that time. Introduced with Vista, it allowed a person to pop in an SD card or flash drive and have the OS use that as "external RAM." In reality it wasn't as good as truly having additional real RAM, but it was still faster than paging to the hard disk, since flash memory is pretty fast.

I'm wondering why Microsoft doesn't do something similar for Windows Phone. Devices with 512MB RAM feel the crunch pretty quickly when they try to multitask. Right now WP tombstones its background apps when it needs more RAM, but this leads to those dreaded Resuming screens as the OS rehydrates the app when a user switches back to it. Not to mention that it's incredibly annoying when a GPS type app gets tombstoned since it loses its place. Why not keep the app "alive" but on a page file stored on the internal storage or SD card. Sure, it would slow things down a bit, but if the app is in the background it wouldn't be too big of an issue. It's better than bringing the app to a halt completely.

Any thoughts on this? Or is there some fundamental flaw that I'm overlooking here?

It's just an extension of the Windows swapfile. It puts more commonly accessed data from the swapfile into the ReadyBoost cache so it can be accessed quicker by the OS. It doesn't really give you extra usable memory - that's what the swapfile does.

Which is a bit bad for flash based memory as they can only do a finite number of writes before data corruption starts to occur. When used as swap space, this limit is reached much quicker than in everyday normal usage. Plus people would moan it's eating away at the storage for their apps/games/photos/videos.

I do a multitask a fair bit on my lowly 620 and I've never come across major RAM issues.
 

anony_mouse

Banned
Aug 10, 2013
1,042
0
0
Visit site
It's an interesting idea. I can think of a few possible issues that *might* apply - maybe someone more knowledgable can comment on whether they really do.

- Copying data from RAM to flash memory will take much longer than just shutting an app down.
- Copying data from flash to RAM will be little or no faster than starting the app again (which anyway comes from flash).
- Flash memory wears out, and this will significantly increase wear (I doubt this would be a problem on a phone).
- Uses a significant amount of space on the flash drive which a user might prefer to use for extra apps, music, photos, etc.
- Smart phone OS's don't manage memory in a way that is compatible with swap files (probably not true, but standard methods might not work on an app by app basis).
 

David P2

New member
Mar 10, 2014
1,600
0
0
Visit site
It's an interesting idea. I can think of a few possible issues that *might* apply - maybe someone more knowledgable can comment on whether they really do.

- Copying data from RAM to flash memory will take much longer than just shutting an app down.
- Copying data from flash to RAM will be little or no faster than starting the app again (which anyway comes from flash).
- Flash memory wears out, and this will significantly increase wear (I doubt this would be a problem on a phone).
- Uses a significant amount of space on the flash drive which a user might prefer to use for extra apps, music, photos, etc.
- Smart phone OS's don't manage memory in a way that is compatible with swap files (probably not true, but standard methods might not work on an app by app basis).

It'd be a major problem with the phone if it's the phone's internal storage that gives up.
 

James8561

New member
Dec 3, 2012
1,282
0
0
Visit site
True, but doing his idea might make phones like the 5xx and 6xx phones play some of the more ram-intensive games, or even help with Live Lock Screen Beta. Sometimes, 512mb isn't enough, and using a class 10+ microsd card is.
like I stated above, there's no replacement for having more RAM as RAM is significantly faster than everything else.
bandwidths of typical desktop/laptop SSDs is several hundred megabytes per second to a few gigabytes per second. bandwidths of typical RAM is tens of gigabytes per second to a few hundred gigabytes per second. This is in addition to the vastly superior access latency I talked about (which is what really matters).
readyboost will not magically allow games or apps that require 1+ GB to run on 512 MB devices.
BTW your typical class 10 mSD is around 45-90 MB/s with 0.2-0.5 ms access. This is the same as the flash memory that is inside your phone. Still very slow compared to RAM.

as for the flash storage inside your computing devices, they have been made to last far longer than the typical lifespan of said devices under extreme loads that will never happen in reality. in other words, don't worry about them wearing out.
 

chancooluk

New member
Oct 9, 2012
386
0
0
Visit site
I can't imagine how slow your phone would become if it started using part of the SD card as a RAM replacement.

You would see "loading" or "resuming" pretty much constantly.
 

Ma Rio

New member
Sep 28, 2013
1,291
0
0
Visit site
I like this thread, I learned something new today. Thanks! :D
Anyway, I'm more for app optimisation, than for adding more and more specs.
I understand there is a certan limit to optimisation from where you simply can't do anything more to help it, but look at where the lazyness of devs brought us - we have phones with 3GBs of RAM, quad and octa core processors and whatnot?
Why? Didn't apps (which were quite similar to these we use today, nothing special) run just fine back on old crappy phones with way lower specs?
 

anony_mouse

Banned
Aug 10, 2013
1,042
0
0
Visit site
To defend the idea a bit for the purposes of discussion... This doesn't have to work like a traditional swap file. The phone could just suspend apps to flash. This could be different to conventional memory paging, where the least used memory blocks are moved to disk. Here, a whole app could be moved to flash memory instead of being shut down. It might then be faster to resume it than loading it from scratch again (although I'm not convinced it would be). It would certainly not be a good idea to used a swap file as extra RAM for running apps.

It might or might not work (I'm guessing not) but it is an interesting idea.
 

David P2

New member
Mar 10, 2014
1,600
0
0
Visit site
So more like a hibernation file, you mean? It's also how Windows 8 starts quicker - it hibernates half of the system at shutdown so there's less to load up next time. Hybrid sleep isn't it? Or Hybrid boot... it's hybrid something lol
 

David P2

New member
Mar 10, 2014
1,600
0
0
Visit site
I like this thread, I learned something new today. Thanks! :D
Anyway, I'm more for app optimisation, than for adding more and more specs.
I understand there is a certan limit to optimisation from where you simply can't do anything more to help it, but look at where the lazyness of devs brought us - we have phones with 3GBs of RAM, quad and octa core processors and whatnot?
Why? Didn't apps (which were quite similar to these we use today, nothing special) run just fine back on old crappy phones with way lower specs?

Because they weren't used for gaming and multimedia back then - it was literally just calls, text, web browsing, lower resolution camera (2MP and below) and music player.

You have massive point thought... devs don't code with optimisation in mind anymore like they used to, when you had a fixed amount of memory to cram a whole app or game into, with no way of extending it. Especially games from the 8bit era (not consoles, I'm talking Spectrums, C64s, BBC Micros).
 

anony_mouse

Banned
Aug 10, 2013
1,042
0
0
Visit site
So more like a hibernation file, you mean? It's also how Windows 8 starts quicker - it hibernates half of the system at shutdown so there's less to load up next time. Hybrid sleep isn't it? Or Hybrid boot... it's hybrid something lol

Yes exactly. I've no idea if it would really improve things. I'm guessing probably not, but it would be interesting to find out if anyone has tried this.
 

xandros9

Active member
Nov 12, 2012
16,107
0
36
Visit site
Just a small point, its not the only reason, also its speculation, I could be misunderstanding.

Games may need to access many things at once/frequently, and even the fastest of cards won't be able to keep up = stuttering.
 

James8561

New member
Dec 3, 2012
1,282
0
0
Visit site
Games may need to access many things at once/frequently, and even the fastest of cards won't be able to keep up = stuttering.
Exactly this. I'm not sure how light mobile games are compared to PC games, but gaming is the most intensive thing one can do on any computing device.
Take for example an endless runner. The CPU is constantly tasked with procedurally generating new paths to run to, placing power ups, rendering sounds, and sending instructions to the GPU. The GPU is almost always maxed at 100% rendering the graphics to be displayed on screen. Rendering graphics is very bandwidth heavy, so RAM is constantly accessed. For smooth gaming, everything must be present in RAM to prevent stuttering.
Gaming is the most bandwidth heavy activity. There is never enough bandwidth and more performance can always be gained from faster RAM so don't even dream about expanding memory with those crawling mSD cards.

As for hibernating an app, the OS already does that, using internal memory and external memory too if you have apps on mSD
 

anony_mouse

Banned
Aug 10, 2013
1,042
0
0
Visit site
As for hibernating an app, the OS already does that, using internal memory and external memory too if you have apps on mSD

Please can you clarify this a bit? By 'the OS', do you mean Windows Phone, or mobile OS's in general. And what is hibernated? The pages from RAM, so the app can be reloaded in precisely the same state as it was hibernated, or just some data chosen by the app itself?
 

Members online

Forum statistics

Threads
323,190
Messages
2,243,420
Members
428,034
Latest member
chuffster