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

Boost.Convert Overhead

Boost , Chapter 1. Boost.Convert 2.0 , Performance

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

PrevUpHomeNext

Boost.Convert фреймворк добавляет дополнительный слой опосредования и некоторые Boost.Convert конвертеры представляют собой обертки вокруг фактических средств преобразования, таких как boost::lexical_cast, boost::spirit и т.д. Следовательно, могут возникнуть обоснованные опасения в отношении накладных расходов на производительность, введенных рамками, в отличие от непосредственного развертывания средств преобразования.

Чтобы проверить, что код был заимствован и адаптирован от Духа. Qi performance/optimization framework (см. $BOOST_ROOT/libs/spirit/workbench/qi/int_parser.cpp). Испытания были

  1. скомпилированы с использованием gcc-4.6.3 и gcc-4.8.2;
  2. с оптимизацией: g++test/performance_spirit.cpp----boost_1_56_0-lrt;
  3. 64-разрядный Ubuntu 12.04 и 32-разрядный Ubuntu 14.04;
  4. бежать на вход случайно сгенерированных 18 числовых строк (9 положительных и 9 отрицательных чисел с числом цифр от 1 до 9);
  5. запустите
    • boost::lexical_cast и boost::lexical_cast на основе преобразователя;
    • boost::qi::parse и boost::qi::parse-конвертер.

Цель теста состояла в том, чтобы развернуть ту же функциональность непосредственно и как часть структуры Boost.Convert. Результаты показаны ниже для нескольких последовательных прогонов:

gcc-4.6.3 (64-bit)
raw_lxcast_str_to_int_test: 1.0504170070 [s]
cnv_lxcast_str_to_int_test: 1.0610595810 [s] (1% slower than raw above)
raw_spirit_str_to_int_test: 0.2845369110 [s]
cnv_spirit_str_to_int_test: 0.2834834560 [s] (1% faster than raw above)
raw_lxcast_str_to_int_test: 1.0770350390 [s] (2% slower than prev. run)
cnv_lxcast_str_to_int_test: 1.0607665160 [s] (1% faster than raw above)
raw_spirit_str_to_int_test: 0.2792295470 [s] (2% faster than prev. run)
cnv_spirit_str_to_int_test: 0.2827574570 [s] (1% slower than raw above)
gcc-4.8.2 (32-bit)
raw_lxcast_str_to_int_test: 8.5153330600 [s]
cnv_lxcast_str_to_int_test: 8.6989499850 [s] (2% slower than raw above)
raw_spirit_str_to_int_test: 2.4197476510 [s]
cnv_spirit_str_to_int_test: 2.4594171510 [s] (2% slower than raw above)
raw_lxcast_str_to_int_test: 8.4136546980 [s] (1% faster than prev. run)
cnv_lxcast_str_to_int_test: 8.5322524600 [s] (1% slower than raw above)
raw_spirit_str_to_int_test: 2.3842388060 [s] (1% faster than prev. run)
cnv_spirit_str_to_int_test: 2.3812094400 [s] (0% faster than raw above)

Результаты последовательных прогонов варьировались с отклонениями около 2%. Менее 2% было также отклонением кода «cnv» по сравнению с «сырым» кодом. Это указывает на то, что фреймворк Boost.Convert не имел обнаруживаемых накладных расходов с тестируемыми компиляторами, аппаратным обеспечением и сценариями развертывания. Результаты могут отличаться на других платформах.


PrevUpHomeNext

Статья Boost.Convert Overhead раздела Chapter 1. Boost.Convert 2.0 Performance может быть полезна для разработчиков на c++ и boost.




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



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


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-07-05 03:09:42/0.0037920475006104/0