They both are "sort of" correct.
First re Microsoft: XP-32bit claim: "it can address up to 4GB of RAM" - this
is true, but doesn't really apply to you / help you.
While Windows XP-32bit can address 4GB of RAM as it's actually licensed
(software enforced limits) for up to 4GB of RAM, it will not show you 4GB,
because a lot of space in last gigabyte will be reserved for PCI addresses
(especially SP2, see reasons in this KB
http://support.microsoft.com/default.aspx?scid=kb;en-us;888137).
How much - depends on your motherboard and PCI devices that you have
(motherboard own devices counts too). This whole thing above is really
hardware / crappy drivers limitation, not per se Windows XP fault. But
still, you won't see 4GB of RAM.
Second re technician, if (s)he talks about the above, (s)he's right, the
numbers though: "2-3 GB of RAM" - are a bit off, it's either really crappy
M/B, or worth:
(below this line, there is nothing about physical memory, AKA RAM, it's all
about virtual address space and affect of /3GB switch.)
(s)he's is talking about something completely different, and I'm afraid the
talk is about user mode virtual address space.
32-bit OS can naturally map 4GiB of virtual address space _per_process_. In
NT world (XP is a flavour of NT family), 4GiB is divided into 2 pieces, by
default - 2GiB for user mode and 2GiB is for kernel. So, each, and every
single process _can_ access 2GiB of virtual address space. Right now, I have
on this machine 37 processes running, that gives 37x2=74GiB *potential*
virtual address space plus 2GiB for system (shared) = 76GiB. In reality,
Perfmon (process | virtual bytes | _total) tells me that my machine is using
approximately 1.6GB of virtual address space. This is by far lower than
*potential* I calculated - and this is normal. But the fact is, every
process is guarantied 2GiB.
Now, what /3GB switch does: it splits virtual address space into 3GiB for
user mode and 1GiB for kernel.
Only processes that have LARGEADDRESSAWARE flag on can benefit from this,
non-default split. And there are only few of them, manly specialized
software. Let's say I have 2 applications running that can benefit from
/3GB. The above *potential* calculation would look like this:
35x2+2x3+1=77GiB. (35 processes that can only use 2GiB each, 2 processes
that can use 3GiB and 1GiB (shared) for system).
(again, the above paragraph has nothing to do with RAM, the above numbers
are the same no matter how much or how little RAM you have.Whoever tells you
to use /3GB switch doesn't understand the difference between RAM and virtual
address space).
Third. Warning: few motherboards will automatically/forcefully adjust timing
of your RAM when you install 4GB and won't tell you.
General performance may degrade by few percent. You may be better with 2GB
of RAM than with 4GB if performance is that much important for you and you
don't do excessive multitasking, i.e. interact with a lots and lots of
running applications at once.