FB18 - Das Forum für Informatik

fb18.de / Off-Topic / Hard- und Softwarefragen

Process Memory auslesen mit Java? (erstmal unter Windows)

Process Memory auslesen mit Java? (erstmal unter Windows) 2010-03-15 12:40
7thiesse
Hallo Java Gurus,

ich habe bisher immer einen riesen Bogen um Java gemacht… und nun dachte ich mir "komm, wendeste doch mal an, was du hier an der Uni schon seit Jahren lernst".

Lange Rede, kurzer Sinn: Kaum habe ich angefangen stoße ich schon an eine Hürde, die mir das Google Orakel nicht sofort beantworten konnte: Wie lese ich Process Memory ausm RAM?

Ich gehe einfach mal davon aus, dass es nicht geht, weil Java ja so gebaut ist, dass es OS unabhängig funktioniert. Dennoch bin ich damit nicht zufrieden.

Meine Idee war es eine andere Programmiersprache zu verwenden (C++ oder VB) um ein Script zu schreiben, was es für mich tut. Dennoch wollte ich, bevor ich das tue, erst einmal nachfragen, ob Ihr eine bessere Lösung kennt?

Vielen Dank,

Der Arthur

RE: Process Memory auslesen mit Java? (erstmal unter Windows) 2010-03-15 13:11
tilo
Hilft dir das hier weiter?
http://www.roseindia.net/javatutorials/determining_memory_usage_in_java.shtml

RE: Process Memory auslesen mit Java? (erstmal unter Windows) 2010-03-15 13:43
Fred
Wie lese ich Process Memory ausm RAM?
Was genau meinst Du damit?

RE: Process Memory auslesen mit Java? (erstmal unter Windows) 2010-03-15 13:52
Wulf
Unter Linux kann man /proc/PROZESSID/mem öffnen, mit lseek, pread, mmap, o.ä. kann man dann speicher nach belieben auslesen.
Aber wie das mit Windows oder Java (oder beidem) geht, weiß ich nicht.

RE: Process Memory auslesen mit Java? (erstmal unter Windows) 2010-03-15 14:28
Anonymer User
http://java.sun.com/javase/6/docs/technotes/tools/share/jmap.html

RE: Process Memory auslesen mit Java? (erstmal unter Windows) 2010-03-16 10:55
7thiesse
Wie lese ich Process Memory ausm RAM?
Was genau meinst Du damit?

Naja ich möchte in der Lage sein, Daten aus meinem Arbeitsspeicher lesen zu können, mittells Zugriff über Addressen.

@ Rest:
vielen Dank, ich werde mich da mal durchklicken und feedback geben, sobald ich etwas weniger Klausurstreß habe.

Grüße

RE: Process Memory auslesen mit Java? (erstmal unter Windows) 2010-03-16 13:59
Fred
Naja ich möchte in der Lage sein, Daten aus meinem Arbeitsspeicher lesen zu können
Und warum möchtest Du das tun?

RE: Process Memory auslesen mit Java? (erstmal unter Windows) 2010-03-16 23:33
NaZo
Naja ich möchte in der Lage sein, Daten aus meinem Arbeitsspeicher lesen zu können, mittells Zugriff über Addressen.
Klingt irgendwie so, als wäre Java hier tatsächlich nicht unbedingt das Mittel Deiner Wahl.

RE: Process Memory auslesen mit Java? (erstmal unter Windows) 2010-04-08 13:45
Anonymer User
Doch klar, nur muste mittels JNI dir da 'ne entsprechende Bibliotek in c/c++ schreiben, die dir solche Funktionen für Java zur Verfügung stellt.

RE: Process Memory auslesen mit Java? (erstmal unter Windows) 2010-04-08 14:03
7thiesse
Klingt irgendwie so, als wäre Java hier tatsächlich nicht unbedingt das Mittel Deiner Wahl.

Daher reizt es mich ja. Mit C++ und paar Script Sprachen hab ichs schon gemacht. Nun bin ich auf dem Java Trip und möchte meine und Java's Grenzen ausreizen.

Danke für eure Antworten

RE: Process Memory auslesen mit Java? (erstmal unter Windows) 2010-04-08 15:27
NaZo
Hmmm, erklär doch mal, wofür das ganze überhaupt…

Man kann sicher für vieles eine Lösung finden, das heißt aber noch lange nicht, dass diese auch Sinn macht.
Eines der Konzepte von Java ist ja, dass es von diesen OS- und maschinennahen Speichergeschichten abstrahiert, warum sollte man also Java benutzen, wenn man auf dieser Ebene programmieren möchte.

Wenn Du Dir z.B. ein Programm schreiben möchtest, dass den Process Memory visualiert und die Oberfläche dafür möchtest Du in Java bauen, macht der Weg von "Anonymer User - 08.04.2010 13:45" sicher Sinn.

Wenn Du aber den Speicher für irgendwelche superschlauen Dinge manipulieren möchtest, oder Dein Algorithmus für irgendwas ganz anderes Daten benötigt, die Du nur durch Auslesen des Speichers erhälst, solltest Du Dein Programm vielleicht gleich in C schreiben.
Wenn Du aber unbedingt Java benutzen willst, ist nicht die Frage, wie übertrage ich meinen C-Algorithmus in Java, sondern was ist der Java-Weg, um meine Aufgabe zu lösen, und möglicherweise kommt dieser ja auch ohne das Auslesen des Speichers aus.