4 ms·
Similar effect existed for the HDDs of old. As the platter density increased, the head could glide over more data at the same spindle speed and you would get i
by branko_d 5y ago
Similar effect existed for the HDDs of old.
As the platter density increased, the head could glide over more data at the same spindle speed and you would get increasingly higher sequential speed. But you would not get much better latency - physically moving the head to a different track could not be done significantly faster. With each new generation, you would get only marginally better speed for many workloads that users actually care about. The latest HDDs could saturate SATA bus with sequential reads, but would still dip into KB territory (not MB, let alone GB) for sufficiently random-access workloads.
SSDs are similar in a sense that they can be massively parallelized for the increased throughput, but the latency of an individual cell is much harder to improve. Benchmarks will saturate the I/O queue and reach astronomical numbers by reading many cells in parallel, but for most desktop users, the queue depth of 1 (and the individual cell latency) is probably more relevant. That's why a lowly SATA SSD will be only marginally slower than the newest NVMe SSD for booting an OS or loading a game.
- TwoBit 5y agoDoesn't it depend a lot on the game? A well designed game could get a lot more out of a fast SSD.
- Dylan16807 5y agoYeah, there's absolutely no reason game loading should be serial. It's straightforward for a game to figure out everything it needs and grab dozens in parallel. That said, it's still true that you typically won't see a very big difference. Any SSD can support loading a level in a few seconds. The difference between normal flash and ultra-fast flash won't show up much unless you're aggressively streaming level data off the drive in real time.
- branko_d 5y ago> Yeah, there's absolutely no reason game loading should be serial. It's straightforward for a game to figure out everything it needs and grab dozens in parallel. And that would likely tank the performance if the game is running from an HDD. I suspect you could design the storage layer of your game/app/whatever to take into account the performance characteristics of the underlying drive, and adjust your I/O pattern to be more parallel or more serial accordingly. I also suspect that would not be easy/economical to do within the time/budget constraints of most projects.
- Dylan16807 5y agoLoading on a hard drive means you want to arrange the data so that you can do bigger chunks. But by serial I mean start a load, wait for it to finish, start next load, etc, and you don't want to do that on any drive.
- branko_d 5y agoSorry, I disagree. Serial reading is exactly what you want to do on an HDD, assuming big enough files which are not too fragmented. The name of the game is minimizing the head movements. Try the following experiment: find a couple of multi-GB files on an HDD in order to copy them to an SSD. First measurement: copy the first file then the second (then the third etc...) and sum-up the time. Second measurement: just drag'n'drop all the files together and measure the total time. Reboot before each measurement to purge the file cache.
- Dylan16807 5y agoI'm using serial to mean something different. There is serial as in reading byte 1 2 3 4. This is what you're talking about. This is good on any drive and great on hard drives. There is serial as in read a byte, do a calculation, read a byte, do a calculation. This is what I was talking about. This is bad on any drive and even more noticeable on SSDs. If you can have all your data in one single 500MB read, that's great. But I wasn't talking about that, because any drive can do a single giant read with good performance. If you have to do 800 different reads, it's much better to ask for them all at once. You don't want to trickle them out one at a time. This is what my comparison was.
- MonaroVXR 5y agoFrom on the top off my head, Sims 2 or sims 3 is very slow in loading the game with a SSD.