【发布时间】:2014-01-29 05:42:49
【问题描述】:
考虑到从给定结构中“获取”数据的两种可能方法时,我有一个关于性能影响的问题。假设 'name' 变量是相对于 'id' 的值而言的。
假设我有一个结构和枚举如下,
enum GenericId { NONE, ONE, TWO };
struct GenericTypeDefinition {
GenericId id;
const char name[8];
...
};
假设我想获得这个结构的名称。很简单,我可以只引用 GenericTypeDefinition 结构的实例并引用(或指向)名称成员。很简单。
现在这就是我的性能问题变得相关的地方。假设我需要创建数百个这样的实例,所有这些实例都将被锁定为一定数量的名称和一个唯一的 ID。这些实例将被称为整个程序中可能的“GenericTypeDefinition”的集合。请记住,“name”的值是相对于“id”的值的。我的问题是,如果我实现如下函数(并从结构中删除 name 变量),我是否能够节省一些内存,
struct GenericTypeDefinition { // 'name' is now removed.
GenericId id;
...
};
const char* Definition_ToString(GenericEnum e) {
switch (e) {
case NONE: return "Nothing";
case ZERO: return "Zero is not nothing.";
...
}
我认为它会是因为我无需在我创建的每个结构中存储字符串(长度为 8 个字节)。
如果您需要任何澄清,请询问,因为我无法找到更多相关信息。
【问题讨论】:
标签: c++ c performance