Поиск по сайту
Результаты поиска по тегам 'Table'.
Найдено 5 результатов
-
Добрый день, Я пишу выдавальщик предметов с огромного кол-ва слотов, сейчас программа работает медлеено и я ищу способы для ускорения работы с транспозерами и таблицами сейчас у меня 4 транспозера с четырьмя сундуками на каждом. В каждом сундуке по 117 слотов и в общем 1872 ячейки в системе. при запуске программы, после выполнения поиска и после выдачи предмета выполняется этот код: function chest.getStorageItems() local tpTable = {} local thisItems = {} local allItems = {} for k in component.list("transposer") do table.insert(tpTable,k) end for index, tp in pairs(tpTable) do for i=0,5,1 do if (component.invoke(tp, "getInventoryName", i)) and (i~=5) then thisItems = component.invoke(tp, "getAllStacks", i).getAll() for o,thisItm in pairs(thisItems) do if (thisItm.name~="minecraft:air") then local this = false for g,allItm in pairs(allItems) do if ((this==false) and (allItm.name == thisItm.name) and (allItm.label == thisItm.label)) then this = true allItm.count = allItm.count+thisItm.size end end if this == false then table.insert(allItems, {name = thisItm.name, count = thisItm.size, label = thisItm.label}) end end end end end end return allItems end Сверху идёт провод, а выдача происходит на север. Каждый раз проверять сундуки надо потому что поставка предметов идёт не через систему и во время работы программы нужный предмет может появиться. Это обновление сейчас занимает 2-3 секунды, можно ли как-то ускорить этот процесс?
-
Мне нужно присвоить переменной grow значение метадаты блока из таблицы geolyzer.analyze(), но не знаю как это сделать. То что должно содержатся в grow выделено зелёным прямоугольником на изображении. Немного переборщил с размером изображения.
-
Мне нужен самый ресурсосберегающий (в плане процессорного времени и объема энергонезависимой памяти) способ сохранения одномерного целочисленного массива в файл и его последующее чтение для воссоздания исходного массива.
-
В общем идея такая: игрок посылает запрос на крафт определенного предмета, робот ищет ингредиенты в сундуках и крафтит запрошенный предмет. Давно бьюсь над способом размещения метаданных предмета в таблице, но что-то голова не варит. Есть код, который принимает системное имя предмета и если рецепт есть в списке - находит в сундуках ингредиенты и крафтит по рецепту. http://pastebin.com/E5yZVpUA Надо, чтобы в рецептах можно было указывать метаданные предмета, например вот так: REPICES = { --рецепт1 [{"NAME", "META"}] = { {"NAME", "META"}, {"NAME", "META"}, {"NAME", "META"}, {"NAME", "META"}, {"NAME", "META"}, {"NAME", "META"}, {"NAME", "META"}, {"NAME", "META"}, {"NAME", "META"} }, --рецепт2 [{"NAME", "META"}] = { {"NAME", "META"}, {"NAME", "META"}, {"NAME", "META"}, {"NAME", "META"}, {"NAME", "META"}, {"NAME", "META"}, {"NAME", "META"}, {"NAME", "META"}, {"NAME", "META"} } } 1-9 {"NAME", "META"} это список ингредиентов. [{"NAME", "META"}] - результат крафта
-
Для работы крутой черепашки мне потребовалось быстро сериализировать и передавать по сети большие объемы информации. 3д массивы, таблицы, и прочее прочее. Внутренние методы СС Textutils.serialize не подходили, из за медленного оператора ".." , который добавлял в итоговую строку символы. Поискав готовые решения на сайте lua-users, я нашел подходящий код для сохранения таблиц в файл, и переписал его под работу со строкой. http://pastebin.com/AYB7u25g Код: Userdata, Функции и метотаблицы не сохраняются Сохраняются только простые значения как таблицы, строки, числа а так же true\false Замечу, что в моем коде для сбора строки используется таблица и метод table.concat(), который увеличивает скорость работы в разы. Код можно использовать как в CС так и в OС. Он добавляет новые методы в глобальную таблицу table и вызывается так: Результаты для двухмерного массива с 1 000 000 полей и замеры времени выполнения: //CC textutils serialize(): 45.94 unserialize(): 1.73 //OC serialization serialization.serialize(): 40.00 serialization.unserialize(): 0.87 //Krutoy table.tostring: table.toString(): 1.80 table.fromString(): 1.19 Пруф для меньшего количества полей: http://ideone.com/ICpS0L
- 8 ответов
-
- 4
-
- performance
- Serialization
-
(и ещё 4 )
Теги: