Poor performance when using Texas Instruments code generation tools in Wine

Anders Rønningen anders.ronningen at tandberg.net
Tue Feb 22 05:52:33 CST 2005

Hi !

We have some performance problems with Wine that we could use some help on..

Here's the story:

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. 
We suspect that this may be due to fragmentation caused by the heap 
allocate/free algorithms.

We do not have the same problem when building the code under Windows, so 
we tried to use the native ntdll.dll from Windows instead of 
ntdll.dll.so, hoping that this would solve the performance issue. We are 
aware that this is not recommended, but wanted to give it a try anyway. 
We added the dll file to the global dll-override section in the config 
file under ~/.wine/config, but it seems like Wine just looks for the 
builtin dll. We see from strace that we access the correct config file 
at startup. Is override of ntdll not supported, or have we missed 
something? If it is supported, is it likely that it is going to work?

We have read some posts in the newsgroup about the heap issues. It seems 
that people agree that the heap should be improved, either by tweaking 
the existing code, or by using another heap implementation. Is any work 
planned on this?

Regards / Mvh - Anders Rønningen
Engineer R&D
Phone:  +47 67 125 125
Direct: +47 67 838 584
Mobile: +47 97 791 217
Fax:    +47 67 125 234
mailto:anders.ronningen at tandberg.net

More information about the wine-devel mailing list