aMule Forum
English => Feature requests => Topic started by: wondra on July 18, 2005, 08:37:05 AM
-
aMule is inefficient with disk space allocation on Windows. It allocates all the part-files before downloading. I think that because of this the minimum-free-space check doesn't work. I understand the simplicity linux's filesystem offers, but that is not available on Windows. The program should create the part files when it needs them, that could make it take up space more 'linearly', or at least check if there is enough free space for the whole file. The way it is it crashes computers.
BTW I really like this program. I'm looking forward to linux core - windows GUI compatibility, until then it's rather useless to me. My 486 server I use for downloading is without Xwindows and the Windows mashine tends to crash (and I also tend to turn it off).
-
The program should create the part files when it needs them, that could make it take up space more 'linearly'
No, that could not. The problem is that amule (as any other mule) can download any part of file in any time. So, in windows, when you write 1 byte into location 1000 in file, your file becomes 1000 bytes long.
-
But we must agree that the minimal disk space check should work.
-
there is also a feature, which is widely used in the linux world, sparse files. ntfs has this option too, at least at ntfs5 (so it would work on win xp), but it seems, it is per default disabled, or most applications dont use this feature on windows.
it would help a little, cause a downloading file wouldnt need its whole size from the beginning.
the problem is, as far as i know, linux uses sparse files implicit, for every application, on windows you have to declare explicit, that your files are sparse files.
so long,
-
ntfs has this option too, at least at ntfs5
on windows you have to declare explicit, that your files are sparse files.
You right about both. That's where the problem is: amule doesn't have access to win32 HANDLE to make those calls and " check that we running on a system with ntfs5" and later "attempt to turn sparse file on".
We can't even ifdef such code, because HANDLE itself is lost deep down in abstraction layers.