Постоянное создание таблицы не убивает память

Моя программа на Lua начинается с объявления многомерной таблицы:

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 = {} пустых таблиц и загружает их со значениями в каждом кадре, что означает создание и загрузку сотен новых таблиц в каждую секунду. А там еще больше операций и загруженных таблиц!

Тем не менее, я не увидел никакого увеличения ни в использовании ОЗУ, ни в использовании процессора. В чем причина? Разве это не


person Zoltán Schmidt    schedule 13.08.2013    source источник
comment
Нет использования процессора во время работы Love2D? Вы должны увидеть небольшие всплески как в процессоре, так и в памяти. Потребление памяти Lua будет колебаться вверх и вниз по мере накопления и последующего сбора мусора (память, занятая мертвыми, недоступными объектами). Но вы не должны видеть здесь так много; ты вообще не торопись. Представьте, сколько таблиц создается за кадр в клиенте World of Warcaft с 50 аддонами, работающими во время рейдового боя на 40 человек...   -  person Mud    schedule 14.08.2013
comment
@Черт возьми, нет, я имел в виду, что, конечно, используется процессор, но я не увидел каких-либо существенных изменений в диспетчере задач Windows XP. в любом случае спасибо за ответ; Я забыл, что LUA такой компактный и быстрый. Возможно, это не лучший выбор для стресс-тестирования на двухъядерном процессоре с частотой 2,11 ГГц :о)   -  person Zoltán Schmidt    schedule 14.08.2013


Ответы (1)


Ответ пришел от Mud:

Вы должны увидеть небольшие всплески как в процессоре, так и в памяти. Потребление памяти Lua будет колебаться вверх и вниз по мере накопления и последующего сбора мусора (память, занятая мертвыми, недоступными объектами). Но вы не должны видеть здесь так много; ты вообще не торопись. Представьте, сколько таблиц создается за кадр в клиенте World of Warcaft с 50 аддонами, работающими во время рейдового боя на 40 человек...

person Zoltán Schmidt    schedule 14.08.2013