[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Octave-bug-tracker] [bug #56752] Performance slowdown from version 3.2.
From: |
Rik |
Subject: |
[Octave-bug-tracker] [bug #56752] Performance slowdown from version 3.2.4 through to current dev branch |
Date: |
Tue, 3 Sep 2019 20:43:17 -0400 (EDT) |
User-agent: |
Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko |
Follow-up Comment #33, bug #56752 (project octave):
I have re-run the benchmark with code profiling. See results below.
Interesting hotspots still seem to be octave::symbol_table::find_function at
24.82% (basically 1/4) of runtime. Maybe we need an O(1) cache that gets used
UNLESS something like a new class has been created or a timestamp has changed.
The function octave::tree_evaluator::convert_to_const_vector at 11.21% also
seems large. The function octave::tree_index_expression::lvalue takes 16% of
run time, but 60% of that 16% is due to convert_to_const_vector so it seems
worth working on that first. Little things like constructors and destructors
taking on order 1% of run time seem innocuous, but I haven't added them all up
to see if we still need to make improvements (lighter weight constructors) for
octave_value and octave_value_list.
- 86.91% 1.73% octave-cli liboctinterp.so.7.0.0 [.]
octave::tree_simple_assignment::evaluate
- 85.18% octave::tree_simple_assignment::evaluate
- 56.49% octave::tree_binary_expression::evaluate
- 53.78% octave::tree_index_expression::evaluate
- 51.81% octave::tree_index_expression::evaluate_n
- 24.82% octave::symbol_table::find_function
- 24.72% octave::symbol_table::fcn_table_find
- 21.80% octave::fcn_info::fcn_info_rep::find
- 20.80% octave::fcn_info::fcn_info_rep::xfind
- 7.86%
octave::fcn_info::fcn_info_rep::find_method
- 6.35%
octave::fcn_info::fcn_info_rep::load_class_method
1.36% __memmove_avx_unaligned_erms
+ 1.30%
octave::cdef_manager::find_method_symbol
0.80%
octave::load_path::package_info::find_method
- 4.51%
octave::fcn_info::fcn_info_rep::load_class_constructor
- 2.76%
octave::fcn_info::fcn_info_rep::find_user_function
- 2.17%
octave::load_path::package_info::find_fcn
1.27%
std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> >, std::pair<std::__cxx11::basic_string<char,
std::char_traits<char>, std
0.67% __memcmp_avx2_movbe
- 2.15%
octave::fcn_info::fcn_info_rep::find_autoload
0.84% __memcmp_avx2_movbe
0.76% octave::tree_evaluator::lookup_autoload
- 1.74%
octave::fcn_info::fcn_info_rep::find_user_function
+ 1.16%
octave::load_path::package_info::find_fcn
+ 1.72%
octave::fcn_info::fcn_info_rep::find_package
0.62% octave_value::~octave_value
1.12% std::_Rb_tree<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> >,
std::pair<std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<cha
0.90% __memcmp_avx2_movbe
- 11.21% octave::tree_evaluator::convert_to_const_vector
- 8.69% octave::tree_binary_expression::evaluate
- 5.79% octave::tree_identifier::evaluate
- 4.18% octave::tree_identifier::evaluate_n
0.82% octave::tree_evaluator::varval
0.52% octave_value::~octave_value
0.59% Array<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > >::~Array
1.31% do_binary_op
1.04% octave_value_list::octave_value_list
- 6.22% octave_builtin::call
1.40% Fabs
1.34% octave::action_container::run
+ 0.86% octave::call_stack::push
0.64% octave_value_list::make_storable_values
+ 1.11% octave::tree_evaluator::is_variable
0.70% Array<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > >::~Array
0.70% Array<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > >::operator=
0.65% octave::tree_evaluator::varval
0.60% octave_value_list::operator=
0.54% Array<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > >::operator=
0.52% octave::action_container::run
1.20% do_binary_op
- 15.96% octave::tree_index_expression::lvalue
- 9.86% octave::tree_evaluator::convert_to_const_vector
- 5.97% octave::tree_identifier::evaluate
- 4.34% octave::tree_identifier::evaluate_n
0.84% octave::tree_evaluator::varval
0.58% octave_value::~octave_value
0.62% Array<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > >::~Array
1.60% octave_value_list::octave_value_list
+ 1.00% octave::octave_lvalue::set_index
0.80% std::__cxx11::_List_base<octave_value_list,
std::allocator<octave_value_list> >::_M_clear
0.54% octave_value::~octave_value
- 7.99% octave::octave_lvalue::assign
- 7.07% octave_value::assign
- 6.57% octave_value::subsasgn
- 6.22% octave_base_matrix<NDArray>::subsasgn
- 5.56% octave_base_value::numeric_assign
- 4.22% oct_assignop_assign
- 3.00% octave_base_matrix<NDArray>::assign
- 0.82% Array<double>::Array
0.51% dim_vector::safe_numel
- 1.02% std::__cxx11::_List_base<octave::octave_lvalue,
std::allocator<octave::octave_lvalue> >::_M_clear
0.71% std::__cxx11::_List_base<octave_value_list,
std::allocator<octave_value_list> >::_M_clear
0.87% octave::action_container::run
0.63% std::__cxx11::_List_base<octave_value_list,
std::allocator<octave_value_list> >::_M_clear
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?56752>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/
- [Octave-bug-tracker] [bug #56752] Performance slowdown from version 3.2.4 through to current dev branch, John W. Eaton, 2019/09/03
- [Octave-bug-tracker] [bug #56752] Performance slowdown from version 3.2.4 through to current dev branch,
Rik <=
- [Octave-bug-tracker] [bug #56752] Performance slowdown from version 3.2.4 through to current dev branch, John W. Eaton, 2019/09/04
- [Octave-bug-tracker] [bug #56752] Performance slowdown from version 3.2.4 through to current dev branch, Rik, 2019/09/05
- [Octave-bug-tracker] [bug #56752] Performance slowdown from version 3.2.4 through to current dev branch, Rik, 2019/09/05
- [Octave-bug-tracker] [bug #56752] Performance slowdown from version 3.2.4 through to current dev branch, anonymous, 2019/09/10
- [Octave-bug-tracker] [bug #56752] Performance slowdown from version 3.2.4 through to current dev branch, Carlo de Falco, 2019/09/10
- [Octave-bug-tracker] [bug #56752] Performance slowdown from version 3.2.4 through to current dev branch, Rik, 2019/09/10
- [Octave-bug-tracker] [bug #56752] Performance slowdown from version 3.2.4 through to current dev branch, Rik, 2019/09/11
- [Octave-bug-tracker] [bug #56752] Performance slowdown from version 3.2.4 through to current dev branch, Carlo de Falco, 2019/09/11
- [Octave-bug-tracker] [bug #56752] Performance slowdown from version 3.2.4 through to current dev branch, Rik, 2019/09/11
- [Octave-bug-tracker] [bug #56752] Performance slowdown from version 3.2.4 through to current dev branch, anonymous, 2019/09/12