std :: embed增加了链接时间

时间:2019-02-03 09:18:55

标签: c++ performance file linker

我阅读了提案P1040R4 std::embed,并且了解到xxdbin2c之类的工具的实际问题是,它们在实际使用数据时会增加巨大的开销。

这正是std::embed在处理大文件时试图解决的问题,我的问题是,使用此提议的功能会影响多少编译和链接时间?

1 个答案:

答案 0 :(得分:2)

由于没有示例实现,因此无法准确说明。 但是,没有理由比读取文件要慢得多。

作为近似值,您可以使用ld -r -b binary foo.png -o foo.o并测量链接结果对象的时间。要访问数据,您可以使用符号

extern "C" const char foo_start;
extern "C" const char foo_end;

请注意,foo_startfoo_end不是指针,但它们的地址位于数据的开头/结尾处。