You are on page 1of 15

JavaSvet

Novosti u Javi 7
Fork/Join biblioteka, Invokedynamic VM instrukcija

http://javasvet.rs

info@javasvet.rs

JavaSvet
Sadraj

Prolost Sadanjost Prepreke Promena koncepta Java 7 evolucija Fork/Join biblioteka Invokedynamic VM instrukcija Java 8 revolucija Budunost
http://javasvet.rs info@javasvet.rs

JavaSvet
Prolost

Jedan server, jedan procesor, jedno jezgro Fiksna poslovna logika Objektno orijentisano programiranje Relacione baze

http://javasvet.rs

info@javasvet.rs

JavaSvet
Sadanjost

Erlang za paralelno programiranje Lisp za funkcionalno programiranje Ruby za web programiranje Perl za administrativno programiranje Python za efikasno programiranje

http://javasvet.rs

info@javasvet.rs

JavaSvet
Prepreke

Bez prave podrke za obradu na vie procesora i vie jezgara Bez podrke za funkcionalno programiranje

Bez podrke za closure

Suvie statiki jezik

Refleksija spora i bojlerplejtna

VM optimizacija ne stie do refleksije

http://javasvet.rs

info@javasvet.rs

JavaSvet
Promena koncepta

http://javasvet.rs

info@javasvet.rs

JavaSvet
Promena koncepta

Porast broja jezgara po procesoru

Bilo: linearna obrada na jedinom jezgru Bie: paralelna obrada na svim jezgrima

Distribuirana obrada podataka

Bilo: dovlaenje podataka u algoritam Bie: slanje algoritma podacima

Sistemi sa ogromnim setom podataka

Bilo: relacione baze Bie: mapreduce


http://javasvet.rs info@javasvet.rs

JavaSvet
Java 7 evolucija

Invokedynamic VM instrukcija Fork/Join biblioteka

http://javasvet.rs

info@javasvet.rs

JavaSvet
Fork/Join biblioteka

Na 30 procesora ~15 do ~30 puta bra obrada u odnosu na linearnu

Visok stepen skalabilnosti Uporediva brzina sa C/C++ bibliotekama

Laka VM i OS optimizacija upravljanja tredovima Java API: ForkJoinTask<V>, RecursiveTask<V>, RecursiveAction


http://javasvet.rs info@javasvet.rs

JavaSvet Invokedynamic VM instrukcija

Prva nova instrukcija u VM od nastanka Jave Nov nain za poziv metode

invokeinterface, invokespecial, invokestatic, invokevirtual

Podrka za dinamiko programiranje Zamena za refleksiju

~15 puta bre od refleksije

Minimalna izmena Java 7 APIja, java.lang.invoke

CallSite, MethodHandle, MethodType, Lookup

Trenutni cilj su JRuby, Jython, Groovy, Closure, ... Sledei cilj je closure podrka u Javi 8
http://javasvet.rs info@javasvet.rs

JavaSvet Invokedynamic VM instrukcija

http://javasvet.rs

info@javasvet.rs

JavaSvet
Java 8 revolucija

Funkcionalno programiranje

Closure podrka, lambda izrazi

Modularnost Java platforme

Manji download, jasnija arhitektura

JRockit, J9 i Hotspot VM integracija

Objedinjavanje razvoja, unapreenje performansi

http://javasvet.rs

info@javasvet.rs

JavaSvet
Budunost

Java za paralelno programiranje Java za funkcionalno programiranje Java za distribuirano programiranje Java za data oriented programiranje Java za cloud programiranje

http://javasvet.rs

info@javasvet.rs

JavaSvet
Pitanja?

http://javasvet.rs

info@javasvet.rs

JavaSvet

Hvala na panji
Igor Popov
igor.popov@javasvet.rs gonadarian@gmail.com @gonadarian

http://javasvet.rs

info@javasvet.rs

You might also like