Intereting Posts
Простой способ узнать, является ли класс анонимным / объектом и получить конкретное имя класса из экземпляра в Котлине Обратный вызов конструктора с несколькими параметрами Котлин выполняет необязательное действие Использование с автоклином в Котлине Как получить различную реализацию функции верхнего уровня в Unit и InstrumentTests для Android UnsatisfiedDependencyException для приложения Spring Boot 2.0.0.M2 с использованием Kotlin Как настроить Spring Loaded с помощью Kotlin, Gradle и веб-фреймворка? Как я могу получить ссылку на Kotlin KClass по имени, когда не работает на JVM? Фрагмент с ViewPager с пустыми страницами после возвращения к нему из другого фрагмента Заменяйте двойным для каждого наблюдаемым Kotlin – общий параметр в List – сочетание Java и Kotlin Kotlin view object полное имя типа в студии Android в Mac OS RXJava – concat не работает Как эмулировать такое же поведение в котлине Почему Kotlin позволяет иметь два класса с одинаковым именем и пакетом в разных папках (например, main и androidTest)?

Kotlin для игры dev

Задний план:

Я всегда ищу язык для замены Java для разработки игр. Kotlin выглядит многообещающим с хорошей поддержкой IDE и взаимодействием Java. Но одним из убийц FPS для игры (особенно для Android) является использование GC. Таким образом, некоторые библиотеки (например, libgdx) используют пулы объектов, пользовательские коллекции и другие трюки, чтобы избежать частых запусков GC. Для Java это можно сделать ясным способом. Некоторые другие языки JVM поддерживаются с функциональной поддержкой с использованием большого количества GC по своей природе, поэтому этого трудно избежать.

Вопросов:

  1. Создает ли Kotlin какие-либо невидимые накладные расходы GC по сравнению с Java?
  2. Какие функции Котлина лучше избегать, чтобы иметь меньше работы GC?

    Как правило, Kotlin генерирует байт-код как можно ближе к тому, который генерируется Java. Например, если вы используете функцию как значение, будет создан внутренний класс, как в Java, но не более того. Есть также некоторые оптимизационные трюки, такие как IntArray и inline чтобы работать еще лучше.

    И, как сказал Питер-Лоури, всегда лучше измерить значения для вашего конкретного случая.

    Технически ваши вопросы, сравнивающие Kotlin с Java, спорны, они будут выполнять то же самое. Но Котлин будет лучшим опытом развития.

    Если Java хорош для написания игр, то Kotlin будет только лучше благодаря производительности разработчиков.

    Примечание. Игровая библиотека LWJGL 3 частично использует Kotlin, а статистика GitHub показывает, что 67,3% кода Kotlin (модуль шаблона выглядит в основном Kotlin). Поэтому просить людей, которые работают с LWJGL, даст вам лучший ответ на этот вопрос, поскольку у них есть большой опыт в этой области.

    Статистика Github для LWJGL3