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()