-
Notifications
You must be signed in to change notification settings - Fork 333
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improper Use of aria2 on SSDs #1632
Comments
Adding to my original post, SSDs have a limited number of write cycles, and pre-allocating space means writing unnecessary data. By using the --file-allocation=none parameter, we can avoid these unnecessary writes and extend the lifespan of the SSD. To detect if a system is using an SSD or HDD in C++, you can use the Windows API to query the drive type. Here's a sample code snippet that demonstrates how to do this:
The snippet above checks if the specified drive (in this case, C:) is an SSD by querying the StorageDeviceSeekPenaltyProperty. SSDs do not incur a seek penalty, so if the IncursSeekPenalty property is false, the drive is an SSD. |
I know it's probably not your intention, but you don't need to explain SSD write cycles to us. Despite the FFXI themed raid getting people nostalgic, it's not the mid 2000s and the first post explaining that there's an argument we can supply to the binary was plenty. But additionally, if patching FFXIV has you concerned about your disk's overall lifetime, there may be larger issues at play. Adding a c++ binary to pinvoke to check the storage medium type would be excessive. Even something managed inside of dotnet like that detailed on < https://stackoverflow.com/a/76883160> would be. We can just add the argument. |
I am trying to help, and it is disheartening to receive insults in return. Simply using the argument without considering the impact on HDD performance is not advisable. Detecting whether a system uses an SSD or HDD is straightforward and would provide the best option for both types of users. Final Fantasy XIV is a 100GB game, with expansions around 30GB each. It is indeed concerning when we do not use the proper arguments for SSDs, which have limited write cycles. Instead of writing 100GB to install the game, you would be unnecessarily writing 200GB. |
Update disclaimer
What did you do?
I have noticed that the current implementation of aria2 in XIV Launcher does not utilize the --file-allocation=none parameter when running on SSD systems. This parameter is crucial for optimizing performance on SSDs, as it prevents unnecessary wear and tear caused by file allocation operations that are only beneficial on HDDs.
Steps to Reproduce:
Launch XIV Launcher on a system with an SSD.
Observe the file allocation behavior during game updates.
Expected Behavior: The --file-allocation=none parameter should be used to prevent unnecessary file allocation on SSDs.
Actual Behavior: File allocation is performed, which is unnecessary and can lead to increased wear on the SSD.
Platform
Windows
Wine/Proton runner version
No response
Relevant log output
The text was updated successfully, but these errors were encountered: