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