I was playing battlefield 2 on my new pc with an x2 4200. I had the task manager loaded. When I quit I noticed that it seemed that both processors had been very active ~50% durring my gameplay.
This reminded me of an issue that we had at work with engineering applications with huge memory footprints. There was a performance hit because a given process would swap from one cpu core to the other. This would cause the cache hits to reduce, because the process had a different local cache. There was some command to have the os freeze the process to a single cpu.
Does the same effect apply in windows? Is there a similar workaround?
As far as I know, bf2 is dual core aware and you shouldn't need to change the affinity.
If you want, you can go into the task mangler, right click bf2.exe and set the cpu "affinity" to use cpu0 or cpu1 to force it to use a single core. The affinity setting isn't sticky so you'll need to do it everytime you start bf2.