Toto je starší verze dokumentu!


Zrychlení Javy

Java není o moc pomalejší než C/C++. Musíte ale kód patřičně optimalizovat. Nejdřív si program napište tak jak umíte, otestujte v upload systemu že dává správné řešení na menších datech. Pak se vrhněte na optimalizaci:

  • pro vstup nepoužívejte Scanner, ale BufferedReader viz http://cw.felk.cvut.cz/doku.php/courses/a4m33pal/cviceni/java
  • pro výstup použijte jenom jeden System.out.println()
  • pro spojování stringů používejte StringBuilder a nikoli „prvni“+„druhy“
  • pozor na funkce pro práci se stringy jako startsWith, replace, trim - většinou jdou nahradit subStringem nebo porovnáváním charů, je to rychlejší
  • pro rozdělení řetězce a parsování používejte StringTokenizer
  • optimalizujte celý kód, nikoli jenom vlastní algoritmus. Mě nejvíc času zabrala tvorba grafu parsováním vstupu.
  • přidejte slovo final k public metodám, které nepřetěžujete
  • ArrayList bývá rychlejší než LinkedList
  • HashMap se velmi hodí na uskladnění např. uzlů grafu, má rychlé vyhledávání
  • nevytvářejte zbytečné lokální proměnné, kratší kód bývá rychlejší
courses/a4m33pal/zrychleni-javy.1287604205.txt.gz · Poslední úprava: 2025/01/03 18:24 (upraveno mimo DokuWiki)
Nahoru
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0