performance - 有一个表或一个对象更有效吗?
问题描述
使用表而不是对象会更节省内存,或者更重要的是,速度效率更高吗?作为参考,这里是我将使用的那种表的示例。
[3、4、5、-1、2、真、32]
或以对象形式:
{x1=3, y1=4, x2=5, y2=-1, GID=2, alive=true, LID=32}
另外,拥有单一类型的表是否比拥有多种类型(如数字和布尔值)更有效。
解决方案
Lua 只有表。您可能正在谈论表的数组部分和键/值对部分之间的区别。Lua 在这两个东西之间没有语法上的区别。
从技术上讲,访问表的数组部分比访问键/值对部分更快。但是,除非您正在编写高性能代码,并且有问题的代码位于需要每毫秒执行数百次的“热循环”中,否则您不必在意。编写代码,使您正在做的事情变得最明显。编写最适合理解算法的代码。
如果与更不透明的“表格形式”相比,“对象形式”让用户更清楚some_obj.GID
试图访问的内容some_obj[5]
,那么使用后者而不是前者。除非你手头有实际的性能指标,否则更喜欢易于理解的代码。
推荐阅读
- android - 如何从工具栏中删除不必要的边距
- sql - 根据历元计算经过的时间百分比
- vb.net - 如何检查列表是否包含VB.Net中的另一个列表项
- symfony - 如何解决 CSRF 令牌无效
- c++ - 在运行时,std 库何时完全初始化以便在不破坏代码的情况下使用它?
- linux - 安装一个使用 wget 下载的 RPM 文件
- perl - 在 Perl 中使用 system() 命令时,如何将 STDERR 重定向到 STDOUT?2>&1 解决方案不起作用
- java - 在另一个类中创建一个类的对象?
- c# - 为什么 List.All(a.this != that) 优于 !List.Any(a.this = that)
- python - 如何允许 python 应用程序更改系统时间