Starší komentáře ke článku: J2ME pro pokročilé - optimalizace zdrojového kódu

Zpět na článek | Úvodní stránka Interval.cz

Avatar

Autor komentáře: Baily

Datum vložení: 30.4.2003 8:37:22

Do opraveneho prikladu optimalizace se na 4. radek zrejme vloudil sotek.
Ma tam pravdepodobne byt

int length = array.length;

Avatar

Autor komentáře: Jiří Procházka

Datum vložení: 30.4.2003 9:38:23

Je to muj prvni clanek, tak se tam nejaka ta chybka musi vyskytnout. Priste si na to dam uz pozor. Dekuji za upozorneni.

Avatar

Autor komentáře: kriplozoik

Datum vložení: 30.4.2003 12:02:42

diky za clanek. ale mel bych dalsi 2 otazky.
1) pisete, ze pro optimalizaci na velikost neni radno pouzivat interface. Ale v clanku `Optimizing Java for Size` od Jonathana Hardwicka (<a href='http://www.cs.cmu.edu/~jch/java/size.html)' target='_blank'>http://www.cs.cmu.edu/~jch/java/size.html)</a> se zase pise, ze pouziti rozhrani muze velikost vysledne aplikace snizit, pokud do nej nahazime vsechny konstanty (tedy 'final static' atributy), ktere budeme pouzivat v tride implementovane timto rozhranim. Jak je to tedy doopravdy?
2) no, a pak bych se chtel zeptat, jestli v (polo)interpretovanem Javovskem kodu ma nejaky vyznam pouzivat misto nasobeni nebo deleni cisel mocninami 2 operace bitovych posunu (napr. misto: int y=x/2; psat: int y=x>>1;) a podobne (napr. y=x % 64; a y=x & 63; nebo y=x*256+x; a y=(x<<8)|x; atd.).

Avatar

Autor komentáře: Jiri Prochazka

Datum vložení: 5.5.2003 13:10:20

1.) Pokud chcete pouzit interface pouze na to, abyste do nej umistil konstanty, tak to je plytvani mistem. Jak jsem jiz napsal interface neimplementuje zadnou funkcnost a je to tedy trida, ktera zabira misto. V pripade, ze interface jiz pouzivate muzete do nej konstanty umistit pro lepsi prehlednost, ale misto Vam to asi neusetri. A navic nektere obfuskatory provadeji i optimalizaci kodu, takze je to ve vysledku zbytecne.
2.) Pri nasobeni a deleni 2 je lepsi pouzit operace bitoveho posuvu. Kdyz byste trochu patral a nasel jak jsou tyto operace implementovany HW, tak Vam to bude hned jasne.

Avatar

Autor komentáře: Marek Paska

Datum vložení: 6.6.2003 16:45:33

Optimalizovat javovyky kod pomoci bitovych posunu etc. je totalni pakarna. Optimalizace z X*8 na X<<8 zvladaly prekladace fortranu v polovine minuleho stoleti. Ale hlavne jde o to, ze Java ma milion dalsich overhead, takze nejaka uchylna optimalizace aritmetiky se projevi zrychlenim pod jedno promile. A to vsechno za cenu velkeho zneprehledneni zdrojoveho kodu. Wake up, folks!

Avatar

Autor komentáře: Petr Kovařík

Datum vložení: 30.4.2003 13:06:39

Píšete o obfuskátorech : "Ochrání také vaši aplikaci před dekompilací." S tím musím nesouhlasit, obfuskace bytecodu pouze zmate kód tak že je po dekompilaci takřka nečitelný. Pro případného "předělavatele" již obfuskovaného midletu to znamená horší čitelnost zdrojového kódu ale v praxi je možné obfuskovaný bytecode převést zpět na zdrojový kód a upravit podle libosti.

Avatar

Autor komentáře: Lucie Rut Bittnerova

Datum vložení: 30.4.2003 13:27:59

Detailisto :-)

Avatar

Autor komentáře: Petr Kovařík

Datum vložení: 30.4.2003 14:14:03

Ja vím že je to detail, v praxi nepředpokládám že bude někdo midlety dekompilovat a předělávat. Ale pro mě je to cenný zdroj učebního materiálu, často dekompiluju nějaký midlet a koukám jak je udělaný, proto vím moc dobře co dělá obfuskátor a jaké to je se pak v obfuskovaném kódu vyznat.
Ale jak říkám není to standartní postup a moje poznámka byla spíš míněna přátelsky než jako výtka ;o).

Avatar

Autor komentáře: Jiri Prochazka

Datum vložení: 5.5.2003 13:12:13

Ano mate pravdu. Mel jsem spis napsat, ze zneprijemni cteni zdrojoveho kodu po dekompilaci.

Avatar

Autor komentáře: kriplozoik

Datum vložení: 6.5.2003 5:33:47

prosiim, rad bych se dozvedel odpoved i na muj dotaz

Avatar

Autor komentáře: Jiri Prochazka

Datum vložení: 6.5.2003 8:40:59

Jestli se jedna o dotaz s predmetem "dalsi 2 otazky", tak se zkuste podivat na 4 prispevek tohoto clanku.

Avatar

Autor komentáře: Jerry III

Datum vložení: 5.5.2003 21:13:01

Sam Sun doporucuje psat prehledny kod a nechat optimalizaci na interpretu/prekladaci (treba ta "optimalizace" cyklu je tak primitivni ze ji zvladaj i prekladace z dob kdy sem se ucil programovat). Navic optimalizovat pamet kdyz clovek nema vubec zadnou kontrolu nad alokaci a uvolnovani pameti, no nevim co na to rict, jen to, ze pokud mate omezenou pamet tak je Java naprosto nevhodnej jazyk.

Avatar

Autor komentáře: Jan Seda

Datum vložení: 7.5.2003 14:10:24

Musim nesouhlasit a to nejen s ohledem na Javu, ale i na .NET prostredi. Optimalizace prace GC je dnes na vysoke urovni a naopak takove zefektivneni prace s pameti, jake nabizi GC (paralelni defragmentace pameti, optimalizace pruchodu jednotlivych generaci, atd.) tak muze byt jeste lepsi a algoritmizacne propracovanejsi nez prima alokace. Dokazuji to i nektere testy, co jsme delali v Microsoftu i s ohledem na unmanaged kod. Jina vec, co souvisi s vykonem je prace JITu (kterou v tuhle chvili dela kompletne jen MS v compact frameworku), ale GC je dnes jiz mozne povazovat za vysoce optimalizovane.

Avatar

Autor komentáře: Martin Kobli

Datum vložení: 7.5.2003 3:41:02

Zdravim, zacal jsem cist clanky o j2ME a moc me to zaujalo. Doma jsem si nainstaloval J Builder personal a na to rozsireni MicroEdition. Zkusil jsem si potom otevrit priklad na helloworld, ktery je k dispozici original od Borlandu, ale porad mi to hlasi chyby, ze nemuze najit knihovny javax.microedition .... Nevim jestli mam jeste naistalovat nekde nejake doplnky nebo tak neco. Myslel jsem, ze kdyz jsem nainstaloval rozsireni ME, tak ze v tom je i J2ME ..... diky moc za jakekoli rady.....
martin

Avatar

Autor komentáře: kriplozoik

Datum vložení: 10.5.2003 7:47:05

pravdepodobne musite nastavit parametr -classpath k souboru se vsemi zkompilovanymi tridami. zkuste se na to jeste podivat v napovede nebo v souborech o instalaci.

Avatar

Autor komentáře: Pavel

Datum vložení: 21.8.2003 15:31:49

Cely 'trik' je v tom ze ve vlastnostech projektu musite zmenit typ pouziteho virtualniho stroje z J2SE na jiny, zalozeny an J2ME

Avatar

Autor komentáře: TomXX

Datum vložení: 6.11.2003 12:49:56

Mrkni sa na forum.nokia, tam je rieseny JBuilder v mnohych prispevkoch

Avatar

Autor komentáře: Tom80

Datum vložení: 6.11.2003 12:58:20

clanok to celkom pekne zhrnul
Pomerne dost sa da ziskat pisanim flat kodov, zabudnite na pekny objektovy design, seekovanie vo virtualnych tabulkach trva a trva {to je aj vseobecne vysvetlenie "zahady" z prikladu s cyklom v clanku}
pozor na locky pri multithreadovych aplikackach

na zaver, j2me ziskala nejaku performance pri garbage collectingu zabudnutim na finalize metodu{celkom pekny trick ;-)}

Zpět na článek | Úvodní stránka Interval.cz