在变量中存储对数据库条目的引用的效率
本文关键字:引用 效率 数据库 变量 存储 | 更新日期: 2023-09-27 18:05:37
我目前正在制作一个简单的数据库结构,用于存储游戏引擎中使用的组件信息。
我有两个组成数据库的类:DBEntry_Name—组成数据库中的每个条目的类和NameDB—数据库本身。
我没有那么多的问题,但查询数据库条目的引用如何存储(在内存使用方面)在变量中。我的一些条目包含对完全不同数据库中的其他条目的引用。下面是一个典型条目的示例:
public class BuildingDB {
private static List<DBEntry_Building> AllBuildings = new List<DBEntry_Building>();
#region Towers
public static DBEntry_Building Tower = new DBEntry_Building {
ID = 1, // <== this is due to by replaced by a reference to the List index of the entry
Name = "Tower",
Prefab = Resources.Load("Prefabs/Tower") as GameObject,
Cost = 10,
BuildTime = 5.0f,
AttackSpeed = 1,
AttackDamage = 10,
AttackRange = 7,
ProjectileType = ProjectileDB.Rock, // <==== is this storing excess information? could we request the ID of the projectile and store that instead?
};
#endregion
}
我可以通过使用函数将DBentry交换为整数来替换我有问题的行,然后可以交换为数据库列表的索引,但这是必要的吗?我的怀疑是,ProjectileType将占用更多的内存比一个简单的int,因此为什么我问这个问题。
如何存储ProjectileType ?它的所有值也会被存储,还是会从弹丸数据库中检索?
谢谢。
正如我在评论中已经提到的。这取决于你瞄准的是哪个平台。最快的解决办法就是观察,或者如
所述…您不应该因为认为会获得性能增益而进行优化。有一些明显的优化(比如不在紧循环中进行字符串连接),但在可以测量之前,应该避免任何不明显的优化。~ 程序员SE
所以除非你知道你想要移植的目标平台,也就是手机移植,否则你无法处理额外的内存负载。或者至少可以衡量性能差异/对机器的影响,不值得考虑太多。
你可以做一个粗略的假设。我真的需要这些浮点数、精灵数和整数吗?或者我可以只凭身份证四处走动吗?我以后会加载对象吗?等。关于何时开始这类优化的其他一些技巧可以在这篇文章中找到,何时优化过早