On Fri, 16 Nov 2007 14:34:03 +0300
Sergei Gorelkin <[EMAIL PROTECTED]> wrote:

> Graeme Geldenhuys wrote:
> 
> > No idea??  They seem to fluctuate after each run, but the overall
> > result (which tests are faster) are always constant.  Have a look at
> > the code, if there is a better way of testing this. The code is
> > pretty simple.  Just loop and create 10,000 objects in each loop.
> > 
> Your tests do not free the refcounted objects, but free the 
> non-refcounted ones. This probably explains why 'standard
> refcounting' test is faster than 'standard non-refcounting'.
> Still cannot say anything about custom BaseObject. Maybe you could 
> figure out the showstopper by using callgrind.

I tested your tests and the results were completely random.
- They need so much memory that the OS page handling interferes.
- You used the slow 'Now' function.

Decrease the CTestRunTime to 1 and let the loops run 1000000 and you
will get more reliable results:

$ ./performancetest 
13 iterations in 1 seconds (no reference counting)
11 iterations in 1 seconds (reference counting)
9 iterations in 1 seconds (no reference counting with MyBaseObject)
8 iterations in 1 seconds (reference counting with MyBaseObject)
$ ./performancetest 
13 iterations in 1 seconds (no reference counting)
11 iterations in 1 seconds (reference counting)
9 iterations in 1 seconds (no reference counting with MyBaseObject)
7 iterations in 1 seconds (reference counting with MyBaseObject)


Mattias
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to