Portál AbcLinuxu, 14. května 2025 02:14
Proc flame?Protože pojmy jako "javabordel" již jsou flame.
public class TestVect2000 { public TestVect2000() { super(); } public static void main(String[] args) { long t0 = System.currentTimeMillis(); Vector v = new Vector(200000); for (int i = 0; i < 200000; i++) { v.add(i, new Double(125.87)); } Double d = new Double(128.45); boolean b = false; long t1 = System.currentTimeMillis(); long t2; for (int i = 0; i < 200000; i++) { if (d.equals(v.elementAt(i))) { b = true; } } t2 = System.currentTimeMillis(); System.out.println(t1 - t0); System.out.println(t2 - t1); } }Vše na Celeron 2000 Linux FC3 2.6.10 JRE 1.50 ve vývojovém prostředí Eclipse 3.0.
public class Pokus3 { int count = 20000; long startTime, endTime; public static void main(String[] args) { new Pokus3(); } public Pokus3() { testVector(); } private void testVector() { startTime = System.currentTimeMillis(); Vector v = new Vector(); for (int i = 0; i < count; i++) { v.add(new Double(Math.random())); } for (int i = 0; i < count; i++) { Double d = new Double(Math.random()); if (v.contains(d)) { System.out.println("nasiel"); } } endTime = System.currentTimeMillis(); System.out.println("Vector time: " + (endTime - startTime)); } }
java -server java -client win 15s 62s linux 15s 95sAMD Athlon(tm) XP 1600+, 256MB RAM Čili java server virtual machine je na těch konkurečních platformách asi srovnatelná. Proč je linux client java virtual machine tak výrazně pomalejší oproti win verzi - netuším.
JET Excelsior
a start programu ktory trval pri byte-kode cca 2 sekundy sa zrychlil na cca 0.5 sekundy. Program vacsinu casu nacitaval jpegy do pamate. Tovie ako by sa to prejavilo v tomto pripade.
$ java Pokus3
Vector time: 78387
$ java -server Pokus3
Vector time: 4520
Trik? Medzi prvým a druhým pokusom som spustil Eclipse. Java nemusí byť pomalá. A jej rýchlosť sa prejaví skôr u väčších aplikácií.
java
ale spousta jiných věcí... A další věc je spouštění (vystavení) procesu javadouble
(nie Double
!). JRockit je na cliente asi o tretinu rychlejsi ako Sunovska java (netusim cim to je). Co se tyce rychlosti okna versus linux, nemuzu slouzit, ale traduje se, ze java od IBM je "lepsi", na vykon, ale zase ma par much ...
Na vyladeni vykonu doporucuji knihu "Java : vylaďování výkonu : účinné a efektivní strategie vylaďování / Jack Shirazi". Tam by jste nasel zrejme par tipu, jak "vyhnat" na mnohem lepsi casy.
A stran flamewar, ASM je pro pro pojidace kolacu, opravdovi programatori pouzivaji fortan.
1. Disable Settings | General | Synchronize files on frame activation. 2. Disable Settings | Local History. 3. Make sure that IDEA caches (USER_HOME\.IntelliJIdea50\system) are on the local drive, read here for details: http://support.jetbrains.com/kb/entry.jspa?externalID=181&categoryID=5 4. Play with the heap size setting: http://support.jetbrains.com/kb/kbclick.jspa?categoryID=5&externalID=3 http://support.jetbrains.com/kb/kbclick.jspa?categoryID=5&externalID=33 5. Reset IDEA caches by deleting USER_HOME\.IntelliJIdea50\system directory. 6. Make sure that the project and JDKs are residing on the local drives. 7. Perform drive defragmentation. 8. Disable Local Code Analysis (Settings | Errors). 9. Increase the autoreparse delay (Settings | Errors). 10. Disable antiviral monitor. 11. If you have mapped/substed drives or NTFS links, you can try deleting IDEA_HOME\bin\FileWatcher*.dll files. 12. Try changing Lool&Feel in Settings | Appearance to IDEA 4.5.
Aj moj java editor (Intellij IDEA 4.5.3 )sa zda byt dost lenivy Neviete prosim pomoct, ako urychlit javu ?
java -jar <název_jaru>
a nikdy nemusíte řešit, zda Vaše vývojové prostředí spouští Váš projekt ve vlákně či spouští nový proces Java (a redirectuje vstupy a výstupy!).
Zkuste následující volby: -J-Xverify:none
, -J-XX:+UseConcMarkSweepGC
, -J-XX:+CMSClassUnloadingEnabled
, -J-XX:+CMSPermGenSweepingEnabled
Ten první vypíná kontrolu integrity natahovaných tříd (urychluje ClassLoader) a ty další zapínají nové algoritmy GC a ClassLoaderu pro Javu 5 a vyšší.
Jestli nechcete používat Javu 5 a vyšší, doporučuji upgradovat 1.4.2 alespoň na build 10 – byly opraveny výkonnostní problémy na UNIXových systémech...
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.