can you give more context ? what was the command line to get this?
I thought lexing was not a bottleneck, yet it seems to be in second place?

On Sun, Jun 23, 2013 at 2:28 PM, Walter Bright <newshound2@digitalmars.com> wrote:
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()