Java Android的LibSVM-垃圾收集延迟

Java Android的LibSVM-垃圾收集延迟,java,android,performance,garbage-collection,libsvm,Java,Android,Performance,Garbage Collection,Libsvm,我正在使用LibSVM.jar并尝试在Android上加载/运行SVM模型 在加载模型时,垃圾收集器逐渐占用越来越多的时间。一旦加载了模型,甚至在我对任何数据运行它之前,GC延迟达到峰值,但垃圾收集器继续频繁运行。我不确定所有的内存可能被分配到哪里(然后再次被释放) 模型负载开始时的Logcat输出: D/dalvikvm( 4958): GC_FOR_ALLOC freed 1883K, 34% free 17922K/26752K, paused 22ms, total 22ms D/dal

我正在使用LibSVM.jar并尝试在Android上加载/运行SVM模型

在加载模型时,垃圾收集器逐渐占用越来越多的时间。一旦加载了模型,甚至在我对任何数据运行它之前,GC延迟达到峰值,但垃圾收集器继续频繁运行。我不确定所有的内存可能被分配到哪里(然后再次被释放)

模型负载开始时的Logcat输出:

D/dalvikvm( 4958): GC_FOR_ALLOC freed 1883K, 34% free 17922K/26752K, paused 22ms, total 22ms
D/dalvikvm( 4958): GC_FOR_ALLOC freed 1963K, 33% free 18007K/26752K, paused 24ms, total 24ms
D/dalvikvm( 4958): GC_FOR_ALLOC freed 1886K, 33% free 18152K/26752K, paused 26ms, total 26ms
D/dalvikvm( 4958): GC_FOR_ALLOC freed 1943K, 32% free 18257K/26752K, paused 28ms, total 28ms
模型负载结束时的Logcat输出,在以下情况下无限期继续:

D/dalvikvm(12382): GC_FOR_ALLOC freed 4256K, 12% free 75103K/84828K, paused 545ms, total 545ms
D/dalvikvm(12382): GC_FOR_ALLOC freed 5535K, 14% free 73726K/84828K, paused 548ms, total 548ms
D/dalvikvm(12382): GC_FOR_ALLOC freed 4217K, 12% free 75076K/84828K, paused 534ms, total 534ms
D/dalvikvm(12382): GC_FOR_ALLOC freed 5510K, 14% free 73726K/84828K, paused 479ms, total 479ms

我正在尝试分析垃圾收集以尝试查找错误。如果我发现任何东西,我将返回这里发布-在此期间的任何帮助都将不胜感激

您可以使用Android中原始基于c的libsvm的JNI包装器,而不是使用.jar文件(由于Java的原因,速度较慢):

我已经使用了一段时间,发现它的速度对于大多数应用来说都是可以接受的