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

Rationale and FAQ

Boost , Chapter 1. Boost.Log v2 , Chapter 1. Boost.Log v2

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

Можно задаться вопросом, почему бы не использовать произвольные строки в качестве названных имен области. Ответ прост: по соображениям эффективности и безопасности. Названная функциональность поддержки области имеет одно существенное отличие от других функций библиотеки, связанных с атрибутами. Стек области действия поддерживается даже при отсутствии регистрации, поэтому, если функция<foo>имеет утверждение<BOOST_LOG_FUNCTION()>в своем теле, это всегда замедление. Если позволить названию области действия быть произвольной строкой, замедление будет значительно больше из-за необходимости выделения памяти и копирования строки (не говоря уже о том, что будет необходимость предварительно отформатировать ее, что также сказывается на ней).

Динамическое распределение памяти также вводит проблемы безопасности исключений: утверждение<BOOST_LOG_FUNCTION()>(и подобные ему) станет потенциальным источником исключений. Эти проблемы усложнят код пользователя, если он хочет решить проблемы с распределением памяти.

Одним из возможных альтернативных решений было бы объединение предварительно отформатированных и предварительно выделенных названий областей применения где-то, но это, безусловно, ухудшит производительность еще больше и введет проблему обнаружения, когда обновлять или освобождать объединенные строки.

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


PrevUpHomeNext

Статья Rationale and FAQ раздела Chapter 1. Boost.Log v2 Chapter 1. Boost.Log v2 может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: Chapter 1. Boost.Log v2 ::


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 19:38:13/0.0064370632171631/0