top time wasters in DMD, as reported by gprof
dennis luehring
dl.soluz at gmx.net
Mon Jun 24 06:19:41 PDT 2013
how does that look using msvc compiling the dmd compiler
as it turns out that msvc make dmd much faster
btw: the memory profile tool i mentioned is also available as
performance profiler: http://www.softwareverify.com/cpp-profiler.php
Am 23.06.2013 23:28, schrieb Walter Bright:
> Flat profile:
>
> Each sample counts as 0.01 seconds.
> % cumulative self self total
> time seconds seconds calls ms/call ms/call name
> 5.19 0.08 0.08 945494 0.00 0.00 _aaGetRvalue(AA*, void*)
> 3.90 0.14 0.06 926415 0.00 0.00 Lexer::scan(Token*)
> 3.25 0.19 0.05 397097 0.00 0.00 calcHash(char const*,
> unsigned long)
> 2.60 0.23 0.04 373646 0.00 0.00 StringTable::search(char
> const*, unsigned lon
> 1.95 0.26 0.03 33255 0.00 0.00
> TemplateInstance::semantic(Scope*, Array<Expr
> 1.30 0.28 0.02 968985 0.00 0.00 ScopeDsymbol::search(Loc,
> Identifier*, int)
> 1.30 0.30 0.02 424079 0.00 0.00 calccodsize
> 1.30 0.32 0.02 234547 0.00 0.00 Parser::parseShiftExp()
> 1.30 0.34 0.02 168933 0.00 0.00 AliasDeclaration::toAlias()
> 1.30 0.36 0.02 136371 0.00 0.00 _aaGet(AA**, void*)
> 1.30 0.38 0.02 132102 0.00 0.00 TypeStruct::hasPointers()
> 1.30 0.40 0.02 32490 0.00 0.00
> TemplateDeclaration::matchWithInstance(Templa
> 1.30 0.42 0.02 21666 0.00 0.00
> FuncDeclaration::functionSemantic()
> 1.30 0.44 0.02 17983 0.00 0.00
> VarDeclaration::syntaxCopy(Dsymbol*)
> 1.30 0.46 0.02 12908 0.00 0.00
> TemplateDeclaration::deduceFunctionTemplateMa
> 1.30 0.48 0.02 6890 0.00 0.00 assignaddrc
> 1.30 0.50 0.02 6563 0.00 0.00 ecom(elem**)
> 1.30 0.52 0.02 5675 0.00 0.00
> TypeInfo_Idxstr::getHash(void*)
> 1.30 0.54 0.02 3780 0.01 0.01
> TemplateDeclaration::semantic(Scope*)
> 1.30 0.56 0.02 2648 0.01 0.01 operator delete(void*)
> 0.97 0.58 0.02 42592 0.00 0.00
> IdentifierExp::semantic(Scope*)
> 0.97 0.59 0.02 36403 0.00 0.00 BinExp::syntaxCopy()
> 0.65 0.60 0.01 2668529 0.00 0.00 operator new(unsigned long)
> 0.65 0.61 0.01 2575503 0.00 0.00 Dsymbol::isTemplateMixin()
> 0.65 0.62 0.01 2310757 0.00 0.00 Type::toBasetype()
> 0.65 0.63 0.01 2096689 0.00 0.00
> OutBuffer::reserve(unsigned long)
> 0.65 0.64 0.01 1030635 0.00 0.00 Dsymbol::isTemplateInstance()
> 0.65 0.65 0.01 708615 0.00 0.00 Module::search(Loc,
> Identifier*, int)
> 0.65 0.66 0.01 683509 0.00 0.00 VarDeclaration::isDataseg()
> 0.65 0.67 0.01 662180 0.00 0.00 Module::isModule()
> 0.65 0.68 0.01 567921 0.00 0.00 isType(RootObject*)
> 0.65 0.69 0.01 536331 0.00 0.00 Mem::realloc(void*,
> unsigned long)
> 0.65 0.70 0.01 454836 0.00 0.00
> Parameter::foreach(Array<Parameter>*, int (*)
> 0.65 0.71 0.01 375732 0.00 0.00 Type::merge()
> 0.65 0.72 0.01 353615 0.00 0.00 Mem::free(void*)
> 0.65 0.73 0.01 348546 0.00 0.00 isDsymbol(RootObject*)
> 0.65 0.74 0.01 339336 0.00 0.00
> exceptionOrCantInterpret(Expression*)
> 0.65 0.75 0.01 311493 0.00 0.00 isTuple(RootObject*)
> 0.65 0.76 0.01 300069 0.00 0.00 TypeBasic::isscalar()
> 0.65 0.77 0.01 270438 0.00 0.00 VarDeclaration::hasPointers()
> 0.65 0.78 0.01 248163 0.00 0.00
> Identifier::equals(RootObject*)
> 0.65 0.79 0.01 234806 0.00 0.00 Parser::parseAddExp()
>
More information about the Digitalmars-d
mailing list