Vermeiden Sie ein "out of memory Fehler" in Java(eclipse), bei der Verwendung von großen Daten-Struktur?

OK, also Schreibe ich ein Programm, dass leider verwenden muss, die von einem riesigen Daten-Struktur, um seine Arbeit abzuschließen, aber es nicht mit einem "out of memory "- Fehlermeldung" bei der Initialisierung. Ich verstehe zwar vollkommen, was das bedeutet und warum es ein problem ist, ich habe Schwierigkeiten zu überwinden, da mein Programm nutzen muss, diese große Struktur, und ich kenne keinen anderen Weg, um es zu speichern.

Erst das Programm Indizes einen großen Korpus von text-Dateien, die ich bereitstellen. Dies funktioniert sehr gut.

Dann wird dieses index zu initialisieren, einem großen 2D-array. Dieses array wird n2 Einträge, wo "n" ist die Anzahl der eindeutigen Wörter im Korpus von text. Für ein relativ kleines Stück, ich Teste es o n(über 60 Dateien), die es braucht, um ungefähr 30,000x30,000 Einträge. Dies wird wahrscheinlich größer sein, sobald ich es auf meine volle beabsichtigten corpus zu.

Es wiederholt nicht jedes mal, nachdem Sie Indizes während der Initialisierung der Datenstruktur(daran gearbeitet werden, später).

Dinge, die ich getan habe sind:

  • umzukrempeln, meinen code zu verwenden, eine primitive int[] statt einer TreeMap
  • redundante Strukturen, etc...
  • Auch, ich habe das Programm mit-Xmx2g max aus meinen reservierten Speicher

Ich bin ziemlich zuversichtlich, dass dies nicht eine einfache Zeile von code-Lösung, aber ist wahrscheinlich zu verlangen, dass ein sehr neuer Ansatz. Ich bin auf der Suche nach was, dass der Ansatz, irgendwelche Ideen?

Dank,
B.

  • Beachten Sie, dass der Start von Eclipse mit diesen Argumenten ist nicht zu helfen, es sei denn, dein code ist ein Eclipse-plugin. Wenn Sie nur mit Eclipse als IDE, dann müssen Sie ändern, um die Konfiguration auszuführen, die von Ihrer Anwendung, nicht auf den Start von Eclipse.
  • AH, danke Joachim. Ich habe nicht lief separat und es gibt mir immer noch den selben Fehler(obwohl es viel länger dauert, um dorthin zu gelangen, ich glaube, das ist eine Verbesserung)
InformationsquelleAutor gnomed | 2010-03-17
Schreibe einen Kommentar