当我使用
{fmt}
库编译这段代码时,可执行文件的大小为255 KiB,而只使用iostream
头文件时,大小为65 KiB(使用GCC v11.2)。
time_measure.cpp
#include <iostream>
#include "core.h"
#include <string_view>
int main( )
{
// std::cout << std::string_view( "Oh hi!" );
fmt::print( "{}", std::string_view( "Oh hi!" ) );
return 0;
}
这是我的构建命令:
g++ -std=c++20 -Wall -O3 -DNDEBUG time_measure.cpp -I include format.cc -o runtime_measure.exe
{fmt}
库不是应该比 iostream
轻量级吗?还是我做错了什么?
编辑:通过在命令中添加 -s
以从可执行文件中删除所有符号表和重定位信息,使其大小为 156 KiB。但仍然比 iostream
版本多大约2.5倍。
fmt::print
替换cout
,这可能会更快一些。 - digito_evo