例如 OGRE3D 使用字符串来标识对象,因此每次代码使用对象的名称(字符串)对对象执行某些操作时,它都必须执行字符串操作,并且由于 3D 引擎对速度非常敏感,因此如何这是一个很好的方法吗?
当计算机必须对字符串进行操作时,它会按顺序执行,一个字节接一个字节,因此如果字符串较长,它会花费更多的 CPU 周期...
在代码中使用纯变量名而不是使用字符串标识符会不会更快?
最佳答案
是的,在代码中使用纯变量名而不是使用字符串标识符会更快。但有时您在构建时不知道这些名称。然后您需要一种动态处理名称的方法。另一种方法可能是只使用原始整数而不是字符串。可以使用散列或字符串查找表生成整数值。但是使用字符串不会严重减慢你的程序,除非你有很多非常长的字符串,它们都有相同的起始字符,最后只有几个不同的字符。通常,比较字符串应该相对较早地导致错误结果,并且只有对于“真正匹配”,才需要完全比较两个字符串。然而,比较一些字符串以在组织良好的搜索结构(如树等)中查找对象并不是 3D 引擎的瓶颈,因此不应成为优化问题的一部分
关于c++ - 使用字符串识别对象 : what's the purpose?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4013250/