Tag: 垃圾收集

Kotlin有垃圾收集器吗? 如果是这样,基于哪种算法?

我正在Kotlin上做一个学校项目,需要知道它如何处理垃圾。 它在垃圾回收器中与Java相似吗?

Kotlin为游戏开发

背景: 我一直在寻找一种语言来取代Java来进行游戏开发。 Kotlin看起来很有希望,拥有良好的IDE支持和Java互操作性。 但是一个游戏的FPS杀手(特别是在Android上)是GC的使用。 所以,一些库(如libgdx)正在使用对象池,自定义集合和其他技巧来避免GC频繁运行。 对于可以以清晰的方式完成的Java。 一些其他的JVM语言,特别是在功能上支持使用大量的GC,因此很难避免。 问题: 与Java相比,Kotlin是否创造了任何看不见的GC开销? Kotlin的哪些功能更好地避免GC工作量减少?

背景部分并发标记扫描GC

我正在使用Kotlin Fuel框架来进行REST API调用。 事实上,一切都工作得很好,当时的API有HTTP URI。 但是一旦uris被制作成具有SSL证书安装的HTTP,我就无法从亚马逊服务器上下载镜像了。 我得到以下错误,并阻止用户界面。 有没有人有关于如何解决这个问题的线索? 11-11 12:26:34.865 5060-5071/? I/art: Background partial concurrent mark sweep GC freed 39770(1365KB) AllocSpace objects, 2(136KB) LOS objects, 39% free, 4MB/7MB, paused 10ms total 10ms 11-11 12:26:43.525 5060-5071/? I/art: Background sticky concurrent mark sweep GC freed 111790(2MB) AllocSpace objects, 0(0B) LOS objects, 25% free, 7MB/9MB, paused 10ms total […]

为什么Gradle构建的Kotlin源代码暂停〜3秒“强制System.gc()”?

每个构建需要额外的3-4秒,在日志输出打印以下后立即暂停。 [LIFECYCLE] [org.jetbrains.kotlin.gradle.plugin.KotlinGradleBuildServices]强制System.gc() 为什么要“强迫”呢? 我如何避免这种情况,加快我的构建?

Kotlin的Float,Int等被优化为JVM中的内置类型吗?

我是Kotlin的新手,AFAICT的语法只支持Int,Float等对象版本,没有Java的相应int和float原语。 但是,如果可能的话,编译器或JVM是否优化使用原始类型? 我担心,如果我在一个从游戏主循环调用的函数中使用局部变量,那么如果JVM每次都要创建一个对象而不是使用原始类型,则可能会导致GC口吃。

Kotlin:避免创建FqNameUnsafe和FqName

我注意到我的应用程序创建了大量的FqNameUnsafe和FqName实例。 什么时候创建? 我怎样才能避免这些创造? (我需要减少我的应用程序中的垃圾创建。)