Существует ли 'выгода' с FastFormat?

16
задан 3 revs, 2 users 80% 3 May 2012 в 08:29
поделиться

4 ответа

При рассмотрении подробно его страницы сравнительного теста производительности Вы заметите, что старый добрый C printf - функции семейства все еще побеждают на Linux. На самом деле единственный тестовый сценарий, где они работают плохо, является тестовым сценарием, который должен быть статическими конкатенациями строк, где я ожидал бы printf быть расточительным. Кроме того, GCC обеспечивает статическую проверку типа на printf - вызовы функции стиля, таким образом, преимущество безопасности типов уменьшается. Так: при работе Linux и при необходимости в абсолютной лучшей производительности FastFormat является, вероятно, не оптимальным решением.

0
ответ дан 30 November 2019 в 22:43
поделиться

Обнаружена одна «загвоздка», хотя для большинства людей она никогда не проявляется. Со страницы проекта:

Атомарная операция. Он не записывает элементы операторов по одному, как IOStreams, поэтому не имеет проблем с атомарностью

Единственный способ, которым я могу это увидеть, - это буферизация всего вывода write () . сам, затем записывает его в поток за один шаг. Это означает, что ему необходимо выделить память, и если объект, переданный в вызов write () , производит большой объем вывода (несколько мегабайт или более), он может потреблять вдвое больше памяти во внутренних буферах ( предполагая, что он использует трюк с увеличением размера буфера каждый раз, удваивая его размер).

Если вы используете его просто для ведения журнала, а не, скажем, для сброса огромных объемов XML, вы Я никогда не увижу эту проблему.

Единственная другая «уловка», которую я вижу:

Высокая переносимость. Он будет работать со всеми хорошими современными компиляторами C ++; он работает даже с Visual C ++ 6!

Поэтому он не будет работать со старым компилятором C ++, например cfront , тогда как iostreams обратно совместим с конца 80-х. Опять же, я

5
ответ дан 30 November 2019 в 22:43
поделиться

Это действительно выглядит довольно интересно! Хороший совет в любом случае, и +1 за это!

Я немного поигрался с ним. Главный недостаток, который я вижу, заключается в том, что FastFormat поддерживает меньше параметров форматирования для вывода. Я думаю, что это прямое следствие того, как достигается более высокая безопасность типов, и хороший компромисс в зависимости от ваших обстоятельств.

2
ответ дан 30 November 2019 в 22:43
поделиться

Библиотека зависит от пары переменных окружения, как упоминается в документации.

Возможно, для кого-то это не имеет значения, но я бы предпочел, чтобы мой код был настолько самодостаточным, насколько это возможно. Если я проверяю его из системы контроля исходных текстов, он должен работать и компилироваться. Этого не произойдет, если потребуется установить переменные окружения.

-1
ответ дан 30 November 2019 в 22:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: