所以,我在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