PDA

View Full Version : "res_disk_retriever = sqlite" very slow game start


_Enio_
12-29-2012, 08:44 AM
I recently changed res_disk_retriever var to "sqlite" to check if its faster than the sdb format (and as surak hinted that its more advanced than sdb, see quote) and noticed a very slow loading before arriving at my characters screen.

Process explorer reported very high read access by the game while loading, is there maybe some integrity check on the ressource.db activated during game startup?

The delay on loading is approximated 3 times longer than copying the whole file.

Disabled it for now again but im curious about this delay and if someone can confirm this and of course - if it can be turned off.


Regards

Edit: Running on Windows 7

Duh.

That's the problem with really OLD code -.-

My suggestion: change res_disk_retriever = sdb to res_disk_retriever = sqlite in game.cfg and be happy.

ieti
12-29-2012, 10:04 AM
It is several times slower than the sdb to me too. Latest update made it little faster, but it is still slower.

Debian Squeeze here.

Kitsuni
12-29-2012, 10:07 AM
Something may be broken between the sqlite code and the "Update all resources at once" option.

Disabling it gave me normal load times again, up to 1/10th of before (or less).

_Enio_
12-29-2012, 10:13 AM
Hm, I didnt have that option enabled (update all resources at once).

ieti
12-29-2012, 12:28 PM
Hmm removing that checkbox speeds things up dramatically for me. This is strange...

Thumbs up @Kitsunie.

NotScias
12-29-2012, 03:26 PM
Similar issue here.

If I enable the sqlite retriever and download all ressources option, the game freezes a few seconds before character selection but does no disk I/O access at all, then resumes loading normally.

Anyways, even with the download all option disabled, there's no tremendous improvement over sdb. I just notice a slightly faster loading time between NGD logo and char select screen.

Linux 64-bit - On a RAID0 array.

Kitsuni
12-29-2012, 06:51 PM
Hm, I didnt have that option enabled (update all resources at once).
Does it slow down on loading times if you enable this option?

Similar issue here.

If I enable the sqlite retriever and download all ressources option, the game freezes a few seconds before character selection but does no disk I/O access at all, then resumes loading normally.

Anyways, even with the download all option disabled, there's no tremendous improvement over sdb. I just notice a slightly faster loading time between NGD logo and char select screen.

Linux 64-bit - On a RAID0 array.
Also, the sqlite code also seems to use a single, large (~4GB) database, while the SDB code used multiple separate files.

I don't understand how this can be more efficient. It seems to me like it might reduce fragmentation, but you're still going to incur massive seek times when going from one end of the database to the other, even with low fragmentation on the file. Not sure what NGD was thinking here...

Would be nice if they explained some of the reasons for doing things this way (but I won't hold my breath).