所以,我在Python 3.4中做了一个游戏。在游戏中,我需要跟踪地图。它是从(0,0)开始并以各个方向继续,以过滤随机方式生成的连接房间的地图(只有下一个位置的正确匹配用于随机列表选择)。python内存使用量字典和变量大型数据集
我有几个类型的房间,其中有一个名字,和门的列表:
RoomType = namedtuple('Room','Type,EntranceLst')
typeA = RoomType("A",["Bottom"])
...
对于地图的那一刻我保持位置的字典和房间的类型:
currentRoomType = typeA
currentRoomPos = (0,0)
navMap = {currentRoomPos: currentRoomType}
我有循环产生9.000.000房间,测试内存使用情况。 当我运行它时,我获得了大约600和800Mb。 我想知道是否有一种方法来优化。
我试着用的,而不是做
navMap = {currentRoomPos: currentRoomType}
我会做
navMap = {currentRoomPos: "A"}
,但这并没有在使用一个真正的变化。
现在我想知道我是否可以 - 也应该 - 保留所有类型的列表,并为每种类型保留它发生的位置。但我不知道它是否会与python管理变量的方式有所不同。
这几乎是一个思想实验,但如果有任何有用的东西来自它,我可能会实现它。
我想这个职位只有2-d。对 ? –
字典是散列表,因此它们提供了快速查找,代价是内存使用的大量开销。你确定你需要一个散列表吗?我无法判断自己,因为你的代码没有展示出你可能想用你的地图做的所有可能的事情。 –
@TasosVogiatzoglou:确实,他们是。可能我会在稍后添加梯子,但目前,这是单一的水平。 – ShadowFlame