I've done some research on gfx lag in zones where there are a lot of people around.
In Borealis for instance, or outside rome blue basic, a lot of people tend to gather. Whenever I pass by these, I drop to 0.x fps while the game is loading textures and whatnot.
This is, from what I have seen, something many people have experienced.
So, today, I decided to do a experiment.
I loaded up FileMon (http://www.sysinternals.com/Utilities/Filemon.html) and filtered for client.exe.
Whenever I moved, the playfield file (eg. cd_image\data\statels\800.pf for borealis) was accessed on the filesystem.
Whenever new textures were loaded, "cd_image\data\db\ResourceDatabase.dat" and "cd_image\data\db\ResourceDatabase.idx" was accessed on the filesystem.
So, I set up a 3GB ramdrive (!) and copied Anarchy Online onto this.
I started AO, ran around in borealis and rome... without graphics lag.
NO graphics lag. At all. Nada. Was entirely gone.
So, my question to FunCom, is this:
Can you PLEASE make AO load up the playfield files for the area you are in into memory, and make AO access it in memory instead of disk?
And can you PLEASE load the texture files, and KEEP THEM, in memory, untill they have not been used for a while? AND access them in memory instead of disk?
Because to me, it seems like AO is hardly using memory - only disk.
Also, I am having this impression that AO is memory greedy, and unload textures as soon as they are outside of your viewrange... Could it be possible to make AO adjust this by how much memory you have?
Last words:
This 3GB ramdrive crippled my box ("only" have 4GB ram), so I'm unloading it and playing AO the normal way. With gfx lag. I will look into making cd_image only go into ramdrive. Would save some space, and possibly make it possible to do other stuff while playing AO afterall.
And, I think that by moving the game to a ramdrive resolving the gfx lag, proves that most the gfx lag is caused by frequent access to the harddrive instead of efficiently utilizing the memory available on a computer.
Sidenote: Making AO load textures and playfields into memory and keeping them there would take significantly less space than loading the entire game onto a ramdrive like I did....
Edit: I'm not quite sure if this was the right forum to post it in. Please move to whichever forum is the right.
UPDATE:
I was playing with the client NOT on the ramdrive, and I experienced doorlag. When this doorlag appeared, there were a ton of write requests (!) to my prefs folder, for my char, to the Prefs.xml file. Most had "SUCCESS" as result, while some had "FAILURE". (file: "prefs\<account name>\Char<charid>\Prefs.xml" and some to "Prefs\<account name>\Prefs.xml" and "Prefs\Prefs.xml"). This was with doorlag in Fair Trade. I have no explanation for why it wanted to write to my prefs files at that time though. As normal, when going through the door again, there were no doorlag. This time there were no write requests to my prefs files either.
A smaller, provoked, doorlag in Rome Green Superior shop, on the way into trade department, showed about 134 access requests in one second spread on ResourceDatabase.dat and .idx. This was for as long as the doorlag lasted. (this is not considered a normal doorlag imho)
Update2:
I noticed that the prefs files are written to regulary.
Can the doorlag issues possibly be caused by the prefs files being written to at the same time as a rather huge ammount of textures are loaded?
Any devs able to comment on this?