[fpc-devel] Faster InitObject
Amir
amir at aavani.net
Thu Feb 23 21:43:50 CET 2012
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
More information about the fpc-devel
mailing list