Poor performance when using Texas Instruments code generation tools in Wine

Anders Rønningen anders.ronningen at tandberg.net
Wed Feb 23 04:06:00 CST 2005


For starters, here is some more debug info on our case. 

oprofilres.txt shows the results we got from oprofile on ntdll.dll.so

heaptrace.tar.gz contains a WINEDEBUG=+heap trace (as recommended). It
shows that the linker allocates many small blocks, typically 0x18 bytes.
We interrupted the linking before it was complete, but you should see a
pattern...

Regards,
Anders


On Tue, 2005-02-22 at 22:32 -0800, Dan Kegel wrote:
> Anders wrote:
> > We have been using TI code generation tools (compiler and linker) on 
> > Wine, and it has worked well. However, when we started evaluating newer 
> > versions of the codegen tools, the linking time was dramatically 
> > increased (from 20 sec to 30 minutes...).
> > 
> > We have done some profiling using oprofile, and found that most of this 
> > time (96%) is spent in the HEAP_FindFreeBlock* *function in the ntdll 
> > module. The time needed to locate a free heap block increases gradually, 
> > from a few iterations up to about 15000 in the project we are building. 
> 
> Wow, that's worth looking into!
> 
> Can you write a small C program that has the same behavior?
> That would help us reproduce the problem and then solve it.
> 
> Thanks,
> Dan
> 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: heaptrace.tar.gz
Type: application/x-compressed-tar
Size: 1525945 bytes
Desc: not available
Url : http://www.winehq.org/pipermail/wine-devel/attachments/20050223/cd42bb32/heaptrace.tar.bin
-------------- next part --------------
[root at localhost wine]# opreport -l ntdll.dll.so
CPU: CPU with timer interrupt, speed 0 MHz (estimated)
Profiling through timer interrupt
samples  %        symbol name
292675   99.6279  HEAP_FindFreeBlock
470       0.1600  HEAP_CreateFreeBlock
231       0.0786  HEAP_FindSubHeap
227       0.0773  RtlAllocateHeap
73        0.0248  HEAP_GetPtr
19        0.0065  HEAP_ShrinkBlock
19        0.0065  HEAP_ValidateInUseArena
18        0.0061  HEAP_IsRealArena
18        0.0061  RtlFreeHeap
12        0.0041  HEAP_MakeInUseBlockFree
3         0.0010  NtAllocateVirtualMemory
1        3.4e-04  VIRTUAL_FindView
1        3.4e-04  VIRTUAL_GetProt
1        3.4e-04  anonymous symbol from section .plt


More information about the wine-devel mailing list