我对加载 C++ 生成的可执行文件有点困惑。我将一个巨大的常量字符串表放入目标可执行文件中。数据应嵌入可执行文件(无外部文件)中。
struct DataRecord
{
unsigned char n1;
unsigned char n2;
std::string text;
};
static const DataRecord data[] = {
{1, 2, "Hello"},
{1, 3, "Hi"},
{1, 4, "Bye"}
.
.
VERY LONG LIST
.
.
};
在我们运行代码编译生成代码后,可能会出现两种情况:
操作系统加载巨大的可执行文件(需要时间),然后运行程序,之后,程序就
data
可以使用数组了。操作系统加载巨大的可执行文件(需要时间),然后运行程序,之后,程序必须制作表格并加载字符串文字并构造这些
std::string
对象(需要时间)。
很明显,第二个比第一个慢。
- 如何知道哪一个会发生?
- 拥有大量嵌入式数据的最佳方法是什么(权衡:速度和空间)?
- 使用工具 objcopy 有用吗(我没有任何经验)?
我正在使用 gcc 4.7+,目标操作系统是 Windows/Linux/Android(NDK)