C 示例如何从XML文件中读取多个值,并将它们与一个值进行有效比较
这确实是一个两个尺度的问题。我们如何从XML文件中高效地读取多个值,然后如何将它们与不同的值进行比较 尽可能有效地完成这项工作是非常重要的,这才是真正的问题所在 以下是现有代码的示例:C 示例如何从XML文件中读取多个值,并将它们与一个值进行有效比较,c,xml,C,Xml,这确实是一个两个尺度的问题。我们如何从XML文件中高效地读取多个值,然后如何将它们与不同的值进行比较 尽可能有效地完成这项工作是非常重要的,这才是真正的问题所在 以下是现有代码的示例: if (strcasecmp(stMsgData->paramName,"Device.a.b") == 0) { ret = aFunction(); } else if (strcasecmp(stMsgData->paramName,"Device.z.o
if (strcasecmp(stMsgData->paramName,"Device.a.b") == 0)
{
ret = aFunction();
}
else if (strcasecmp(stMsgData->paramName,"Device.z.o") == 0)
{
ret = bFunction();
}
else if (strcasecmp(stMsgData->paramName,"Device.g.j") == 0)
{
ret = cFunction();
}
为了更好的例子,我们假设Device.a.b实际上是Device.DeviceInfo.ManufacturerOUI。我们要实现的主要功能是“Device.DeviceInfo.ManufacturerOUI”也可以是“Device.DeviceInfo.OUI”或“Device.DeviceInfo.ManfOUI”等等。由于我们希望避免重新编译和去更新可能600项或更多项的代码,最好的方法似乎是从XML(如果更合理的话,欢迎XML的替代品)文件进行比较。问题是,如何以最有效的方式实现这一点(示例代码),以及是否有任何进一步的建议
非常感谢。简言之:这里的性能问题是虚假的,从文件读取比比较和几个分支慢很多 实践关注:过早优化 真的,这整件事充满了过早优化的味道尤其是,因为您正在从文件读取此数据。因此,如果您只是从文件中读取值,那么性能将主要取决于您读取文件的速度,因为:
- 文件访问(通常)比比较慢很多,除非它是由操作系统缓存的
- 正确读取XML要比这些类型的比较慢得多。相对而言,快速读取XML文件仍然非常缓慢
e、 g.“Device.DeviceInfo.ManufacturerOUI”和“Device.DeviceInfo.OUI”都可以映射到ID
Device\u INFO\u OUI
简言之:这里的性能问题是虚假的,从文件读取的速度比比较和几个分支慢
实践关注:过早优化
真的,这整件事充满了过早优化的味道尤其是,因为您正在从文件读取此数据。因此,如果您只是从文件中读取值,那么性能将主要取决于您读取文件的速度,因为:
- 文件访问(通常)比比较慢很多,除非它是由操作系统缓存的
- 正确读取XML要比这些类型的比较慢得多。相对而言,快速读取XML文件仍然非常缓慢
设备信息OUI