[antlr-interest] Profiler of ANTLR usage

Bryan Ewbank ewbank at gmail.com
Thu Dec 1 15:12:14 PST 2005


One BIG improvement we're working on is being very careful to use
buildAST=false for as many passes as you can.  This reduces space as
well as time for those passes that just annotate the tree, or do very
small tree surgery operations.

Also, as Martin said, avoid "( ) =>" predicates like the plague.  Do
everything you can to use "{ }?" instead.

- Bryan

On 12/1/05, Ruslan Zasukhin <sunshine at public.kherson.ua> wrote:
>      Hi ANTLR list,
>
>  I have get some profiling.
>
>  Simple test. We add 100,000 record using SQL INSERT into Valentina database.
>
>  As you can see
>
>          ANTLR  take     74.6% of time. This is only parsing and tree parsing        :-((
>
>          Valentina do rest work to put million records in 13.6% + 4.6% = 18.2%
>
>  As I have always told, on top of problem are
>      std::strings, which do a lots of  new/delete...
>
>
>  -------------------------------------------------------------------------------
>      0.0%    99.9%    Common_SetExtesions    main
>      0.0%    99.9%    Common_SetExtesions    Example()
>      0.1%    99.2%    Common_SetExtesions    AddRecords(fbl::smart_ptr<fbl::vsql::I_Database>)
>      0.1%    96.7%    libvkernel_ppc_debug.dylib    fbl::vsql::Database::SqlExecute(fbl::String const&, fbl::smart_ptr<fbl::ArrayOfSmartPtrs<fbl::smart_ptr<fbl::I_Value> > >)
>      0.1%    96.4%    libvkernel_ppc_debug.dylib    fbl::vsql::SqlParser::SqlExecute(fbl::vsql::I_Database*, fbl::String const&, fbl::smart_ptr<fbl::ArrayOfSmartPtrs<fbl::smart_ptr<fbl::I_Value> > >)
>
>      0.1%    74.6%  libvkernel_ppc_debug.dylib    fbl::vsql::SqlParser::ParseCommand(fbl::String const&, fbl::vsql::Environment&)
>      0.0%    13.6%  libvkernel_ppc_debug.dylib    fbl::vsql::SqlParser::PreprocessCommand(fbl::vsql::Environment&)
>      0.0%    4.6%    libvkernel_ppc_debug.dylib    fbl::vsql::SqlParser::ProceedCommand(fbl::vsql::Environment&)
>
>      0.0%    2.3%    libvkernel_ppc_debug.dylib    fbl::vsql::Environment::~Environment [in-charge]()
>      0.0%    0.6%    libvkernel_ppc_debug.dylib    fbl::vsql::Environment::Environment[in-charge](fbl::smart_ptr<fbl::vsql::I_Database>, fbl::String const&, fbl::smart_ptr<fbl::ArrayOfSmartPtrs<fbl::smart_ptr<fbl::I_Value> > >)
>      0.1%    0.1%    libstdc++.6.dylib    std::basic_istringstream<char, std::char_traits<char>, std::allocator<char> >::str(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
>      0.1%    0.1%    libstdc++.6.dylib    std::basic_ios<char, std::char_traits<char> >::clear(std::_Ios_Iostate)
>      0.0%    0.1%    libvkernel_ppc_debug.dylib    fbl::Environment::~Environment [not-in-charge]()
>      0.1%    0.1%    libvkernel_ppc_debug.dylib    fbl::smart_ptr<fbl::vsql::I_Database>::smart_ptr[in-charge](fbl::vsql::I_Database*, bool)
>      0.0%    0.1%    libvkernel_ppc_debug.dylib    fbl::smart_ptr<fbl::vsql::I_Cursor>::operator=(fbl::vsql::I_Cursor*)
>
>  --
>  Best regards,
>
>  Ruslan Zasukhin
>  VP Engineering and New Technology
>  Paradigma Software, Inc
>
>  Valentina - Joining Worlds of Information
>  http://www.paradigmasoft.com
>
>  [I feel the need: the need for speed]
>


More information about the antlr-interest mailing list