Pumpkin
Anmeldungsdatum: 2. Dezember 2006
Beiträge: 170
|
Hallo, ich benutze häufig ein bestimmtes Javaprogramm und es ist immer sehr sehr sehr langsam. Wenn ein Menü öffnen will passiert erstmal gar nichts, nach mehreren Sekunden kommt es dann vielleicht. Auch ansonsten reagiert es auf Eingaben von meiner Seite immer mit mehreren Sekunden verzögerung und ich habe den Eindruck, dass es auch den Rest des Rechners beeinflusst.
Hier meine Version:
max@max-laptop:~$ java -version
java version "1.6.0_0"
OpenJDK Runtime Environment (IcedTea6 1.4.1) (6b14-1.4.1-0ubuntu7)
OpenJDK Client VM (build 14.0-b08, mixed mode, sharing)
Was kann ich machen, damit es schneller ist?
Achja, mit dem Programm lade ich Dateien runter. Kann es möglicherweise auch sein, dass mein Rechner mit Dateioperationen so sehr beschäftigt ist, dass er dadurch auch langsamer wird? Danke für Hilfe
|
heart_disease
Anmeldungsdatum: 30. Juni 2006
Beiträge: 132
|
Oh, du hast das OpenJDK installiert. So sehr ich für OpenSource-Software bin, das JDK bzw. JRE von Sun ist die einzige vernünftige Java-Implementierung die ich kenne! Deinstalliere ALLE Pakete welche mit OpenJDK in Verbindung stehen und installier dir das Paket sun-java6-jre . Eventuell vorher nochmal neu starten und alles sollte laufen wie gewünscht.
|
Pumpkin
(Themenstarter)
Anmeldungsdatum: 2. Dezember 2006
Beiträge: 170
|
Ja, hab ich gemacht und jetzt flitzt alles, vielen Dank 😀
|
jokill
Anmeldungsdatum: 11. Juni 2008
Beiträge: 75
|
Danke sehr!!!
Hat bei mir auch geholfen!
|
colombo1980
Anmeldungsdatum: 23. September 2008
Beiträge: 1286
|
DAS wars also! Benutze den JDownloader - jetzt auch ohne Qualen! Danke für den Tipp. Edit: Naja, auf dem anderen Rechner sorgt das für einen unbrauchbares X - "ganz toll". 🙄
|
shuthichi
Anmeldungsdatum: 22. Januar 2009
Beiträge: 58
|
Hallo zusammen, ich habe momentan das gleiche Problem.
Wenn ich z.B. mit Visual Paradigm arbeite und ein Diagram mal etwas größer wird dauert jede Änderung teilweise über 10 Sekunden. In der Zeit geht dann garnichts.
Ähnliche Phänomene in Eclipse - Momentan (ZK Studio Plugin).
Das Arbeiten wird so wirklich zu Qual. Verwende Ubuntu 9.10 niko@nik-thinkpad:~$ java -version
java version "1.6.0_15"
Java(TM) SE Runtime Environment (build 1.6.0_15-b03)
Java HotSpot(TM) Server VM (build 14.1-b02, mixed mode) Hat mir jemand nen Tip für das Problem?
|
axel.niedenhoff
Anmeldungsdatum: 9. November 2009
Beiträge: 7
|
Wenn Du den Aufruf der Anwendung modifizieren kannst (also das Kommando, mit dem die Java-VM gestartet wird), kannst Du versuchen, Optionen mitzugeben. Bei der Arbeit mit Desktop-Anwendungen könnte es zum Beispiel helfen, die VM in den Client-Modus zu zwingen. Dies wird durch den Schalter -client erreicht. Sehr wahrscheinlich enthält die Kommandozeile einen Parameter -jar. Dann kommt die Option -client vor diesen Parameter.
|
shuthichi
Anmeldungsdatum: 22. Januar 2009
Beiträge: 58
|
Hallo Axel, ich habe bereits mit diesen Java Parametern experimentiert: eclipse -Xms128M -Xmx1024M -XX:PermSize=64M -XX:MaxPermSize=128M
leider hat sich keine Besserung eingestellt. Auch wenn ich ein -client anhänge tut sich leider nichts.
|
axel.niedenhoff
Anmeldungsdatum: 9. November 2009
Beiträge: 7
|
Dann wäre hier noch ein möglicher Griff in die Trickkiste (sprich: ubuntuusers-Wiki 😉 ): die Option -Dsun.java2d.opengl=true
|
shuthichi
Anmeldungsdatum: 22. Januar 2009
Beiträge: 58
|
Habe ich grade auch mal getestet.
Ich habe das aufrufende Script mal um den Parameter erweitert. Leider genau so lahm wie vorher. 😢 Meine Änderung in der 5.ten Zeile. Das sollte doch so passen, oder mach ich was falsch? #! /bin/sh
# Uncomment the following line to override the JVM search sequence
# INSTALL4J_JAVA_HOME_OVERRIDE=
# Uncomment the following line to add additional VM parameters
INSTALL4J_ADD_VM_PARAMS= -Dsun.java2d.opengl=true
read_db_entry() {
if [ -n "$INSTALL4J_NO_DB" ]; then
return 1
fi
db_file=$HOME/.install4j
if [ ! -f "$db_file" ]; then
return 1
fi
if [ ! -x "$java_exc" ]; then
return 1
fi
found=1
exec 7< $db_file
while read r_type r_dir r_ver_major r_ver_minor r_ver_micro r_ver_patch<&7; do
if [ "$r_type" = "JRE_VERSION" ]; then
if [ "$r_dir" = "$test_dir" ]; then
ver_major=$r_ver_major
ver_minor=$r_ver_minor
ver_micro=$r_ver_micro
ver_patch=$r_ver_patch
found=0
break
fi
fi
done
exec 7<&-
return $found
}
create_db_entry() {
tested_jvm=true
echo testing JVM in $test_dir ...
version_output=`"$bin_dir/java" -version 2>&1`
is_gcj=`expr "$version_output" : '.*gcj'`
if [ "$is_gcj" = "0" ]; then
java_version=`expr "$version_output" : '.*"\(.*\)".*'`
ver_major=`expr "$java_version" : '\([0-9][0-9]*\)\..*'`
ver_minor=`expr "$java_version" : '[0-9][0-9]*\.\([0-9][0-9]*\)\..*'`
ver_micro=`expr "$java_version" : '[0-9][0-9]*\.[0-9][0-9]*\.\([0-9][0-9]*\).*'`
ver_patch=`expr "$java_version" : '.*_\(.*\)'`
fi
if [ "$ver_patch" = "" ]; then
ver_patch=0
fi
if [ -n "$INSTALL4J_NO_DB" ]; then
return
fi
db_new_file=${db_file}_new
if [ -f "$db_file" ]; then
awk '$1 != "'"$test_dir"'" {print $0}' $db_file > $db_new_file
rm $db_file
mv $db_new_file $db_file
fi
dir_escaped=`echo "$test_dir" | sed -e 's/ /\\\\ /g'`
echo "JRE_VERSION $dir_escaped $ver_major $ver_minor $ver_micro $ver_patch" >> $db_file
}
test_jvm() {
tested_jvm=na
test_dir=$1
bin_dir=$test_dir/bin
java_exc=$bin_dir/java
if [ -z "$test_dir" ] || [ ! -d "$bin_dir" ] || [ ! -f "$java_exc" ] || [ ! -x "$java_exc" ]; then
return
fi
tested_jvm=false
read_db_entry || create_db_entry
if [ "$ver_major" = "" ]; then
return;
fi
if [ "$ver_major" -lt "1" ]; then
return;
elif [ "$ver_major" -eq "1" ]; then
if [ "$ver_minor" -lt "4" ]; then
return;
fi
fi
if [ "$ver_major" = "" ]; then
return;
fi
app_java_home=$test_dir
}
add_class_path() {
if [ -n "$1" ] && [ `expr "$1" : '.*\*'` -eq "0" ]; then
local_classpath="$local_classpath${local_classpath:+:}$1"
fi
}
old_pwd=`pwd`
progname=`basename "$0"`
linkdir=`dirname "$0"`
cd "$linkdir"
prg="$progname"
while [ -h "$prg" ] ; do
ls=`ls -ld "$prg"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '.*/.*' > /dev/null; then
prg="$link"
else
prg="`dirname $prg`/$link"
fi
done
prg_dir=`dirname "$prg"`
progname=`basename "$prg"`
cd "$prg_dir"
prg_dir=`pwd`
app_home=../
cd "$app_home"
app_home=`pwd`
bundled_jre_home="$app_home/jre"
if [ "__i4j_lang_restart" = "$1" ]; then
cd "$old_pwd"
else
cd "$prg_dir"/../bin
fi
if [ ! "__i4j_lang_restart" = "$1" ]; then
if [ -f "$bundled_jre_home/lib/rt.jar.pack" ]; then
old_pwd200=`pwd`
cd "$bundled_jre_home"
echo "Preparing JRE ..."
jar_files="lib/rt.jar lib/charsets.jar lib/plugin.jar lib/deploy.jar lib/ext/localedata.jar lib/jsse.jar"
for jar_file in $jar_files
do
if [ -f "${jar_file}.pack" ]; then
bin/unpack200 -r ${jar_file}.pack $jar_file
if [ $? -ne 0 ]; then
echo "Error unpacking jar files. Aborting."
echo "You might need administrative priviledges for this operation."
exit 1
fi
fi
done
cd "$old_pwd200"
fi
fi
if [ -z "$app_java_home" ]; then
test_jvm $INSTALL4J_JAVA_HOME_OVERRIDE
fi
if [ -z "$app_java_home" ]; then
if [ -f "$app_home/.install4j/pref_jre.cfg" ]; then
read file_jvm_home < "$app_home/.install4j/pref_jre.cfg"
test_jvm "$file_jvm_home"
if [ -z "$app_java_home" ] && [ $tested_jvm = "false" ]; then
rm $HOME/.install4j
test_jvm "$file_jvm_home"
fi
fi
fi
if [ -z "$app_java_home" ]; then
test_jvm "$app_home/jre"
if [ -z "$app_java_home" ] && [ $tested_jvm = "false" ]; then
rm $HOME/.install4j
test_jvm "$app_home/jre"
fi
fi
if [ -z "$app_java_home" ]; then
path_java=`which java 2> /dev/null`
path_java_home=`expr "$path_java" : '\(.*\)/bin/java$'`
test_jvm $path_java_home
fi
if [ -z "$app_java_home" ]; then
common_jvm_locations="/opt/i4j_jres/* /usr/local/i4j_jres/* $HOME/.i4j_jres/* /usr/bin/java* /usr/bin/jdk* /usr/bin/jre* /usr/bin/j2*re* /usr/bin/j2sdk* /usr/java* /usr/jdk* /usr/jre* /usr/j2*re* /usr/j2sdk* /usr/java/j2*re* /usr/java/j2sdk* /opt/java* /usr/java/jdk* /usr/java/jre* /usr/lib/java/jre /usr/local/java* /usr/local/jdk* /usr/local/jre* /usr/local/j2*re* /usr/local/j2sdk* /usr/jdk/java* /usr/jdk/jdk* /usr/jdk/jre* /usr/jdk/j2*re* /usr/jdk/j2sdk* /usr/lib/java* /usr/lib/jdk* /usr/lib/jre* /usr/lib/j2*re* /usr/lib/j2sdk*"
for current_location in $common_jvm_locations
do
if [ -z "$app_java_home" ]; then
test_jvm $current_location
fi
done
fi
if [ -z "$app_java_home" ]; then
test_jvm $JAVA_HOME
fi
if [ -z "$app_java_home" ]; then
test_jvm $JDK_HOME
fi
if [ -z "$app_java_home" ]; then
test_jvm $INSTALL4J_JAVA_HOME
fi
if [ -z "$app_java_home" ]; then
if [ -f "$app_home/.install4j/inst_jre.cfg" ]; then
read file_jvm_home < "$app_home/.install4j/inst_jre.cfg"
test_jvm "$file_jvm_home"
if [ -z "$app_java_home" ] && [ $tested_jvm = "false" ]; then
rm $HOME/.install4j
test_jvm "$file_jvm_home"
fi
fi
fi
if [ -z "$app_java_home" ]; then
echo No suitable Java Virtual Machine could be found on your system.
echo The version of the JVM must be at least 1.4.
echo Please define INSTALL4J_JAVA_HOME to point to a suitable JVM.
echo You can also try to delete the JVM cache file $HOME/.install4j
exit 83
fi
i4j_classpath="$app_home/.install4j/i4jruntime.jar"
local_classpath=""
add_class_path "$i4j_classpath"
add_class_path "$app_home/lib/vpplatform.jar"
add_class_path "$app_home/lib/winpack.jar"
add_class_path "$app_home/lib/jniwrap.jar"
add_class_path "$app_home/lib/jh.jar"
add_class_path "$app_home/lib/vpuml-help.jar"
add_class_path "$app_home/lib/xalan.jar"
add_class_path "$app_home/lib/lib01.jar"
add_class_path "$app_home/lib/lib02.jar"
add_class_path "$app_home/lib/lib03.jar"
add_class_path "$app_home/lib/lib04.jar"
add_class_path "$app_home/lib/lib05.jar"
add_class_path "$app_home/lib/lib06.jar"
add_class_path "$app_home/lib/lib07.jar"
add_class_path "$app_home/lib/lib08.jar"
add_class_path "$app_home/lib/lib09.jar"
add_class_path "$app_home/lib/lib10.jar"
add_class_path "$app_home/ormlib/orm.jar"
add_class_path "$app_home/ormlib/orm-core.jar"
add_class_path "$app_home/ormlib/antlr.jar"
add_class_path "$app_home/ormlib/asm.jar"
add_class_path "$app_home/ormlib/asm-attrs.jar"
add_class_path "$app_home/ormlib/c3p0.jar"
add_class_path "$app_home/ormlib/cglib.jar"
add_class_path "$app_home/ormlib/commons-collections.jar"
add_class_path "$app_home/ormlib/jdbc2_0-stdext.jar"
add_class_path "$app_home/ormlib/jta.jar"
add_class_path "$app_home/ormlib/log4j.jar"
vmoptions_val=""
vmoptions_file="$prg_dir/$progname.vmoptions"
if [ -r "$vmoptions_file" ]; then
exec 8< "$vmoptions_file"
while read cur_option<&8; do
is_comment=`expr "$cur_option" : ' *#.*'`
if [ "$is_comment" = "0" ]; then
vmo_classpath=`expr "$cur_option" : ' *-classpath \(.*\)'`
vmo_classpath_a=`expr "$cur_option" : ' *-classpath/a \(.*\)'`
vmo_classpath_p=`expr "$cur_option" : ' *-classpath/p \(.*\)'`
if [ ! "$vmo_classpath" = "" ]; then
local_classpath="$i4j_classpath:$vmo_classpath"
elif [ ! "$vmo_classpath_a" = "" ]; then
local_classpath="${local_classpath}:${vmo_classpath_a}"
elif [ ! "$vmo_classpath_p" = "" ]; then
local_classpath="${vmo_classpath_p}:${local_classpath}"
else
vmoptions_val="$vmoptions_val $cur_option"
fi
fi
done
exec 8<&-
fi
INSTALL4J_ADD_VM_PARAMS="$INSTALL4J_ADD_VM_PARAMS $vmoptions_val"
echo "$app_java_home/bin/java" -Dinstall4j.jvmDir="$app_java_home" -Dexe4j.moduleName="$prg_dir/$progname" -Xmx512m -Xms256m -XX:MaxPermSize=128m "-Dsun.java2d.noddraw=true" $INSTALL4J_ADD_VM_PARAMS -classpath "$local_classpath" com.install4j.runtime.Launcher launch RV true false "$prg_dir/error.log" "" true true false "" true true 0 0 "" 20 20 "Arial" "0,0,0" 8 500 "version 4.0" 20 40 "Arial" "0,0,0" 8 500 -1 "$@"
exit $?
|
axel.niedenhoff
Anmeldungsdatum: 9. November 2009
Beiträge: 7
|
Da fällt mir momentan nur noch ein, nach dem Speicher zu sehen. In der Einstellung, die im Startskript steht, kann die Anwendung auf bis zu 512 MB Heap-Speicher anwachsen. Dieser Speicher muss dann aber auch physisch zur Verfügung stehen, sonst fängt das Betriebssystem an, Teile des Speichers auf Platte auszulagern – und das kann richtig langsam werden. Du könntest also versuchen, mal andere Anwendungen zu schließen, bevor Du die Java-Anwendung startest, um Speicher freizuräumen. Eventuell ist es auch möglich den Wert bei der Option -Xmx zu reduzieren, um Java zu zwingen, mit weniger Speicher auszukommen. Das funktioniert aber nur so lange, wie die Anwendung mit der reduzierten Speichermenge auch leben kann.
|
shuthichi
Anmeldungsdatum: 22. Januar 2009
Beiträge: 58
|
Ich habe 3 GB RAM.
Bei jeder Aktion die ich in Eclipse oder VP ausführe steigt die Prozessorlast auf min. 50%.
Und dort bleibt sie dann für 5 oder 10 Sek. stehen.
Auslagern tut der glaub nix.
|