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

Comparing the performance of a single int_ generator

Boost , Spirit 2.5.2 , Performance of Numeric Generators

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

Эти измерения производительности сосредоточены вокруг форматирования по умолчанию одногоintцелого числа с использованием различных библиотек и методов. Общие сроки выполнения для этих примеров сравниваются ниже. Мы сравниваемспринтф, C++ iostreams,ФорматиДух. Карма.

Полный исходный код теста производительности см. здесь:int_generator.cpp. Все измерения были выполнены путем выполнения1e7итераций для каждого типа форматирования (НУМИТЕРАЦИИ установлены на1e7в коде, показанном ниже).

Код, используемый для измерения производительностиltoa:

char buffer[65]; // we don't expect more than 64 bytes to be generated here
for (int i = 0; i < MAX_ITERATION; ++i)
{
    ltoa(v[i], buffer, 10);
}

Код, используемый для измерения производительности стандартных C++ iostreams:

std::stringstream str;
for (int i = 0; i < MAX_ITERATION; ++i)
{
    str.str("");
    str << v[i];
}

Код, используемый для измерения производительностиBoost.Format:

std::string str;
boost::format int_format("%d");
for (int i = 0; i < MAX_ITERATION; ++i)
{
    str = boost::str(int_format % v[i]);
}

Код, используемый для измерения производительностиДух. Кармас использованием простого буфера символов:

char buffer[65]; // we don't expect more than 64 bytes to be generated here
for (int i = 0; i < MAX_ITERATION; ++i)
{
    char *ptr = buffer;
    karma::generate(ptr, int_, v[i]);
    *ptr = '\0';
}

В следующей таблице показаны общие результаты работы, собранные при использовании различных компиляторов. Все время в секундах измеряется для1e7итераций (платформа: Windows7, процессор Intel Core Duo(tm), 2,8 ГГц, 4 Гбайт оперативной памяти). Для более читабельного сравнения результатов см. этотрисунок.

Table 5. Performance comparison for a single int (all times in [s], `1e7` iterations)

Библиотека

gcc 4.4.0 (32 бит)

VC++ 10 (32 бит)

Intel 11.1 (32 бит)

gcc 4.4.0 (64 бит)

VC++ 10 (64 бит)

Intel 11.1 (64 бит)

ltoa

1.542

0.895

0.884

1.163

1.099

0.906

iostreams

6.548

13.727

11.898

3.464

8.316

8.115

Формат

16.998

21.813

20.477

17.464

14.662

13.646

Дух.Кармаint_

1.421

0,744

0,697

1.072

0,953

0.606


Figure 3. Performance comparison for a single int

Performance comparison for a single int



PrevUpHomeNext

Статья Comparing the performance of a single int_ generator раздела Spirit 2.5.2 Performance of Numeric Generators может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: Performance of Numeric Generators ::


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 07:08:23/0.0080900192260742/1