is my Rom:AND using just 1gb of RAM out of my 8gb?

quikesan

Chieftain
Joined
May 28, 2009
Messages
83
Hi

checking the task administrator while playing, I see the process is using just 1gb of ram, by my computer has 8gb (and my video card 4gb more byt itself).

1- is it true that my AND is using just 1gb?

2- if so, is there any config I can tune to make it use more RAM?
I checked it because I am noticing that the time between turns is a bit long.
The game is a Gigantic map with 48 Civs (using Totestar Generator) :)think: is it too much?)

my specs:
Intel Core i3 3.10 Ghz
8Gb RAM
GeForce GTX 650 Ti (8gb)

thanks!
 
All is ok. Why the hell would you want the game to take more RAM if it doesn't need to? :D
 
Time between turns is not a function of memory use but of your CPU. The faster your PC can calculate the steps in each turn, the faster it will run.
 
Due to the fact that RAND uses BTS, which is compiled for x86 CPU architecture, the maximum RAM usage for the application is 3.2GB.

I'm not sure why you'd want it to use memory it doesn't need. More (or less) memory usage has no correlation with performance.
 
On the CPU, it will only ever use 1 core as well, so if you have a dual core, quad core or an Octo core computer, it will only ever use 1 processing unit.

I have a dual core CPU, and it seems to swap between cores, though this may be just the processing, it does hit 100% on both at times, so its just the tasks being completed.
 
On the CPU, it will only ever use 1 core as well, so if you have a dual core, quad core or an Octo core computer, it will only ever use 1 processing unit.

I have a dual core CPU, and it seems to swap between cores, though this may be just the processing, it does hit 100% on both at times, so its just the tasks being completed.

That's actually not entirely true thanks to C2C. When players start building large enough civilizations (I believe its > 8 cities) the city AI splits itself into separate threads of calculation. This might be true with unit pathfinding too, but I haven't looked at that to see if we have it enabled for units. RAND will use multiple cores in certain situations. It will even use all available cores if there is enough of a reason to. (Creating new threads to execute on is an expensive compute operation and so doing multithreading for tiny tasks can actually be slower than sticking with a single thread of execution).

However, I would say 98% of the time, you are correct, only 1 core of execution is used. But multithreading is not like 64bit memory architecture, there isn't a simple switch you could hit to allow it. If we had the Civ4 full source code, it could be easily recompiled to support 64bit architectures (and support much more memory). But the same is not true for mulithreading. It's a very tough problem, especially for video games as there are rarely places where multiple threads of execution even make sense. Graphics, for example can only be drawn on one thread of execution, no matter what (this is no longer true with DX12...but Civ is DX9). In addition, great care must be taken to avoid race conditions & deadlocks.
 
Thanks for all the answers.
I thought the use if RAM had something to do with between turns calculations.

I don't know how Civ inner calculations are made, but it made sense to me that larger scenarios with a lot of Civs would require as much RAM as it could have.

so if you have a dual core, quad core or an Octo core computer
lol :lol:
 
You can get better performance by using Vmware player\workstation VM.
install vm, install into vm windows xp, install into xp_in_vm vmware additions, make shared folder pointing to your civ installation, play :)
in such comfig it will use ALL cores as vmware will emulate one-core cpu on your muti-core cpu.
and i think your cpu support hardware virtualization (intel-vt), so performance will be great :)
 
@masaykh: Are you sure about that? The cpu won't be the bottleneck anymore but the graphic card will be pretty limited in terms of performance, isn't it?
 
You can get better performance by using Vmware player\workstation VM.
install vm, install into vm windows xp, install into xp_in_vm vmware additions, make shared folder pointing to your civ installation, play :)
in such comfig it will use ALL cores as vmware will emulate one-core cpu on your muti-core cpu.
and i think your cpu support hardware virtualization (intel-vt), so performance will be great :)

Sorry, that's simply not how computers work. You can not stack cores like that.
 
More (or less) memory usage has no correlation with performance.

hmmm I would think it has correlation with performance.
If the CPU has to manage a lot of data, and it does not fit in your RAM, it will use the HD as swap (which is far slower). So in general, the bigger RAM, the less access to HD.

But in the other hand, I don't know the order (kb,mb,gb) of data managed by the CPU every turn, since I don't know BtS architecture.

Sorry, that's simply not how computers work. You can not stack cores like that.


Why not? It makes sense. If the VM can emulate a single core CPU on a multi-core CPU, it means it can distribute and balance CPU calculations load between them. Something that apparently BtS does not do by itself.

What I don't know if the emulation would take more resources that it would give.
 
hmmm I would think it has correlation with performance.
If the CPU has to manage a lot of data, and it does not fit in your RAM, it will use the HD as swap (which is far slower). So in general, the bigger RAM, the less access to HD.

No. Swap is only tangentially related to RAM. The amount of RAM used does not affect general performance.

When your OS runs out of additional physical RAM, how it deals with this resource shortage is not defined. Windows uses swap space, which turns part of your disk into memory. You can exceed this too, in which case windows will crash. (Users may also turn off swap on windows)

Linux does not allow this unless you add swap space (some distributions include swap space by default). Otherwise Linux kills the process using the most memory. (See OOM Killer)

So when I said RAM, I meant physical RAM, the actual chips in your computer, not whatever software your OS might or might not use to manage it.

In the case of Civ, you probably don't need more than 4gb, as the process is limited to 3.2gb total.

Why not? It makes sense. If the VM can emulate a single core CPU on a multi-core CPU, it means it can distribute and balance CPU calculations load between them. Something that apparently BtS does not do by itself.

What I don't know if the emulation would take more resources that it would give.
Yeah, it can't do what you think it does. What happens is it maps 1 of your real processor core CPUs to a single virtual processor core. Your extra real processor cores do not get assigned any tasks by single virtual processor core.

If it was as simple as virtualizing CPUs to stack the processing power, it would be a built-in feature of every operating system.

You can't send instructions from 1 virtual cpu to multiple real cpu units because CPUs are a state machine. (The GHZ rating on your processor is basic instructions per second, 3.0 GHZ = 3 billion instructions per second). Each Instruction is dependent on the value of the previous calculation. So you can not spread this out because the other processors do not know this previous value, only the processor that did the last calculation does. The time it would take to send this previous value to the other processors is greater than the length of time to simply calculate the next value on the current processor. This delay is due to the speed of light. You will find when it comes to computers, the speed of light tends to govern all the limits on the lower levels.

It's all fascinating stuff, I greatly enjoyed my operating systems university class.
 
(...)
It's all fascinating stuff, I greatly enjoyed my operating systems university class.

Thanks for sharing with us too. I enjoy reading when you explain something about computer science. Really interesting :)
 
aha.. ok. I see it now.
That is the key I guess:

The time it would take to send this previous value to the other processors is greater than the length of time to simply calculate the next value on the current processor
 
aha.. ok. I see it now.
That is the key I guess:
The time it would take to send this previous value to the other processors is greater than the length of time to simply calculate the next value on the current processor

Yes, the speed of light is the problem, it is too slow. ;)

The reason quantum computing is such a big deal is because of quantum entanglement. Quantum entanglement could allow communication of binary data instantaneously, which would make parallelizing existing processes possible like you had hoped.
 
One can CIV make a lot faster and more responsive, if one uses “RadeonRAMDISK“ .I run CIV completely from the RAM, which is about twiceas fast as my Samsung 840 pro SSD. I think 8 GB of RAM are needed for this. The program btw. is freeware, so try it out :) .
 
One can CIV make a lot faster and more responsive, if one uses “RadeonRAMDISK“ .I run CIV completely from the RAM, which is about twiceas fast as my Samsung 840 pro SSD. I think 8 GB of RAM are needed for this. The program btw. is freeware, so try it out :) .
I have to try this! When I was on Linux, I used some tips to minimize disk usage and maximize ram usage. It was a LOT more responsive. I didn't know that the same could be achieved with Windows (I try to search that before with no luck). Thanks for the tip.
 
Top Bottom