Geschwidnigkeit von Java (Applets)
-
Ich habe hier in einigen Diskussionen schon gesehen, dass Java nicht langsam ist
bzw. durchaus mit anderen Sprachen wie C/C++ mithalten kann, außerdem habe ich
selber bisher auch noch nie festgestellt, dass Java irgendwie langsam ist. Und
da einige Leute sogar Spiele darin programmieren möchten (siehe Optimizer's Thread im C#-Forum), drängt
sich mir die Frage auf, weshalb ICQ2go (ICQ Client als Applet) so extrem langsam ist?
Überhaupt fiel mir das schon bei einigen Applets auf, wobei ein Applet ja nicht
langsamer als eine Application sein sollte, da Applets meines Wissens nach ja
nur eingeschränkte Applications sind.
-
Ich habe mich ehrlich gesagt mit Applets noch nicht auseinandergesetzt, aber ich sage mal so viel, dass Performance doch am meisten vom Programmierer abhängt.
Die Polizei in irgendeinem Bundesland (ich weiss nicht mehr welches), setzt neuerdings Linux und Java Programm zur Verwaltung ein und da sind jetzt Beschwerden gekommen, es sei zu langsam. Dazu sag ich mal wirklich *lol*, weil besonders bei einem Datenbank-Programm es _sehr_ stark auf die verwendeten Algorithmen und Datenstrukturen ankommt und nicht auf die verwendete Programmiersprache.
Maschinennahe Optimierung lohnt sich vielleicht an ganz wenigen Hotspots im Code (das könnte man mit dem Java Native Interface machen) und solche Stellen erkennt die VM sogar und compiliert sie zur Laufzeit neu mit einer besseren Optimierung.
Wie gesagt, ich weiss jetzt nicht, ob Applets noch mal extra langsam sind, aber mit Java kann man eigentlich alles ganz gut machen, nach meiner Erfahrung.
-
Genau aus dem Grund wundert mich das ja, weil es eben so extrem langsam ist und
ich kann mir nicht vorstellen, dass ne mini Application wie ICQ nen PC mit 512MB
und >1Ghz überfordert. Und die ICQ Programmierer werden doch wohl nicht absichtlich
so unperformant programmieren, kann ich mir nicht vorstellen.
Daher hab ich hier gefragt, wenn es jemand weiß dann doch jemand von euch oder?
-
Also bei mir läuft ICQ2go butterweich. Ok, mein Rechner ist auch doppelt so schnell.
Ne, bei Applets weiss ich es wirklich nicht.
-
Ich habe das jetzt mal bei mir zuhause getestet und es läuft hier um einiges
schneller, auch wenn es ab und zu kurz hängt(da geb ich mal Mozilla die Schuld,
der hat ab und an paar Probs mit CPU-Auslastung),
dann liegt es wohl doch an den Schul-PCs (ist dort aber auf allen so, den neuen
und alten). Ich frag mich nur was die gemacht habenNaja dann hat sich das ja erledigt
-
Die haben in der Schule wahrscheinlich nur die Microsoft VM installiert. Die läuft natürlich extrem langsam.
Damit Java Programme schnell laufen muss man eine moderne Java VM installieren. www.java.com
-
DrZoidberg schrieb:
Die haben in der Schule wahrscheinlich nur die Microsoft VM installiert. Die läuft natürlich extrem langsam.
Damit Java Programme schnell laufen muss man eine moderne Java VM installieren. www.java.comEigentlich galt die MSVM als relativ schnell. Abgesehen davon ist sie natürlich trotzdem hoffnungslos veraltet und inkompatibel zu heutigem Java. Heutige JVMs von Sun können bezüglich der Geschwindigkeit mit der MSVM mithalten. Vielleicht habt ihr aber eine veraltete JVM von Sun auf den Rechnern: Version 1.2 oder so.
-
Ist Java 1.3 von Sun, also eigentlich nicht so alt, zuHause habe ich 1.4
-
Optimizer schrieb:
Die Polizei in irgendeinem Bundesland (ich weiss nicht mehr welches), setzt neuerdings Linux und Java Programm zur Verwaltung ein und da sind jetzt Beschwerden gekommen, es sei zu langsam. Dazu sag ich mal wirklich *lol*, weil besonders bei einem Datenbank-Programm es _sehr_ stark auf die verwendeten Algorithmen und Datenstrukturen ankommt und nicht auf die verwendete Programmiersprache.
Niedersachsen.
ACK. Wobei ich sagen würde, dass es an Java nur eine Winzigkeit gibt, die wirklich langsam ist: Swing GUI's... Die gleiche Anwendung mit SWT ist um einiges schneller.
SirLant schrieb:
Ist Java 1.3 von Sun, also eigentlich nicht so alt, zuHause habe ich 1.4
Von 1.3 zur 1.4 ist aber IMO ein gewaltiger Schritt in Sachen Performance geschehen...
-
Danke, das erklärt einiges
-
Ja, die Hotspot Optimierung in 1.4 scheint echt gewaltig reinzuhauen, nach ner gewissen Laufzeit.
Geschickt würde ich es finden, wenn die VM in der class Datei sich gleich die Hotspots markieren würde und beim nächsten mal diese Stellen von Anfang an optimiert. Oder dass man selber Hotspots setzen kann. Vielleicht kommt das ja noch.Kann man eigentlich die von der VM gefundenen Hotspots auslesen (praktisch zum profilen...)?
-
Kann es sein, dass in Java1.3 einige Bugs auftreten wenn man das BorderLayout
verwendet? So kann man beim verwenden des Borderlayout nichts mehr mit Paint
zeichnen, ebenso werden Labels erst nach ändern der Appletfenstergröße(im appletviewer, im browser gehts gar nicht) vollständig angetzeigt, vorher nach
einigen Zeichen abgeschnitten.