Size: a a a

2021 July 07

RM

Roy Mustang in C++ Together 2.0
Было так
источник

RM

Roy Mustang in C++ Together 2.0
Честно говоря, не врубаюсь, где то есть места где аллокация при запуске происходит на доли времени
источник

RM

Roy Mustang in C++ Together 2.0
источник

RM

Roy Mustang in C++ Together 2.0
Это весь лог аллокаций при запуске программы
источник

RM

Roy Mustang in C++ Together 2.0
Видно что местами аллоцируется и сразу освобождается память
источник

RM

Roy Mustang in C++ Together 2.0
Надо переписать SetArgs функцию
источник

RM

Roy Mustang in C++ Together 2.0
никак руки не доходили
источник

RM

Roy Mustang in C++ Together 2.0
Она там тоже вектор по значению возвращает
источник

RM

Roy Mustang in C++ Together 2.0
Давно хотел ее переписать, но руки не доходили
источник

RM

Roy Mustang in C++ Together 2.0
Не понял, std::cout не аллоцирует память?
источник

VD

Vlad Doc in C++ Together 2.0
А должен?
источник

RM

Roy Mustang in C++ Together 2.0
Тогда мне непонятно, почему такие библиотеки как fmt аллоцирует на выводе память
источник

RM

Roy Mustang in C++ Together 2.0
Почему бы не создавать буффер на стеке и туда писать данные
источник

RM

Roy Mustang in C++ Together 2.0
потом вывести в консоль
источник

RM

Roy Mustang in C++ Together 2.0
и никаких аллокаций
источник

VD

Vlad Doc in C++ Together 2.0
фмт создаёт же строку
источник

RM

Roy Mustang in C++ Together 2.0
для чистоты эксперимента посмотрим сколько аллокаций fmt вызываает
источник

VD

Vlad Doc in C++ Together 2.0
Поэтому очевидно аллокация
источник

RM

Roy Mustang in C++ Together 2.0
я про вывод в консоль
источник

RM

Roy Mustang in C++ Together 2.0
а не при форматировании
источник