Odd Performance Issue

G

Guest

Hi. This is probably not the best place to post this, but I was hoping
someone could explain weird performance anomaly. I ran a small test to
compare a new X6800 Core 2 Duo build against a three year old P4EE:
(Both machines running VS2005)

DateTime dt = DateTime.Now;
string s = String.Empty;
for (int i = 0; i < 9999; i++)
{
s += new string('x', 1000);
}
TimeSpan ts = DateTime.Now - dt;
double l = ts.TotalSeconds;



As you can see its very basic, meant to push memory and cpu activities. On
the older PC this evalutes in approximately 200 seconds. On the newer one,
it takes between 800 and 850 seconds.

Super PI (32m) takes 42m01s on the older machine, and 18m13s on the new one.
The new machine should be three to four times faster in general ops (super
pi is single threaded). I'm assuming that this is an anomaly in .net, which
is unfortunate as the new machine is a development build. Any ideas would be
greatly appreciated.

Thanks

mk
 
G

Guest

Incidentally, with on ly 999 cycles the new machine completes in 1.06s,
versus 2.22s on the old machine.
 
R

RobinS

This sounds like the same thing you posted over in
microsoft.public.dotnet.general.
When posting in multiple newsgroups, please post to all of them at once
(cross-posting) versus one by one (multi-posting). That way, if someone
offers a solution in one group, it will be displayed in all groups, and
people
will know it's been resolved and they can move on to help someone else.

Thanks,
Robin S.
---------------------------------
 
W

Willy Denoyette [MVP]

mk said:
Hi. This is probably not the best place to post this, but I was hoping
someone could explain weird performance anomaly. I ran a small test to
compare a new X6800 Core 2 Duo build against a three year old P4EE:
(Both machines running VS2005)

DateTime dt = DateTime.Now;
string s = String.Empty;
for (int i = 0; i < 9999; i++)
{
s += new string('x', 1000);
}
TimeSpan ts = DateTime.Now - dt;
double l = ts.TotalSeconds;



As you can see its very basic, meant to push memory and cpu activities. On
the older PC this evalutes in approximately 200 seconds. On the newer one,
it takes between 800 and 850 seconds.

Super PI (32m) takes 42m01s on the older machine, and 18m13s on the new one.
The new machine should be three to four times faster in general ops (super
pi is single threaded). I'm assuming that this is an anomaly in .net, which
is unfortunate as the new machine is a development build. Any ideas would be
greatly appreciated.

Thanks

mk


The newer system should be at least as fast as the older, are you sure that you are running
the same code compiled as optimized?. Anyway, you aren't comparing CPU performance, you are
comparing the memory sub-system's throughput by allocating writing and de-allocating a huge
number of objects, however, don't ever expect the newer system to be twice as fast, memory
hasn't become that much faster lately.

Willy.
 
W

Willy Denoyette [MVP]

mk said:
Incidentally, with on ly 999 cycles the new machine completes in 1.06s,
versus 2.22s on the old machine.

Here the largest string fit's completely in the on die L2 cache, however, when running >
4000 cycles, the string grows above the cache size and you take a huge hit because of the
RAM latency.

Willy.
 
G

Guest

Hi. I agree with you, and sorry about the cross-posting, its a bit of an
ambiguous issue, to be honest.
I reset my page file to "system managed", and defragmented my hard-drive.
Now MemTest (gui) can run with "All unused RAM", whereas previously it
insisted on running multiple instances. I think its just a little more than
new system build teething problem. Mem-allocation is still slower than the
previous build, oddly enough.
Thanks for all your help.

Kind regards,


mk
 
G

Guest

I completely agree, however I'm surprised that an older single core P4EE with
2MB cache isn't affected to the same massive degree.
 
W

Willy Denoyette [MVP]

mk said:
I completely agree, however I'm surprised that an older single core P4EE with
2MB cache isn't affected to the same massive degree.
Be careful, the X6800 L2 cache is a shared cache, I'm not quite sure all of it will be taken
by a single core.

Willy.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top