JAmiga
-
Hello,
Je ne sais pas si ici tout le monde connait le projet JAmiga. Il s’agit d’une machine virtuelle Java dont l’auteur semble très motivé et comptétent.
Voici un benchmark de Java vs C++ … Défoulez-vous sur ce sujet
Toine
Tain le gars compare gcc à java cé débile.
D’abord gcc cé un compilateur lent et les programmes de test font pitiés…
Pour des petits programmes, le code java de toute façon est surement mis en cache donc pas de différence notable avec gcc…Surtout que java est optimisé pour certaines opérations particulières (sur les chaînes de caractère pour afficher les résultats pr exemple…).
Quand au reste java rame. Le gars aurait du essayer de faire un moteur3D en java pour apprécier les limites du concept.
Il serait difficile de croire que du code exécuté dans une machine virtuelle ou interprété soit plus rapide que du code natif…Sinon on devrait faire les OS derrière jvm et le fait d’avoir un X86 ou PPC serait la même chose
Cki serait cool c’est à partir du binaire java de le décompiler pour avoir les sources java puis de le recompiler mais avec des primitives en C/C++ Fini le Java qui rame et qui nécessite des serveurs super chers pour exécuter des servlets (que les professionnels développent sous java pour la facilité de portage, le multiplatformisme!!! Il fallait faire un framework multiplateforme sont cons les gars).
Pis ca serai marrant d’avoir la machine qui exécute le java le + vite Fallait y penser supprimer la virtual machine pour aller plus vite (euh enfin la compilation c’est long quand même). Allez pour l’fun on garde la virtual machine pour les applets du web et la possibilité de recompiler 100% natif powerpc MOS. Avec ca on rapatri les professionnels égarés
Allez j’déconneuuuuuuuuu mais fo y réfléchir quand même
voilà cke G posté dans un précédent thread
En dehors des considérations de performances, y’a tout un tas d’applis java et de pages ouèbe qui n’attendent qu’une JVM.
Ouais mais alors autant porter un des projets opensource de jvm…Parce que tout refaire ca prendra bcp de temps en espérant que java évolue poa trop 😮
ce qui rend les applis java pénible, c’est pas tant les performances en traitement brut, une fois le code en cache, ça va pratiquement aussi vite qu’en natif, non, ce qui fait la lourdeur apparente de java, c’est la JVM justement … elle est lourde et met bcpo de temps à s’initialiser, mettre les premiers code en cache, etc etc … ouvrir une GUI en java, c’est écoeurant, c’est mou comme c’est pas permis.
Mais là encore, on parle de JVM sur Windows ou Linux … on n’a pas encore assez d’éléments sur Amiga pour pouvoir comparer … si ça se trouve, JAmiga est tout léger et se lance à la vitesse de la lumière ce qui rendrait les applis java bien plus agréables à utiliser … mais bon, on en est pas encore là, il manque trop de choses pour le moment.
Ouais mais alors autant porter un des projets opensource de jvm…Parce que tout refaire ca prendra bcp de temps en espérant que java évolue poa trop
Ben le language Java n’évolue pas excessivement vite mais les JVM si. JAmiga tente d’apporter une JVM compatible 1.4 pour Amiga et ça serait déjà un grand pas ! La version 1.5 n’est encore qu’en béta-test.
Sinon, comme ça a été dit sur mdc, développer sa propre JVM en partant de rien est plus marrant à faire qu’à porter et débugguer une JVM écrit par quelqu’un d’autre
Toine
Quand au reste java rame. Le gars aurait du essayer de faire un moteur3D en java pour apprécier les limites du concept.
Oui Java3D est plutôt lent. Mais as-tu déjà essayé les bindings OpenGL ? Quant aux tracés 2D, Java est maintenant capable de gérer les bitmap directement en mémoire graphique ce qui accèlère grandement toutes les opérations de tracé. (réellement utilisable à partir de la 1.4.2)
Toine
Hum j’avais fait des sources de 3d mappée ya 6 ans me semble en java…(à l’époque fenêtre 100*100 et ca rame heh).
En fait je vois l’intérêt de Java dans les applis web cé sûr encore que maintenant on peut pas dire qu’il y ait une grande diversité de plateformes…
Pour moi l’intérêt est en 3 points:
– fournir une sorte de fichier précompilé pour que la machine virtuelle le convertisse rapidement en code natif. La compilation sur des procs différents ne pose aucuns problèmes (voir linux ) mais est longue…
– gérer les droits d’accès au reste du système indispensable dans les applets web.
– donner une interface graphique, E/S, processus +/- indépendante du processeur et du système d’exploitation.
Maintenant les développeurs ne sont pas intéressés car la JVM a ses limites. Par exemple un jeu qui prend 100Mo de RAM peu nécessiter une gestion de la mémoire virtuelle, segmentation/pagination en accord avec le système d’exploitation surtout si plusieurs programmes java tournent en même temps.
En gros accéder directement à opengl ne change pas le problème…Les OS ont des algos très optimisés pour gérer les processus, E/S, interblocages, systèmes de fichiers au plus bas niveau et en accord avec le proc. La JVM est une surcouche qui si elle vient à gérer trop d’appli java en parallèle en consommant un peu de RAM s’écroule forcément (cé mathématique) 😡 .
Sur Linux Wine a d’ailleurs été la seule solution viable pour avoir des jeux de qualités. Les développeurs ne s’intéressent qu’aux PC windaubés et ca changera poa de sitôt.
En gros ya de l’avenir pour java mais juste pour des applications isolées au des jeux et point trop à la fois
Y’a pas un port de mame en java, qu’on rigole bien fort ? ))
Il y a deja le client dnetc en Java )
http://www.morphos-news.de/guides/rc5-72/dnet-mos-stats.php
J’attend avec impatience MAME, UAE, ou Mozilla… )
Bye
Non il est en C (portable). Mais à peu de choses près, il passerait très bien sous la moulinette d’un compilo c++.
Je te vois déjà crier que c’est pas objet et que c’est sale.
C’est trés propre le C
Enfin ce que je voulais bien sûr dire dans le fond, c’est que j’aimerais voir les perfs d’une appli imposante et gourmande en java.
Si y’a un dnetc en java, ça peut être drôle, mais ce n’est pas un test suffisant à mon goût. Je préfèrerais un test qui fasse un peu plus appel aux couches graphiques sonores etc…
Quake II
…en passant, un projet de jeu que je suis depuis un moment :
http://www.abandonedcastle.com/screenshots.html
Toine
tetuzo a écrit :
Hum j’avais fait des sources de 3d mappée ya 6 ans me semble en java…(à l’époque fenêtre 100*100 et ca rame heh).
C’est ça le problème dès qu’on parle de JAVA : les gens le jugent en parce qu’ils en connaissant d’il y a 6 ans. Et encore, je ne parle pas de ceux qui ne font que rapporter que « JAVA c’est lent » parce qu’ils l’ont entendu je ne sais où.
J’ai fait du JAVA avec la JVM 1.2 : c’était lent, en effet. Maintenant, ça a évolué et je ne suis pas sûr d’avoir écrit des programmes de telle sorte que ça aille vite.
Euh j’en ai fait ya 6 ans et bcp plus récemment… Le concept de machine virtuelle même est remis en question pour certains types d’applications.
Mettre en cache cé bien bô mais en gérant la parallélisme, la mémoire, la gestion des processus et E/S, … des systèmes d’exploitation cé tout simplement pas à l’ordre du jour. (Java est une surcouche « légère »).
Rajouter une surcouche et augmenter sa taille ca fait ramer grave les grosses applications. Aujourd’hui on se dit qu’il suffit de mettre + de ram et un processeur plus puissant…
Mais s’il existe des systèmes logiciels et matériels différents cé pour des choix stratégiques en terme de coût/performance/marché…Si on voulait que toutes les architectures soient compatibles il suffirait de faire que des pentium/windaube (d’ailleurs cé poa cki se passe?). Du coup microsoft se dit ke le .net fera bien l’affaire et l’impose +/- face au java car il est plus flexible. C’est poa pour rien que Visual C++ .net est gratuit maintenant et devrait opérer sous linux…
De tte façon les éditeurs de jeux ne développent poa pour java. Pour des tests à la con où on compare des fonctions, java parait plus rapide, pour des applications de taille moyenne avec un peu de parallélisme ya déjà plus personne.
Java c’est pour le web, les servlets et pour le reste ya mieux! 😡
Hello
Euh j’en ai fait ya 6 ans et bcp plus récemment… Le concept de machine virtuelle même est remis en question pour certains types d’applications.
Il est clair qu’on ne peut pas tout faire via une vm… Comme on ne peut pas tout faire en assembleur… (ex: driver en Java ou traitement de texte en assembleur). Chaque chose a son domaine d’application.
Mettre en cache cé bien bô mais en gérant la parallélisme, la mémoire, la gestion des processus et E/S, … des systèmes d’exploitation cé tout simplement pas à l’ordre du jour. (Java est une surcouche « légère »).
Il y a déjà un OS basé sur Java (nommé Java Desktop). Les APIs Java offrent de nouvelles fonctionnalités au niveau IO, au niveau GUI, au niveau mémoire (intéraction avec le Garbage Collector), au niveau multimédia (Java Media FrameWork), …
Aujourd’hui on se dit qu’il suffit de mettre + de ram et un processeur plus puissant…
Mouais … Les JVM sont de plus en plus intelligente. Elles démarrent plus vite, gèrent mieux la mémoire, etc… Par exemple, sur les téléphones portables récents, Java s’en sort extrèmement bien, grâce à un co-processeur interprétant le byte-code Java.
Si on voulait que toutes les architectures soient compatibles il suffirait de faire que des pentium/windaube (d’ailleurs cé poa cki se passe?)
Non, les grosses structures ont des serveurs Unix/Linux et des postes clients sous Windows.
Du coup microsoft se dit ke le .net fera bien l’affaire et l’impose +/- face au java car il est plus flexible. C’est poa pour rien que Visual C++ .net est gratuit maintenant et devrait opérer sous linux…
.NET est pas mal sur plusieurs points mais il ne fonctionne que sous Windows … (me parle pas du projet Mono non supporté par Microsoft et qui est une horreur)
De tte façon les éditeurs de jeux ne développent poa pour java.
Pour l’instant c’est vrai vu le monopole de Windows et les performances élevées demandées sur console. Mais sur téléphones par exemple c’est faux.
Java c’est pour le web, les servlets et pour le reste ya mieux!
Dis toi que Java est maintenant un langage aussi utilisé que le C++. C’est pas pour rien …
Toine
- Vous devez être connecté pour répondre à ce sujet.
› Forums › AmigaOS, MorphOS et AROS › Développement › JAmiga