If you are running a 32 bit OS search the battlelog forums, a good memory fix there that solved crashing for my friend.
http://battlelog.battlefield.com/bf3/forum/threadview/2832654489420350764
THANK GOD, finally fixed my game crashing issues, I was shuffling 4 video drivers (latest to older ones) to try to figure out what was going on. My game would crash randomly in single player and in Multiplayer. Saw this 32 bit os fix and have not crashed since then.
Played at TUGBOAT last night for 3 hours I think.
You would think there should be an announcement about this fix as most people are still on 32 bit OS.
Here is the link I used
http://sonsofvalour.forumotion.co.nz/t687-battlefield-3-tweaks-and-fixes
Constant Crashing - Partial Fix (high level of success) 32 bit Operating Systems ONLY.
What does it help with?
This is not the solution for all crashes. It deals primarily with the crash to desktop that is caused by lack of virtual address space.Due to the unique nature of how addresses are mapped differently on each machine this crash may happen at different places and times of the game, even loading a map, menu or waiting on an AI turn. If you try this fix, and you follow directions properly, and it doesn't help you then your crash is due to something else.
How do I do it?
Follow directions explicitly. I have seen people consistently skip steps or not read the directions properly so it doesn't work for them whne they don't do what it says. it's not as complicated as it sounds, I'm just being thorough.
APPLY THE WORKAROUND (juicy caramel center)
Requirements
Only real requirements is that you have atleast 2GB RAM. You don't need beyond that even though we are allowing addressing up to 2.5 GB. Also following instructions and being somewhat familiar with working with files in windows is required. Make sure you are using Vista SP1 or later. If not then you need this hotfix that fixes a major blunder with Vista address space -
http://support.microsoft.com/kb/940105 [support.microsoft.com]
That's all, follow the 3 steps.
1) Prepare the operating system to be able to use beyone 2GB address space with a userva of 2.5GB (only 32 bit OS's need to do this): I am purposely using only 2500 for userva for specific reasons and any more will likely not be needed, as a result the kernel will have plenty of space to play in.
Windows 7/Windows Vista
* In Windows 7/Vista go to Start menu. Go to Accessories. Locate the command prompt shortcut and hover mouse over it. Right Click on the shortcut then select Run as Administrator.
* In the command prompt type this exactly: bcdedit /set increaseuserva 2500. Then hit enter.
* Make sure you get a message back confirming the change was made. To verify the entry is there you can type just bcdedit, hit enter, and you should see the entry now listed.
* Then close the command prompt. You just told Vista to increase user virtual address (userva) space to 2500MB.
* Changes take effect on reboot but don't reboot yet.
SUMMARY
We extended the user virtual address space in XP, Vista and 7 to 2500MB, so now applications can utilize up to that much if they are set to be Large Address Aware. While some 32 bit games/applications are set, Empire is not.
2) Now reboot the PC because Windows needs to set the userva at 2500 which only happens after startup.
If you skip any step it will not work. When you have rebooted you should be good to go. Run the game as normal with the original game shortcut.
TO UNDO THE CHANGES
For Vista 32 Open command prompt as administrator and type: bcdedit /deletevalue increaseuserva. That deletes the entry.
Reboot and you are back to normal.
Hope this helps someone, my right hand is still cramping from last night
System:
Q6600 @ 2.9ghz
Windows 7 32 bit (to lazy to change to 64bit)
NVIDIA GTX 480
RAM 3gb (again to lazy to upgrade)
Dell XPS 420 upgraded PSU and Video card
27 inch LG E2770 1920 x1080