Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Boost minmax library

Boost , ,

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

Minmax_element Performance

About performance

Of course, there are many factors that affect the performance of an algorithm. The number of comparison is only one, but also branch prediction, pipelining, locality of reference (affects cache efficiency), etc. In practice, we observe that when the iterator type is a pointer, обсуждение:minmax_element is only a tad slower than Разработчик:min_element, and is even faster than Оригинальное название: First_min_last_max_element! This is even more true for slower iterators (list<>::iterator or map<>iterator for instance). The following experiments were conducted on a Pentium III 500 Mhz running Linux and compiled with g++, version 2.95.2, flags -O3. In the tables, we use different distributions: идентичный means that all the elements are identical, 2-значный means that we replace the second half of the identical elements by a distinct element, increasing means that all the elements are distinct and in increasing order, decreasing is the reverse, and random is produced by random_shuffle.
The program that created these tables is included in the distribution, under minmax_timer.cpp
vector<int>::iterator идентичный 2-значный возрастать уменьшаться Случайность
Разработчик:min_element 23.26M/с 23.26M/с 23.15М/с 22.94M/s 22.94M/s
Разработчик:max_element 23.26M/с 23.26M/с 23.15М/с 22.94M/s 22.62M/с
Оригинальное название: First_min_last_max_element 23.15М/с 23.04M/s 23.04M/s 22.94M/s 22.83M/с
Оригинальное название: First_min_last_max_element 23.26M/с 23.26M/с 23.26M/с 22.83M/с 16.23M/s
Оригинальное название: First_min_last_max_element 23.15М/с 23.26M/с 23.15М/с 23.04M/s 22.93M/с
Оригинальное название: First_min_last_max_element 23.26M/с 23.15М/с 23.15М/с 22.94M/s 16.18M/s
обсуждение:minmax_element 21,83M/с 21,83M/с 21,83M/с 21.55M/с 17.79M/с
Оригинальное название: First_min_last_max_element 18.52M/с 18.38M/s 18.38M/s 18.94M/s 16.29M/s
Исполнитель:last_min_first_max_element 20.08M/с 20.83M/с 20,75 М/с 19.76М/с 15.87M/с
Оригинальное название: First_min_last_max_element 18.66M/с 19.69M/s 19.69M/s 19.23M/s 15.77M/с
Number of elements per second for standard vector container iterators
list<int>::iterator идентичный 2-значный возрастать уменьшаться Случайность
Разработчик:min_element 5.8М/с 5.8М/с 5.80М/с 5.73M/с 5.73M/с
Разработчик:max_element 5.81M/с 5.81M/с 5.78M/с 5.73M/с 5,75 М/с
Оригинальное название: First_min_last_max_element 5.81M/с 5.81M/с 5.79M/с 5,75 М/с 5.73M/с
Оригинальное название: First_min_last_max_element 5.81M/с 5.80М/с 5.79M/с 5.73M/с 5.03M/с
Оригинальное название: First_min_last_max_element 5.81M/с 5.80М/с 5.78M/с 5,74 М/с 5.73M/с
Оригинальное название: First_min_last_max_element 5.81M/с 5.80М/с 5.79M/с 5.73M/с 5.07M/s
обсуждение:minmax_element 5.68M/с 5.80М/с 5.66M/с 5,74 М/с 5.30М/с
Оригинальное название: First_min_last_max_element 5.79M/с 5.81M/с 5.78M/с 5.73M/с 5.04M/s
Исполнитель:last_min_first_max_element 5.69M/с 5.79M/с 5.69M/с 5.73M/с 4,84 М/с
Оригинальное название: First_min_last_max_element 5.61M/с 5.79M/с 5.64M/s 5,74 М/с 4,75 М/с
Runtimes for standard list container iterators
multiset<int>::iterator идентичный 2-значный возрастать уменьшаться Случайность
Разработчик:min_element 4,03 М/с 4,04 М/с 4,02 М/с 4,04 М/с 2.97M/с
Источник:max_element3.007M 4,02 М/с 4,02 М/с 4,01 М/с 4,02 М/с 2.96М/с
Оригинальное название: First_min_last_max_element 4,01 М/с 4,04 М/с 4,03 М/с 4,04 М/с 3,01 М/с
Оригинальное название: First_min_last_max_element 4,03 М/с 4,04 М/с 4,04 М/с 4,04 М/с 3.00M/s
Оригинальное название: First_min_last_max_element 4,04 М/с 4,04 М/с 4,04 М/с 4,06 М/с 3,01 М/с
Оригинальное название: First_min_last_max_element 4,04 М/с 4,04 М/с 4,03 М/с 4,04 М/с 3.00M/s
обсуждение:minmax_element 3.98M/с 3.99М/с 3.98M/с 3.99М/с 3.00M/s
Оригинальное название: First_min_last_max_element 3.99М/с 3.98M/с 3.97M/с 3.99М/с 2.99М/с
Исполнитель:last_min_first_max_element 3.97M/с 3.98M/с 3.96M/с 3.98M/с 3.00M/s
Оригинальное название: First_min_last_max_element 4.00M/s 4.00M/s 4.00M/s 4,02 М/с 2.97M/с
Runtimes for standard set/multiset container iterators


Last modified 2004-06-28

© Copyright Hervé Brönnimann, Polytechnic University, 2002--2004. Use, modification, and distribution is subject to the Boost Software License, Version 1.0. (See accompanying file License_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Статья Boost minmax library раздела может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 00:30:50/0.003385066986084/0