Few things, by freezing I mean that the game will freeze but the music continues to play and usually happens upon entering a house or new area. The only way to close the game is by opening the task manager via cntrl-alt-del and ending the fallout3.exe process. This is commonly reported on Windows 7 (both 32-bit and 64-bit editions) leading most users here to believe it is a WIndows 7 issue, but if you search for "fallout 3 Vista freeze" on google, you'll bring up plenty of links describing the exact same problem on Vista which is a supported operating system by Fallout 3 (windows 7 is not officially supported). Once again, it is NOT a Windows 7-exclusive problem, happens in Vista as well.
It appears to be related to loading since it happens often when entering a house/building/new area. I've had it happen in the wasteland a couple times while the game was streaming new stuff in the background, and I've had it happen after my character dies right as it's re-loading a save. It's not a save problem since turning off auto-save on entering buildings does not prevent it. It's not a ffdshow issue since I do not have that on my system. Doing a google search shows that the issue has always existed since the game was released, but it appears only quad core users reported it. Most every user who reports it is running a core i processor which except the i3 are multithreaded (4+ threads) but it happens on i3 as well.
I'll start with the infamous iNumHWThreads= fallout.ini addition. This does limit the number of hardware threads accessible by fallout 3. If I set it to 2, the RendererInfo text file reports that I have 2 HW threads. (If I leave it alone it says I have 8). I initially made some INI changes including the iNumHWThreads=8 which in practice did absolutely nothing since it would've used 8 anyways (I didn't know at the time), but freezing happened less frequently.. possibly because of INI changes, definitely not because I manually set it to 8. Most users agree to set this to 2. Yes, this limits the amount of threads the game will use, but in my testing it does not negatively affect performance. The game may be multi-threaded, but it mostly uses one thread. Using fraps runs outside Megaton showed a minimum/average FPS increase setting this to 2. Rivet City marketplace has a burning barrel and many NPCs that slow FPS on most systems. Again, I had a minimum/average FPS gain with iNumHWThreads=2. (I thought about it, the gain could also be the Intel turbo boost but I'll definitely take it anyway if it helps with freezing)
I have 8GB of RAM in my system, but 32-bit apps like Fallout 3 cannot access more that 4GB. Fallout 3 cannot access over 2GB because it lacks the largeaddressaware header in it's executable. That means Windows will only allow it 2GB and conserve the remainder for itself, but this creates a problem because the game still sees 4GB and if it tries to access more than 2GB it will crash. There is a largeaddressaware 'patch' on fallout3nexus which will add the header and allow it to access the full amount. Even if you have a 32-bit OS, there are instructions that will allow it to access a little more RAM than it currently does. Fraps showed no change in performance using the largeaddressaware mod, but I have definitely noticed less stuttering throughout the game and no CTDs in several hours of gameplay.
I tried all those background loading and multi threading INI changes from here: http://www.tweakguides.com/Fallout3_10.html and again using fraps there is no change in framerate with or without them. Keep in mind that some of the lines are turned on by default whether you have a multicore cpu or not, so we don't even know if the game uses them or uses them the way we think it does. I can report that there is no negative performance from using them so I do recommend having them on:
bBackgroundLoadLipFiles=1
bLoadBackgroundFaceGen=1
bBackgroundCellLoads=1
bLoadHelmetsInBackground=1
iBackgroundLoadLoading=1
bBackgroundPathing=1
bBackgroundNavmeshUpdate=1
bCloneModelsInBackground=1
bUseThreadedBlood=1
bUseThreadedMorpher=1
bUseThreadedTempEffects=1
bUseThreadedParticleSystem=1
bUseThreadedAI=1
bUseMultiThreadedFaceGen=1
bUseMultiThreadedTrees=1
iNumHavokThreads=5
A few will already be set to 1 by default. Also, I raised the following lines as recommended by the guide so the game uses more memory:
uInterior Cell Buffer=16
uExterior Cell Buffer=102
iPreloadSizeLimit=104857600
Again, identical performance reported by fraps either way, but I kept these new values anyways because I figured it wouldn't hurt and might prevent freezing. If you want to experiment with any of the other settings from that tweak guide, do NOT mess with the use30shaders line, leave it at 0. Supposedly, setting it to 1 and copying around the shader files will force 3.0 shaders but I experienced reduced performance in certain areas of the game (like rivet city marketplace or the area on mothership zeta where the NPCs hang out) so I'm not convinced this forces 3.0 shaders at all (which modern cards are better at than 2.0 shaders according to 3dmark06) and recommend highly it be left alone.
So that's what I did and like I said, several hours in and no freezing, no CTD. I'm convinced something I've done here made some sort of difference, but I'm not sure which one it was (hence the long post). The ini mods above might be legacy items for the engine and not even do a single thing for fallout 3 for all we know, but from my testing it doesn't hurt so I left them there. At the very least, if you are using 64-bit Vista/Windows 7 try out the largeaddressaware thing especially if using a lot of mods because it has been reported to help