首页 > 解决方案 > 有一个表或一个对象更有效吗?

问题描述

使用表而不是对象会更节省内存,或者更重要的是,速度效率更高吗?作为参考,这里是我将使用的那种表的示例。

[3、4、5、-1、2、真、32]

或以对象形式:

{x1=3, y1=4, x2=5, y2=-1, GID=2, alive=true, LID=32}

另外,拥有单一类型的表是否比拥有多种类型(如数字和布尔值)更有效。

标签: performancelualua-table

解决方案


Lua 只有表。您可能正在谈论表的数组部分和键/值对部分之间的区别。Lua 在这两个东西之间没有语法上的区别。

从技术上讲,访问表的数组部分比访问键/值对部分更快。但是,除非您正在编写高性能代码,并且有问题的代码位于需要每毫秒执行数百次的“热循环”中,否则您不必在意。编写代码,使您正在做的事情变得最明显。编写最适合理解算法的代码。

如果与更不透明的“表格形式”相比,“对象形式”让用户更清楚some_obj.GID试图访问的内容some_obj[5],那么使用后者而不是前者。除非你手头有实际的性能指标,否则更喜欢易于理解的代码。


推荐阅读