• [^] # Re: Excellent

    Posté par . En réponse à la dépêche Le code de Java3D est disponible. Évalué à 1.

    > Il est compilé au vol, comme le C# et sur une application qui ne tourne pas 5 secondes, cela permet de faire des optimisations qui ne sont pas possible à faire (ou très difficile à faire) statiquement, ce qui donne au final un code qui est parfois plus rapide.

    Certes mais quand tu vois le temps que ça prend de compiler un programme avec toutes les optimisations en C ou en C++, le fait de compiler a la volée veut dire aussi qu'il y a des tas d'optimisation que tu ne peux pas faire car elle ralentirait trop l'execution du programme..

    Pour ton exemple de bornes de tableau: un compilateur statique pourrait tres bien faire la meme chose! Il compile deux versions du code de la boucle et genere un test en entrée: si le test d'entree indique que la borne du tableau n'est jamais dépassé, il entre dans le code sans tests dans la boucle sinon il va dans le code "normal".

    Bien entendu, un compilateur a la volée a le maximum d'information sur l'état courrant réel, mais un compilateur statique qui optimise d'apres un profil d'execution, cela peut faire des trucs sympa aussi: il a le temps lui.. Mais bien sur le profil de test peut être partiellement different de l'usage réel.