KeyStore.load führt zu GC_CONCURRENT

M

maniac205

Ambitioniertes Mitglied
10
Hallo,

ich programmiere derzeit eine App die ein PKCS12 File in einen KeyStore laden soll.

Soweit funktioniert auch alles.

Nur bekomme ich in der LogCat die Meldung "GC_CONCURRENT..." was hat es mit dieser auf sich? Lässt sich das Problem umgehen?

Die Ladezeit kann sich noch verbessern, da ich derzeit den Emulator benutze. Auf Android 4.0.4.

Hier noch die LogCat und Code Beispiele:

LogCat:
Code:
05-15 12:14:12.427: D/CertHelper.loadCertIntoKeyStore (String path, String passwort)(13408): fileIn.getAbsolutePath(): = /data/data/andro4.test.fhg/app_certdir/Contacts_Android.pfx
05-15 12:14:12.865: D/dalvikvm(13408): GC_CONCURRENT freed 202K, 3% free 12812K/13127K, paused 7ms+6ms
05-15 12:16:28.704: D/CertHelper.loadCertIntoKeyStore (String path, String passwort)(13408): PKCS12 in KeyStore

Android/Java:
Code:
	public void loadCertIntoKeyStore(String filePath, String passwort)
			throws IOException, NoSuchAlgorithmException, CertificateException {

		String tag = "CertHelper.loadCertIntoKeyStore (String path, String passwort)";

		char[] charArrayPasswort = passwort.toCharArray();
		File fileIn = new File(filePath);

		Log.d(tag, "fileIn.getAbsolutePath(): = " + fileIn.getAbsolutePath());

		if (!fileIn.canRead()) {
			Log.e(tag, "File kann nicht gelesen werden! - " + filePath);
			throw new IOException("Can't read File!");
		}

		pkcs12ks.load(new FileInputStream(fileIn), charArrayPasswort);
		Log.d(tag, "PKCS12 in KeyStore");
		
	}
 
Zuletzt bearbeitet:
Das heisst nichts weiter, als dass eine (nebenläufige) Garbage Collection ausgeführt wird. Das passiert in Java halt, wenn Speicher verbraucht wird und das System meint, etwas davon wieder frei machen zu müssen. Ist der Keystore, den du da lädst, sehr groß? Gut möglich, dass die dort verwendeten Datenstrukturen sich mit deiner Datei schwer tun...

Nebenläufige GCs sind eigentlich harmlos. Da steht ja auch daneben, dass nur wenige msec verbraucht wurden. Wegen solcher Meldungen mache ich mir normalerweise keinen Kopf.
 
  • Danke
Reaktionen: maniac205
Danke für die schnelle Antwort!

Eigentlich ist die Datei nicht Groß 2KB.

Ist es normal, dass das Laden im schnitt 1:30min benötigt? (Im Emulator)
Hab eigentlich nen schnellen Rechner. (Intel Xeon E5430 und 4GB Ram)

Dachte die lange Ladezeit hängt vielleicht mit dem GC_CONCURRENT zusammen.
 
Ich bin mit den Innereien des KeyStoreLoaders nicht vertraut, aber wenn der die enthaltenen Zertifikate überprüfen sollte, dann macht das System DNS Lookups und so weiter, und die können durchaus Zeit verbrauchen - vor allem, wenn die andere Seite lahm oder tot ist. Aber mit der GC hat das ziemlich sicher nichts zu tun.
 
  • Danke
Reaktionen: maniac205

Ähnliche Themen

S
Antworten
0
Aufrufe
592
Sergio13
S
A
Antworten
1
Aufrufe
583
swa00
swa00
SpeedySix
Antworten
13
Aufrufe
1.400
jogimuc
J
Zurück
Oben Unten