A Sun a Java gyorsításán dolgozik
Jelentkezz be a hozzászóláshoz.
Termeszetesen performance okokbol kifolyolag irjak a kernelt C-ben. Ez igy van a Windowsnal is. Pl. egy O(1) utemezot hatkeonyabb C-ben, mint C++-ban irni.
És persze, hogy lehet OS-t irni Javaban is, de a kérdés, hogy megéri e?
Intel.DZ77RE-75K.Core.i7-3770K.32GB.RAM.360GB.RAID.SDD.8TB.RAID.HDD.GTX660Ti.Dual.NEC.Windows.10.Enterprise Apple.Mac.mini.Core.i7-3615QM.16GB.RAM.1TB.HDD.OS.X.El.Capitan
member függvény hívások: ez csak egyszerû szintaktikai különbség, ha c++-ben ezt irod:
object.function();
a hívás assembly-ben már ugyanaz, mintha c-ben ezt irnád:
function(Object* this);
virtuális függvények:
Ennek mint írtam van kis overheadje, de nem igazán létezik effektívebb módszer, kivéve speciális esetekben, nagyjából így mûködik:
ugye egy class ami tartalmaz virtuális függvényt annak van egy utolsó nem látható membere, egy pointer a virtuális függvényeinek címét tartalmazó táblára. Tehat egy kétszeres indirekción keresztül (csak memóriaolvasás) történik, az nem egy vészes dolog. Egy hagyományos - tehát nem inlineolt függvényhez képest - a cache találat a leglényegesebb tényezõ, mind code, mind adat cache részérõl. Magyarán, ha egy függvény nem inlineolt, és az ugrótábla benne van az adat cache-ben, akkor nagyon minimális a plusz mûvelet amit igényel, ha érdekel azt is kirészletezhetem, hogy milyen alternatíváid lehetnének, de egy másik hozzászólásban, így is túl hosszú leszek...
template-ek: ezekkel egy függvény-t class-t tudsz sokféle típusra legyártani, de ez sebességben nem jelent overhead-et, mivel külön külön legyártja õket az összes használt típusra, egy egyszerû nem túl gyakorlatias példa:
template <class T>
void SetOne(T &Val)
{
Val= 1;
}
függvény esetén ha használod int-el és float-al, akkor legyártódik 2 féle verzió, így pont ugyanaz, mintha te írtad volna meg õket mindkét típusra. Természetesen ezt bármly normális fordító ki-inlineolja, és gépi kódban már nem lesz semmiféle függvényhívásod, egyszerûen egy memóriacímbe, vagy regiszterbe tölti direkt módon az int vagy float 1-et.
Hat hajra.
A miben írj oprendzsert témához én nem szóltam hozzá, csupán idéztem BlackRose-tól, és engem a mondatának az a része érdekelt, hogy sebesség terén a c++-t egy kategóriába sorolta a .NET alapú managed nyelvekkel. Csupán az "az objektum orientalt elvekhez kapcsolodo absztrakt nyelvi elemek valoban extra overheaddel jarnak" tankönyvszagú kijelentésekkel szeretnék vitába szállni.
A mobiltelefonok java futtatójával az a baj, hogy még nagyon primitívek, többnyire egyszerûen interpreter módban mûködnek, természetes hogy lassúak. Sokat azért nem kell várni, hogy az asztali gépeken alkalmazott java futtatók techinkái leszivárogjanak a mobiltelefonok szintjére.
Ha már kivan a faszod az idióta szignókkal csinálj te is egyet.
FTeR: használd már a google-t. Van már jópár DOOM port (cdoom, edoom)...
Essenmáhó: ja, így van. A Sun nem fogja elkérni a telódat, hogy újraégesse benne a romot :)
BlackRose: neked meg egy közmondást: Disznók elõ veti a gyöngyöt :))) Bár az is igaz, hogy mindíg jó, ha a napfény besüt a barlangba :) A #20-ra meg annyit, hogy jól mondod, csak ne feledjük el, hogy 200 gépes clusteren már annyira nem optimális a windows, hogy nem sokat számít az, hogy az egyes gépeken az MSSQL szerver lenyomja a DB2-t és az Oracle-t (tekintve, hogy a DB2 eleve VMS környezetbe készült, és senki nem veszi komolyan a windows-os változatát...)
Dez: szerintem nézz utána a HotSpot fogalmának. És a ECMA scriptnek. (ECMA? lehet, hogy más sorrendben vannak a betûk <#vigyor2>#vigyor2>)
Az APPLET tag meg megszûnt HTML-ben, szóval inkább ne hívjuk appletnek (uram bocsá programocskának<#banplz>#banplz>) és pláne ne keverjétek össze a script blokkokat a külsõ objektumokkal (akár applet, akár más) mert még szabvány sértés szerint is máshol kell keresni õket.
És mielõtt meg valaki belelovalná magát abba, hogy OS-t nem lehet írni .NET nyelveken (most nem managed kódról beszélek!!!!) annak ajánlom, hogy tegye fel a kérdést magának:
Lehet-e java-ban oprendszert írni??? ;)
googleni mindenki tud.
Ha már kivan a faszod az idióta szignókkal csinálj te is egyet.
A Linus féle jobb a kernel c-ben kijelentést nem ismerem, de szerintem nagyobb haszna van olyan szempontból, hogy c-ben írt cuccokat szinte mindenre le tudsz fordítani, c++ -ban - mivel egy nagyságrenddel összetetteb nyelv - akadhatnak problémák, pl a BOOST (http://www.boost.org) is csomó fordító specifikus patch-elést tartalmaz, hogy minél többminden megegye...
C-ben sokkal optimalizáltabb codeot lehet írni? Itt mire gondolsz? Különösen a .NET párhuzam tûnik erõsnek...
2. azért nem a 25 fõ a jellemzõ, és akkor sem azt mondtam, hogy már csak 100 fõs csapatok vannak, hanem hogy nem ritka a 100 fõs se...
Tényleg, kíváncsi lennék errõl Carmack véleményére. Nem tudsz valami elérhetõséget? (El tudom képzelni, hogy esetleg még nem is hallott róla.)
Btw, ahogy kerestem valami címet az Id honlapján, azt találtam, hogy a teljes team (az "utólsó" animátort is belevéve) 25 emberbõl áll, összesen 4 programozóval (Carmack-al együtt), stb. És ez már egy nagyobb csapat. Hol van a többszáz ember, több tucat programozó? :) (Ha emlékszel a korábbi vitánkra. Mindegy, hagyjuk.)
itt a blogja
Végig a javaról ír. Kiemelnék 1 részletet:
"The biggest problem is that Java is really slow. On a pure cpu / memory / display / communications level, most modern cell phones should be considerably better gaming platforms than a Game Boy Advanced. With Java, on most phones you are left with about the CPU power of an original 4.77 mhz IBM PC, and lousy control over everything."
Intel.DZ77RE-75K.Core.i7-3770K.32GB.RAM.360GB.RAID.SDD.8TB.RAID.HDD.GTX660Ti.Dual.NEC.Windows.10.Enterprise Apple.Mac.mini.Core.i7-3615QM.16GB.RAM.1TB.HDD.OS.X.El.Capitan
caddie
Ha viszont biztos vagy benne, hogy az applet szót csakis a Sun használhatja a Javás appletjeihez, akkor errõl informáljátok azon site-ok üzemeltetõit, mint amit pl. belinkeltem. Tehát gugliba "applet javascript", aztán mehetnek az emailek. :)
Még komolyabb helyeken is olvashatók ilyenek:
"Optional: Produce an applet that communicates with the Web page in which it is located, or two or more applets that communicate with each other, using JavaScript."
http://java.sun.com/applets/
nem akartam eddig beleavatkozni, de a Java Applet még veletlenül sem JavaScript.
nem ártana még megnézni a következõket sem...
http://www.infoanarchy.org/wiki/index.php/Java_Applet
http://en.wikipedia.org/wiki/Java_applet
na jó szórakozást... <#smile>#smile>
Intel.DZ77RE-75K.Core.i7-3770K.32GB.RAM.360GB.RAID.SDD.8TB.RAID.HDD.GTX660Ti.Dual.NEC.Windows.10.Enterprise Apple.Mac.mini.Core.i7-3615QM.16GB.RAM.1TB.HDD.OS.X.El.Capitan
hátö .. az elõzõ aláírásom sokkal jobb volt :]
Elég beírni a gugliba, hogy "applet javascript", és ilyen, és hasonló oldalak tömkelege jön elõ:
http://www.popularshareware.com/FolderTree-treeview-JavaScript-Applet-download-458.html
Intel.DZ77RE-75K.Core.i7-3770K.32GB.RAM.360GB.RAID.SDD.8TB.RAID.HDD.GTX660Ti.Dual.NEC.Windows.10.Enterprise Apple.Mac.mini.Core.i7-3615QM.16GB.RAM.1TB.HDD.OS.X.El.Capitan
De, eleg a kodositesbol. A java applet a java nyelv resze...
caddie
Javíts ki ha tévedek, de a SUN-nál a jávázás a NC-vel (network computer) kezdõdött, ami talán csak JAVA-t tudott volna futtatni, egy natív JAVA processzoron.
Szerintem azon megfelelõ gyors lehetett volna akár OS formájában is, de a JAVA eddig télleg nem volt erre felkészítve. Szal szerintem ezt az OS-ezést nem hülyegyerekek találják ki, hanem a SUN-tól ered. Csak éppen jól elbaromkodták az egészet már az elejétõl.
Histeria est magistra vitae. Ez nem trollkodás, ez online graffiti! ;) https://suno.com/@nexus65ongs
Intel.DZ77RE-75K.Core.i7-3770K.32GB.RAM.360GB.RAID.SDD.8TB.RAID.HDD.GTX660Ti.Dual.NEC.Windows.10.Enterprise Apple.Mac.mini.Core.i7-3615QM.16GB.RAM.1TB.HDD.OS.X.El.Capitan
<#smile>#smile> A Sun-nak nincs barcelonai laboratóriuma, a project neve BARCELONA PROJECT, a fejlesztések pedig a Sun Kaliforniai (Menlo Park) Laboratóriumában folynak... azért ne kövessük már az index.hu-t a téves írásokban.
Ami pedig a Javát illeti, a Javának nagyon is megvan a helye az IT-ben és ott ahol az alkalmazása természetes (tudom, hogy ez hülyéül hangzik, de hirtelen nem tudok jobb kifejezást találni) ott egésszen OK müködik (persze miért ne lehetne még optimizálni), a baj ott kezdõdik amikor valakinek eszébe jut, hogy mindenhová nyomja a Javat, de ez nem csak a Javara vonatkozik, nem való mindenhová és kász, ott ahol lassú oda nem kell használni és kész a megoldás egyszerû. Ez szintén vonatkozik a .NET-re is, valakinek eszébe jutott, hogy miért ne írnák .NET kóddal az OS-t is, azért mert baromság lenne. Miért van C-ben a Linux Kernel, és nem pedig pl. C++ ban, hát azért mert C-ben gyorsabb kódot lehet írni, optimizáltabbat és stb és semmi szükség sincs, hogy C++ ban legyen a Kernel, ezt még maga Linus Torvalds is elutasította, mert akadt egynéhány szuper agy aki ezt ajánlotta. A Java pedig nem lassu, csak nem való mindenhová, a Barcelona Project meg nem kimondottan a Java gyorsaságáról szól "a több alkalmazás egyidejû futtatása révén növeli a Java skálázhatóságát, és csökkentheti a memóriaigényt", vagyis itt inkább a multithread (a multicore CPU-k megjelenése) az ami igazán fontos, a Sun gõzerõvel dolgozik azon, hogy a Java kód minnél hatékonyabb legyen a jõvõ gépein. Ezt maga a Sun Network is a Computer dumája és nem utolsó sorban a Sun Grid Computing fellépése is fókuszpontba hozta.
Intel.DZ77RE-75K.Core.i7-3770K.32GB.RAM.360GB.RAID.SDD.8TB.RAID.HDD.GTX660Ti.Dual.NEC.Windows.10.Enterprise Apple.Mac.mini.Core.i7-3615QM.16GB.RAM.1TB.HDD.OS.X.El.Capitan