This site provides some information on how to tweak your game to perform better and crash less often.
You may find the Oblivion tweak guide here:
Also make sure you note page 2 which instructs you to read the
Tweakguide Tweaking companion and the ATI Catalyst Control or Nvidia Forceware tweak guides. This is where, in my opinion, most of the magic happens.
While you're there, you should also see if there is a tweak guide for any other games you own (Fallout 3, Morrowind, Mass Effect, etc).
"But that guide is outdated!"
I have seen numerous people advise others that some or all of the information in the above guide is outdated. I would just like to clarify a few things though.
First, I have personally examined this website, tested the tweaks and read information on the official forum. I eventually came to the conclusion that, of the entire 13 page guide, there is only one section that is of questionable value, namely the [Memory, Loading & Multithreading Variables] INI tweaks.
Second, the Oblivion tweak guide has this to say:
Update: In recent times many people have written to me and/or have also posted around the Internet that the tweaks in the [Memory, Loading & Multithreading Variables] section of this guide are either useless or harmful. I have clearly noted from day one that that these tweaks may have no impact, and having tested them myself to ensure that they aren't harmful, I mention that you can experiment with them if you wish, and reset them if you run into any problems. The reason they are still listed here is for the sake of completeness, so I don't receive hundreds of emails telling me that my guide is 'incomplete' because I don't cover these famous tweaks.
It should also be noted that:
1) The author of that guide plays using a relatively unmodified copy of Oblivion.
2) The language used in that section does imply that the tweaks have the possibility of not doing anything.
3) The beginning of the INI tweaking section recommends that INI tweaks be tested a few at a time before commiting to.
In the end, I don't think it is fair to say that an entire guide is useless or outdated when it is only one section in one of it's 13 pages that is possibly outdated. This is a very high quality tweak guide and I would hate to see it lose popularity from mis-information that some people spread.
So what now?
I would like to start off with something IanPatt (one of the creaters of OBSE) said about the multi-threading variables:
* bUseThreadedBlood - Does nothing. Isn't even read by the runtime.
* bUseThreadedMorpher - Is read by the runtime, but isn't used for anything.
* bUseThreadedTempEffects - Is read by the runtime, but isn't used for anything.
* bUseThreadedParticleSystem - Is read by the runtime, but isn't used for anything.
* bUseMultiThreadedTrees - Is read by the runtime, but isn't used for anything.
* bUseMultiThreadedFaceGen - Appears to do something. (probably generation of head meshes for NPCs in the background, as well as remorphing when people start wearing helmets)
* iNumHavokThreads - Is passed to Havok and probably does what it sounds like.
* iThreads - Is read by the runtime, but isn't used for anything.
* iOpenMPLevel - Is read by the runtime, but isn't used for anything.
I would bet that these .ini options are either 360-only, or completely unused. The game does use some threads when loading objects and setting them up in the scenegraph, which you can see in one of the debug text modes (current BSTask count).
So overall, the multi-threading tweaks don't do anything save the one or two exceptions.
Next, here is some advice from Jaga Telesin (creater of Streamline):
iPreLoadSizeLimit is one of those things people thinks work like a regular "cache", when in fact it does not. Larger values in this setting are WORSE for players since the 1.2.x patch. Martigen and I spent a week straight looking into this and a few other performance related INI values, and in fact it's better to keep it lower if possible. The right number is something you arrive at based on what you are using. The default value of 26214400 can be equated to one "unit" of cache. To find out how many units you need, refer to the following list:
(+1) Vanilla Oblivion + 30 or less mods (all small)
(+1) OOO, Fran's, Warcry (not FCOM)
(+1) MMM (not FCOM)
(+1) QTP1 (or similar normal-size texture pack)
(+2) QTP2 (or similar medium-size texture pack)
(+3-4) QTP3 (or other large-size texture pack)
So for example, someone running Oblivion, a few small mods, OOO and MMM would need a setting of: 1+1+1 (3x default) or 78643200. Generally this floats up and down by 1x, so that person might be able to get away with 2x instead, which is BETTER than 3x. You know you are too low when just after changing it and reloading the game, you start stuttering badly.
A high end machine with 2gb of RAM doesn't need to set their cache at 1gb, that's just insane. They need instead to evaluate what they run and see what setting value they need. If they had Oblivion+mods, FCOM, and QTP3 they would need: 1+2+3, or around 6x default (157286400), which is roughly 153mb of Oblivion cache.
Everyone's experience is unique, so people will have to play with their settings to get it just right. Too large and you will get problems, too small and you'll get different problems with similar symptoms (stutter and lag). Finding the sweet spot is what tweaking this entry is all about. My numbers are just a rough guide, and are by no means the final word on the setting."
Considering that the Oblivion Tweak guide's advice was built around an un-modified Oblivion, Jaga's advice is probably better in this regard. Additionally, it was also recommended that uInterior Cell Buffer and uExterior Cell Buffer be left alone since one would want to run Oblivion with a buffer purging mod (such as Streamline) which would undo any benefits provided by those two variables.
My advice is that if you want to apply any of the tweaks found in the [Memory, Loading & Multithreading Variables] section of the tweak guide, make sure you only tweak a few at a time and test their effects on your game before commiting to them. If you don't want to do this, I recommend that you don't touch those variables at all.