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

Reply via email to