2015-05-21 2 views
0

Я использую LibSVM.jar и пытаюсь загрузить/запустить SVM-модель на Android.LibSVM для Android - задержка сбора мусора

При загрузке модели сборщик мусора постепенно занимает все больше времени. Как только модель загружена, и до того, как я даже запустил ее на любых данных, задержка 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 

Я пытаюсь профилировать сбор мусора, чтобы попытаться и найти ошибку. Вернусь сюда, чтобы опубликовать, если я найду что-нибудь - любая помощь тем временем будет очень признательна!

ответ

0

Вместо того, чтобы использовать .jar файл (медленно из-за Java), вы можете использовать эту JNI оболочку исходного с-на основе libsvm в Android: https://github.com/yctung/AndroidLibSvm

Я использовал это на некоторое время и нашел скорость вполне приемлемый для большинства приложений.

Смежные вопросы