Hi all, I am trying to write a basic object-oriented matrix library, but have run into a problem.
I expected my OO routines to be somewhat slower than my equivalent non-OO routines, which was also the case (the non-OO routines uses 10 sec for a 500x500 matrix inversion, while the OO routines uses 110 secs (!) for the same). To analyse where the problem is I have used the -pg option to make output for use in the GNU profiler, gprof. In the non-OO program I get the following: Each sample counts as 0.01 seconds. % cumulative self self total time seconds seconds calls s/call s/call name 41.27 4.42 4.42 501 0.01 0.01 _FORWARDSUBS... 30.44 7.68 3.26 501 0.01 0.01 _BACKWARDSUBS.. 28.20 10.70 3.02 2 1.51 1.51 _LUDECOMPOSITION$TAR 0.09 10.71 0.01 1 0.01 10.71 program_init As you can see the cumulative seconds are equal to the time I measured (using "time" on the command line). However when I run the OO program I get something like: Each sample counts as 0.01 seconds. % cumulative self self total time seconds seconds calls s/call s/call name 40.63 14.13 14.13 249874780 0.00 0.00 _SIMPLE.. [snip - a lot of lines] 0.00 34.78 0.00 1 0.00 34.75 program_init Here the cumulative seconds only shows 34.78 seconds, even though the output from "time" gives 110 seconds... Can anyone tell me what is going on? I guess it means that it uses a lot of time (~70%) in some internal FPC routines I have no control over? Best regards Preben PS: It should be mentioned that in both cases the computer had nothing else to do, and that the "time" command estimated the CPU usage to be 99%. _______________________________________________ fpc-pascal maillist - [EMAIL PROTECTED] http://lists.freepascal.org/mailman/listinfo/fpc-pascal