Java Applet - Performance

sianon

Lt. Junior Grade
🎅Rätsel-Elite ’24
Registriert
Jan. 2008
Beiträge
310
Moin,
ich habe ein Problem beim Ausführen eines Java Applets mit Hilfe von Textpad. Im abgesicherten Modus, sprich ohne Grafiktreiber funtkioniert das Ganze wunderbar (hohe Frames etc.). Im normalen Betrieb sind die FPS im Keller.

Kurzinformation zu meinem Programm:
- Primär verwendeter Datentyp: Liste
- Graphische Ausgabe über Applet
- Aquarium bzw. Artificial Life Simulation mit Schwarmverhalten, Paarungsverhalten und Aufessen
- Das Aquarium ist nur ein dummer Kasten mit Kreisen drin, also einfach visualisiert, nichts Komplexes

Meine Grafikkarte: Radeon HD 5870 , CPU: Phenom 2 x4 940 @ 3,513MHz, OS: Windows 7 64 Bit

Danke für eure Lösungsvorschläge,
sianon
 
ich habe ein Problem beim Ausführen eines Java Applets mit Hilfe von Textpad

Muss es Textpad sein? Hast du auch andere Erfahrungen? Andersherum gesagt, sind grafische Darstellungen in Applets, und sind diese noch so einfach, immer mit einem leichten Ruckelproblem konfrontiert. Für echt mediale Inhalte empfehle ich was anderes, z.B. Flash.

Andersherum betrachtet, könnte es sein, dass du irgendeinen unnötig viel Speicher fressenden Prozess am laufen hast?
 
sianon schrieb:
Kurzinformation zu meinem Programm:
- Primär verwendeter Datentyp: Liste
- Graphische Ausgabe über Applet
- Aquarium bzw. Artificial Life Simulation mit Schwarmverhalten, Paarungsverhalten und Aufessen
- Das Aquarium ist nur ein dummer Kasten mit Kreisen drin, also einfach visualisiert, nichts Komplexes
Die wichtigste Information hast du vergessen, wie erfolgt die Grafikausgabe? Sprich wie zeichnest du auf was? Da es ja im abgesicherten Modus besser zu laufen scheint wird das wohl irgendwas damit zu tun haben(im abgesicherten Modus ist ja kein Aero installiert).
 
public void zeichneDich(Color c)
{

g.setColor(Color.blue);
// sichtkegel();
g.setColor(c);
if(age!=10&&java.lang.Math.random()<0.0001)
age++;
if(java.lang.Math.random()<0.001)
fr=true;
if(r<100)
{
cou++;
}
if(cou>=1000)
{
g.setColor(Color.blue);
g.drawOval(x,y,(int)(r-z*0.05),(int)(r-z*0.05));
r=r+1;
cou=0;
g.setColor(c);
}

g.drawOval(x,y,(int)(r-z*0.05),(int)(r-z*0.05));
// sichtkegel();

}

*EDIT:

import java.awt.*;
import java.awt.event.*;
import java.applet.*;

public class AL extends Applet implements ActionListener

Graphics g;

g= getGraphics();

Und hier wird das Graphics Objekt an meine Fische vererbt:

liste.insertBehind(new Cre(g,größe,xk,yk,zk,dxk,dyk,dzk,vfr,sw));

public Cre(Graphics pg,int pradius, int px, int py,int pz,int pdx,int pdy,int pdz,boolean pfr,int sichtweite)
 
Zuletzt bearbeitet:
Da dein Programm im abgesicherten Modus wie gewünscht zu funktionieren scheint, würde ich den Rechner gänzlich auf optimierung der Performance prüfen. Ein echtes Problem auf Codebasis sehe ich nicht, und ist mir so jetzt auch keines bekannt.
 
Wo soll ich prüfen? Bzw. woran könnte es liegen?
 
Mach mal deinen Taskmanager auf und sag an was da steht.

Welche Prozesse laufen? Welche Prozessorlasten sind zugewiesen?

Wie hoch ist der Speicherverbrauch im allgemeinen? Wie hoch die Netzwerklast?

Hau alles aus dem Autostart raus was da raus kann.

Mach eine Virentest. Hast du einen Scanner? Dann schalte den mal aus.
 
Meine CPU Auslastung springt zwischen 0 und 2 % hin und her, mein System hat sicher nicht zu wenig Leistung. Arbeitsspeicher liegt bei 33% Auslastung.

*EDIT: Ich hab das Gefühl das hat irgendwas mit dem Grafiktreiber zu tun.
*EDIT: Scanner habe ich nicht angeschlossen und Netzwerklast liegt bei 0,06%.
*EDIT: Speicherauslastung erhöht sich beim Starten des Programms um 1%.
 
Zuletzt bearbeitet:
Du schreibst oben, "Windows 7 64 Bit". Hast du denn auch Java als 64Bit-Version installiert? Vielleicht kann ein 32Bit-Java nicht so richtig mit 64Bit-Aero?
 
Zuletzt bearbeitet: (Ergänzungen)
Auf Windows XP e.g. läufts wunderbar.
 
Zurück
Oben