Main > Main Forum

Added memory and switched to 64 bit and everything seems slower???

Pages: << < (3/6) > >>

MonMotha:


--- Quote from: keilmillerjr on July 01, 2013, 05:34:56 pm ---Is 64-bit faster than 32-bit? As far as I can tell, no. However, 64-bit will allow you to address more memory and virtual memory. You could build a faster computer with the correct components. You are limited with 32-bit.

--- End quote ---

x86-64 aka AMD64 aka "x64" (in Microsoft-land only) has, in addition to wider registers, more explicitly named registers (double, IIRC) than IA-32 aka x86.  In some applications, this can provide a surprising performance boost since you don't have to deal with register aliasing.  Some applications can make pretty decent use of this, and MAME is apparently among them which makes sense: lots of the architectures it's emulating, especially for the more modern, high performance titles, have tons of registers compared to x86.

Now, this has nothing to do with the fact that the architecture is 64-bit.  The changes just happened to be made at the same time with x86-64.

There are also some instances where 64-bit code can hurt you.  Specifically, all your pointers and register saves (on the stack) are now 64-bits which means they take up twice as much room in memory.  Likewise, if you go ahead and bump up the size of "int" to 64-bit (Windows keeps it at 32, Linux goes to 64 by default), those also take up more space.  Generally, in the grand scheme of things, this doesn't cause a huge increase in resident set size for an application as most of that is other "assets" like graphics, text strings, and the code itself, which doesn't get much bigger and in fact can get smaller, but it can be a somewhat big increase in terms of keeping things in the CPU's cache, and main memory is of course much slower than cache.

In other words, going from IA-32 (x86) to x86-64 (AMD64/"x64") is not guaranteed to result in a performance difference in a given application, and it may result in either a loss of performance (usually small, at least) or an increase in performance (sometimes very substantial).

Malenko:


--- Quote from: Fursphere on July 01, 2013, 10:00:09 pm ---
--- Quote from: Malenko on July 01, 2013, 04:14:54 pm ---I would put the newer 4GB in and run WinXP32 and see how it runs . If you want a world of difference, get an SSD drive for the OS  8)

--- End quote ---

So you can only use 3GB of it?  No thanks.

Go Win7 x64.

Make sure you install _ALL_ the correct drivers.  Video, audio, chipset, I/O, etc.

--- End quote ---

While having more RAM is a good thing, if he's not utilizing it and performance is solid on xp32 there's no point of running Win7x64. My advice is solid and based on the practical use of the system. Its a MAME PC, if it was an everyday PC or more of a gaming PC I'd agree with you but thats just not its purpose.

rpgposer:

I upgraded an Intel E-8500 w 4GB ram from winxp x86 to win8 x64.  I didn't notice much difference, but there was SOME difference using 64 bit applications vs. 32 bit.  There was a noticeable difference in mame, for sure.  I had lowered expectations, so I was pleased at the end.

Dawgz Rule:


--- Quote ---While having more RAM is a good thing, if he's not utilizing it and performance is solid on xp32 there's no point of running Win7x64. My advice is solid and based on the practical use of the system. Its a MAME PC, if it was an everyday PC or more of a gaming PC I'd agree with you but thats just not its purpose.
--- End quote ---

 :stupid  Agreed.

If he's lucky he may actually get 3.25GB of usable memory from XP32 with 4GB.

JDFan:


--- Quote from: Fursphere on July 01, 2013, 10:00:09 pm ---
--- Quote from: Malenko on July 01, 2013, 04:14:54 pm ---I would put the newer 4GB in and run WinXP32 and see how it runs. If you want a world of difference, get an SSD drive for the OS  8)

--- End quote ---

So you can only use 3GB of it?  No thanks.

Go Win7 x64.

Make sure you install _ALL_ the correct drivers.  Video, audio, chipset, I/O, etc.

--- End quote ---

Actually normally closer to 3.25GB, which once you consider the other various limitations Windows uses (ie. 2GB memory usage per program) that's probably more than he'll ever be using out of the 4GB on a 64 bit install anyway - until you go to 6 - 8GB for multi tasking operations it really doesn't make sense to move to a 64 bit OS to run older programs. ( the reason for going 4GB instead of just 3 is you can use a portion of that extra GB plus it is easier to keep the system operating in dual channel mode, unless you use a couple 512mb modules to keep dual channel mode with 3 GB. )

Especially on an older CPU as the 64 bit OS uses more overhead since everything needs to be using 64 bit registers there is a lot of memory space that goes wasted when dealing with older 8, 16, and 32 bit programs leaving less actual memory space available for program usage than there would be if using 32 bit registers.

You have to remember that most of these emulation programs also are not designed for 64 bit support natively so much of the memory allocation goes unused since it is using a 64 bit space to store a 8, 16, or 32 bit chunk of data. Kind of like say you are trying to move water from a pond to a 50 gallon drum and you have either a supply of 10 gallon or twice as many 5 gallon buckets, if you are aware of the extra space and are designed to use it (ie. can actually carry 10 gallons) in the 10 gallon buckets it may be quicker to transfer using it (ie. using a 64 bit program on a 64 bit system) but if you could only carry 5 gallons and had to leave 5 gallons empty in the 10 gallon bucket (ie. using a 32 bit only program on a 64 bit system)  then you'd be just as fast or faster using the 5 gallon buckets instead since you have extra 5 gallon buckets to fill while waiting for the transfer rather than only half as many 10 gallon buckets that you have to wait to empty before refilling. So in this instance performance may actually be faster on the 4gb. 32 bit system (3.25GB useable) since it allocates the resources better in 32 bit chunks that the program is using rather than transferring in 64 bit chunks where half of it is empty space even though it can use all 4gb. 

Pages: << < (3/6) > >>

Go to full version