Поиск соседей и соседей соседей блока...

Ну вот. При выводе сообщений в консоль подсчет происходит почти в 50~60 раз дольше...
2017-12-01_20.52.13.png
 
Да ты что? А вывод, по твоему, функция бесплатная?
И вообще, спасибо за скрин диспетчера задач, но я просил дамп. Конечно, память не будет скакать, GC её чистит
 
...
Самому что ли трудно посмотреть?
 
Последнее редактирование:
Kotlin:
private fun search(world: HWorld) {
        var x = 0
        var tile = world.getTile(x, 0, 0) ?: return


        while (tile is ResourceNetworkParticipant) {
            val position = world.bakeAbsoluteIntPosition(x, 0, 0)
            if (result.contains(position)) return
            result += position
            if (result is NetworkDeadEnd) {
                return
            }
            world.pushMatrix()
            repeat(4) {
                world.rotate(90f, 0f, 0f, 1f)
                world.pushMatrix()
                world.translate(1f, 0f, 0f)
                search(world)
                world.popMatrix()
            }
            world.popMatrix()
            x++
            tile = world.getTile(x, 0, 0) ?: return
        }
    }
Так вроде по-красивше
 
1. Рекурсия.
2. Какие-то матрицы. Даже не из пула достаешь небось.
 
1. Стэк вмещает около 9к фреймов, ну. Думаю мне хватит:)
2. Ну один мир = одна матрица. Единственное они копируются когда в стэк кладутся. В стэке они должны быть имутабельны. Когда я достаю из стэка я присваисваиваю текущей. Смысл пула немного теряется.
 
Перед тем, как пушишь матрицу в стек, ты создаешь новый объект. А теперь представь все дерево. Каждый узел - создание новой матрицы. А если доставать из пула, то число необходимых матриц будет равняться глубине дерева.
 
Не нафиг. Я не представляю как осуществлять поиск по пулу и при этом ещё сохранять иммутабельность. Куда проще и понятней делать массив флоатов и при пуше сувать туда значения матрицы, а при попе доставать соответственно. Если глубина 2-3 узла конечно жирно немного, но при большой глубине лучше пула т.к. быстрее и также не генерирует мусор.
 
Сморозил какой-то бред. Ты не понял для чего нужен пул? Какой еще поиск?
 
А, понял. Ты захотел объеденить стэк матриц и пул матриц, используя массив флоатов? Ну если использовать trove, будет ниче, наверное. Правда неудобно.
 
Сморозил какой-то бред. Ты не понял для чего нужен пул? Какой еще поиск?
Я чот подумал что ты хочешь там матрицы с уже нужными значениями хранить. Вот отсюда и поиск.
 
Назад
Сверху