This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 235153 - inaccuracy tests: IDE analyzes Boost too slowly
Summary: inaccuracy tests: IDE analyzes Boost too slowly
Status: RESOLVED FIXED
Alias: None
Product: cnd
Classification: Unclassified
Component: Code Model (show other bugs)
Version: 7.4
Hardware: PC Solaris
: P2 normal (vote)
Assignee: Vladimir Voskresensky
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-08-28 10:19 UTC by soldatov
Modified: 2013-09-02 07:36 UTC (History)
0 users

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description soldatov 2013-08-28 10:19:35 UTC
IDE can't analyze these files for a 1000 seconds (4 days ago we had problem with 8 files only):

boost_1_53_0/boost/archive/basic_binary_oarchive.hpp, Time = 1200.546
boost_1_53_0/boost/fusion/adapted/mpl/mpl_iterator.hpp, Time = 1200.476
boost_1_53_0/boost/fusion/container/vector/detail/distance_impl.hpp, Time = 1156.518
boost_1_53_0/boost/fusion/container/vector/detail/preprocessed/vector10.hpp, Time = 1200.465
boost_1_53_0/boost/fusion/sequence/intrinsic/size.hpp, Time = 1200.47
boost_1_53_0/boost/graph/named_graph.hpp, Time = 1200.503
boost_1_53_0/boost/math/policies/policy.hpp, Time = 1200.54
boost_1_53_0/boost/math/special_functions/cbrt.hpp, Time = 1200.48
boost_1_53_0/boost/math/special_functions/cos_pi.hpp, Time = 1200.498
boost_1_53_0/boost/mpl/aux_/preprocessed/gcc/divides.hpp, Time = 1200.495
boost_1_53_0/boost/mpl/aux_/preprocessed/gcc/minus.hpp, Time = 1200.492
boost_1_53_0/boost/mpl/aux_/preprocessed/gcc/plus.hpp, Time = 1200.492
boost_1_53_0/boost/mpl/contains.hpp, Time = 1200.509
boost_1_53_0/boost/mpl/distance.hpp, Time = 1200.544
boost_1_53_0/boost/mpl/has_key.hpp, Time = 1200.515
boost_1_53_0/boost/multi_index/detail/no_duplicate_tags.hpp, Time = 1200.52
boost_1_53_0/boost/multi_index_container.hpp, Time = 1200.532
boost_1_53_0/boost/multi_index_container_fwd.hpp, Time = 1200.527
boost_1_53_0/boost/next_prior.hpp, Time = 1200.541
boost_1_53_0/boost/noncopyable.hpp, Time = 1200.551
boost_1_53_0/boost/none.hpp, Time = 1200.519
boost_1_53_0/boost/none_t.hpp, Time = 1200.53
boost_1_53_0/boost/numeric/conversion/bounds.hpp, Time = 1200.534
boost_1_53_0/boost/numeric/conversion/cast.hpp, Time = 1113.173
boost_1_53_0/boost/proto/make_expr.hpp, Time = 1129.438
Comment 1 Vladimir Voskresensky 2013-08-29 18:42:05 UTC
boost is template intensive and instantions happens everywhere. Instantiations handling sometimes grows exponentially and stops with antiLoop on 25th instantiation level. 
Instantiations uses getClassifier which cause Resolver3 to work => any changes in resolver which add even 10msec contribute 10sec into resolving of identifier on boost.
Recently I've added gather maps from include stack up to current file => it increased resolve time for template intensive code.
Comment 2 Vladimir Voskresensky 2013-08-29 18:43:48 UTC
with 
http://hg.netbeans.org/cnd-main/rev/ece9e4a5c57d

I've split Resolver3 gather maps into several phases.
The next step is to cache gathering maps from include stack and #include directives of file
Comment 3 Vladimir Voskresensky 2013-08-29 18:45:08 UTC
as extra speedup try to work with time consuming template resolving logic only if really needed:
http://hg.netbeans.org/cnd-main/rev/4ee0dc890077
http://hg.netbeans.org/cnd-main/rev/2d42953bb578
Comment 4 Quality Engineering 2013-08-30 01:43:52 UTC
Integrated into 'main-silver', will be available in build *201308300001* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)

Changeset: http://hg.netbeans.org/main-silver/rev/ece9e4a5c57d
User: Vladimir Voskresensky <vv159170@netbeans.org>
Log: fixing (no semantic changes) #235153 - inaccuracy tests: IDE analyzes Boost too slowly
- extracted maps collector out of Resolver3
- split collection phases: from include stack, from #include directives, from file up to offset
Comment 5 Quality Engineering 2013-08-31 01:27:37 UTC
Integrated into 'main-silver', will be available in build *201308310001* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)

Changeset: http://hg.netbeans.org/main-silver/rev/a360ff41f236
User: Vladimir Voskresensky <vv159170@netbeans.org>
Log: fixing #235153 - inaccuracy tests: IDE analyzes Boost too slowly
- introduced cache management
Comment 6 Quality Engineering 2013-09-01 01:24:21 UTC
Integrated into 'main-silver', will be available in build *201309010001* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)

Changeset: http://hg.netbeans.org/main-silver/rev/622d98d5ccc4
User: Vladimir Voskresensky <vv159170@netbeans.org>
Log: fixing #235153 - inaccuracy tests: IDE analyzes Boost too slowly
- create exception only if loggable level