3 ms·
When I was streaming audio and video in PlayStation 2 games, I had to care a lot about physical disk layout. But, even then it boiled down to: Seek times are hu
by corysama 3y ago
When I was streaming audio and video in PlayStation 2 games, I had to care a lot about physical disk layout. But, even then it boiled down to: Seek times are huge, sector and cluster sizes are your atomic ops under the hood, inner rings are low-bandwidth-low-variance, outer rings are high-bandwidth-high-variance.
Since then, not so much.
These days with NVMe drives, things are much easier. But, there are still things to keep in mind. I haven't dug deep. But, my impression is: Even though 4K random reads are incredibly faster than they used to be, large (256K-2MB) reads are yet faster still. Maxing out modern drives requires having multiple requests in flight. So, multiple threads or async operations. Modern drives are so fast that the memory copies involved in buffered fread() can add 33ish% overhead. Consider memory-mapped read-only files. Even better: If you have millions of users, you need 1-in-a-million reliability. Consider SQLite or LMDB as alternatives to fwrite().
- VelesDude 3y agoI completely forgot about that. I never directly worked on the audio side but I did hear a little from others and the relief that came with the Xbox and caching audio on the HDD. It essentially cut-down on a lot of those issues. And by the next generation, it was only the Wii that you still had to kind of worry about that stuff.
- somat 3y agoWith spinning drives, there was an art to partitioning, where you would lay out your partitions to give some ideal spots on the disk. It probably did not really matter that much. but some people swore that putting your swap partition first was critical to having any sort of performance.