常量表创建不会杀死内存

时间:2013-08-13 22:59:59

标签: lua repeat lua-table love2d

我的Lua程序首先声明一个multidim表:

function love.load()

-- változók deklarálása

Maximum_X = 32                  -- a teljes játéktér mérete
Maximum_Y = 16

i = 0                           -- ciklusváltozók
j = 0

-- játéktér létrehozása

MapTable = {}

for y = 1,Maximum_Y do

    local row = {}

    for x = 1,Maximum_X do

        row[x] = 2          -- table.insert helyett
    end

    MapTable[y] = row       -- table.insert helyett     
end

end

然后,对于一个实验,我为每个可能的框架做元素声明。

function love.update(dt)

    for y = 1,Maximum_Y do

        local row = {}

        for x = 1,Maximum_X do

            row[x] = 2          
        end

        MapTable[y] = row           
    end

end

理论上,它创建了16个row = {}个空表,并在每个帧中上传值,这意味着每秒创建和上传数百个新表。还有更多的操作和上传的表格!

然而,我无法看到RAM使用率和处理器使用量都没有增加。什么原因?不是

1 个答案:

答案 0 :(得分:0)

答案来自Mud:

  

你应该看到CPU和内存都有轻微的瑕疵。 Lua的内存消耗将随着垃圾(由死亡,无法访问的对象占用的内存)累积并随后收集而上下摇摆。但你不应该在这里看到那么多;你根本就没有推动它。想象一下,在World of Warcaft客户端中,每个帧创建了多少个表,在40人突袭战斗期间运行了50个插件......