extract-xiso
extract-xiso copied to clipboard
Preallocate files during creation/extraction when sensible
Using writes to successively allocate files thrashes disks in a lot of situations. This is due to filesystem meta being updated each time a write is issued, incurring extra seeks. This alleviates the issue without adding extra overhead for smaller files which wouldn't benefit from preallocation. Extraction tests on a 5400RPM 360 disk saw speeds increase from ~11MiB/s to the max write speed of the disk. This should make nearly every use case for both creation and extraction faster, however.
This is due to filesystem meta being updated each time a write is issued, incurring extra seeks. [...] Extraction tests on a 5400RPM 360 disk saw speeds increase from ~11MiB/s to the max write speed of the disk. This should make nearly every use case for both creation and extraction faster, however.
I'm surprised by this. What OS, what filesystem and what's the maximum write speed? I'd imagine that the OS or FS layer will cache these changes.
Note: we will obviously support any ordinary harddisk (like Xbox 360 harddisks); but I'd imagine that we will probably focus on original Xbox and stop supporting Xbox 360 DVDs in the future (see #28 ).
~~nit: We use prefix-style commit messages now [prefix: Short description
] (as for most XboxDev projects).~~ Edit: We discussed this internally (on XboxDev Discord), and we don't care about commit message style for this repository - we are fine with inconsistency.
However, I'm open to accepting this as-is (including what I mentioned in review comments) because the old code-quality is horrible anyway (so my expectations aren't too high either).
Hey @WulfyStylez, any status on this or abandoned?