Overhead when using a C library
Artur Skawina
art.08.09 at gmail.com
Thu Mar 14 04:22:55 PDT 2013
On 03/14/13 01:52, Timon Gehr wrote:
> On 03/14/2013 01:48 AM, Jeremy DeHaan wrote:
>>
>> I am working on a binding for D, and am almost finished! I started to
>> think of some things I might like to work on to improve the binding
>> after I get everything working, and one of the things I thought of was
>> rewriting certain parts to use only D code instead of making calls to
>> the C functions. Is there any kind of performance overhead in using C
>> libraries to interact with your D program? If it isn't going to offer
>> much performance gain then I probably don't need to bother writing extra
>> code.
>
> There is no additional overhead (though the D compiler will not be able to inline C functions, whereas an identical D function may be inlined.)
Like Timon said - there's is zero overhead.
Even the inlining limitation only applies to /some/ compilers. [1]
xlanginline1.d:
extern extern(C) int c();
int main() { return 2*c(); }
xlanginline2.c:
int c() { return 21; };
compiled with GDC + -flto:
08049820 <_Dmain>:
8049820: 55 push %ebp
8049821: b8 2a 00 00 00 mov $0x2a,%eax
8049826: 89 e5 mov %esp,%ebp
8049828: 5d pop %ebp
8049829: c3 ret
artur
[1] and versions, unfortunately.
More information about the Digitalmars-d-learn
mailing list