DBIS EPub

Performanzaspekte bei der Programmierung mit Java - Eine eingehende Untersuchung von Threads, Garbage Collection und Objekt-Pools

Kreher, Ulrich (2002) Performanzaspekte bei der Programmierung mit Java - Eine eingehende Untersuchung von Threads, Garbage Collection und Objekt-Pools. Diploma thesis, Universität Ulm.

[img] PDF - Registered users only - Requires a PDF viewer such as GSview, Xpdf or Adobe Acrobat Reader
2265Kb

Abstract

Die Programmiersprache Java™ erfreut sich steigender Beliebtheit, auch was die Realisierung komplexer Software-systeme anbelangt. Gleichzeitig wird es aber auch wegen seiner schlechten Performanz kritisiert. Die Hauptursache hierfür wird in der automatischen Speicherbereinigung (Garbage Collection) vermutet, was daran liegt, daß nur sehr wenig über sie bekannt ist. Dasselbe gilt auch für Threads. Für sie gibt es in Java zwar eigene Objekte, es ist allerdings oftmals unklar, wie diese mit Betriebssystem-Threads zusammenhängen. Deshalb werden beide Aspekte in dieser Arbeit eingehend untersucht. Dabei geht es aber nicht nur um die Darstellung der internen Funktionsweise der Java-Laufzeitumgebung sondern auch darum, welchen Einfluß die Programmierung auf die Performanz hat. Dazu werden zahlreiche Hinweise und Richtlinien gegeben, die bei der Erstellung und Implementierung eines performanten Softwaresystems in Java helfen können. Ein Aspekt ist der Softwareentwicklungsprozeß selbst. Performanz ist keineswegs erst in der Implementierung relevant, sondern sollte erklärtes Ziel aller Entwicklungsphasen sein. Dies gilt besonders beim Einsatz von Java, da diese Sprache nicht dieselben Optimierungsmöglichkeiten bietet wie herkömmliche Sprachen (z.B. C++). Nebenläufigkeit ist eine Möglichkeit zur Steigerung der Leistungsfähigkeit. In Java kann dies sehr leicht erreicht werden, da Threads sehr gut in die Sprache integriert sind. Allerdings sind Threads nicht so plattformunabhängig wie es im Zusammenhang mit Java vielleicht erwartet wird. Zudem ist bei ihrer Verwendung auf korrekte Synchronisation zu achten, damit keine Inkonsistenzen und Ver-klemmungen auftreten. Der Betrachtung von Threads schließt sich eine detaillierte Darstellung der Garbage Collection an. Da das in einer Java Virtual Machine (JVM) eingesetzte Verfahren nicht genau spezifiziert und Gegenstand zahlreicher Optimierungs-bemühungen ist, gibt diese Arbeit auch einen Überblick über alle gebräuchlichen Speicherbereinigungsverfahren. Dadurch werden die Einflußmöglichkeiten des Programmierers auf die Garbage Collection verständlich. Besonders deutlich wird dies bei Objekt-Pools. Diese sollen eigentlich die Performanz verbessern, bewirken aber häufig genau das Gegenteil. Abschließend erfolgt ein Ausblick auf weitere Performanzaspekte, die insbesondere bei der Implementierung eines Workflow-Management-System (WfMS) in Java relevant sind.

Item Type:Thesis (Diploma)
Subjects:DBIS Teaching > Internal Work
ID Code:512
Deposited By: Eva Mader
BibTex Export:BibTeX
Deposited On:17 Mar 2009 23:01
Last Modified:14 Oct 2011 10:27

Repository Staff Only: item control page