On 02/23/2012 11:37 AM, Hans-Peter Diettrich wrote:
Amir schrieb:
Incl. Self. Called Function
29.78 29.72 26M SYSTEM_FILLCHAR$formal$INT64$BYTE
19.07 19.07 123M SYSTEM_MOVE$formal$formal$INT64
3.63 3.63 70M SYSTEM_SYSGETMEM_FIXED$QWORD$$POINTER
....
I suspect that the procedure initialization time is added to the first
explicit statement. The initialization can include try-except/finally
blocks, memory allocation (in constructors) or more.
Please create another procedure or method, that uses FillChar not as the
first statement, and test again.
I am not sure what you are asking. The callgrind outputs the call tree
and other information....
It's not the first time that somebody complains about slow FillChar. I
simply doubt that it really as slow as reported. In above table I'd
expect that SysGetMem should be slower than FillChar.
DoDi
The performance of FillChar is not my problem, The main issue in my case
is that my class has a big array defined inside it. I developed my code
such that this array does not need to be initialized with zero initially
(I have not assumed anything about the content of this array).
But the InitInstance function, initialize the array with zero.
I can see a simple solution to resolve my problem. I can change the
array, in my class, to a dynamic array or pointer or ...
But what if I had, let's say, many variables inside my class? Or a big
data structure?
Amir
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel