Dne 23.6.2016 v 16:39 ketmar via Digitalmars-d napsal(a):
On Thursday, 23 June 2016 at 13:32:35 UTC, Daniel Kozak wrote:
Or on linux use ld.gold instead of ld.bfd. Using .so instead of .a
has another problem with speed. Application link against static
phobos lib is much faster than against dynamic version.
either i didn't understood you right, or... my tests shows that
ld.gold is indeed faster than ld.bfd (as it should be), but linking
against libphobos2.so is still faster in both linkers than linking
against libphobos2.a. it is ~100 ms faster, for both linkers.
and if you meant that resulting application speed is different... tbh,
i didn't noticed that at all. i did no benchmarks, but i have
videogame engine, for example, and sound engine with pure D vorbis
decoding, and some other apps, and never noticed any significant
speed/CPU load difference between .a and .so versions.
Yes I was speaking about application speed or runtime overhead. Mainly
about one shot scripts something like this:
//a.d
import std.stdio: writeln;
void main() {
writeln("Ahoj svete");
}
[kozzi@samuel ~]$ dmd -defaultlib=libphobos2.so a.d
[kozzi@samuel ~]$ time for t in {1..1000}; do ./a; done > /dev/null
real 0m7.187s
user 0m4.470s
sys 0m0.943s
[kozzi@samuel ~]$ dmd -defaultlib=libphobos2.a a.d
[kozzi@samuel ~]$ time for t in {1..1000}; do ./a; done > /dev/null
real 0m1.716s
user 0m0.047s
sys 0m0.323s