2012/3/22 Αλκιβιάδης Μαυρίδης <[email protected]>: > Εγώ έχω μία ένσταση ως προς το κομάτι jvm.. Η Java ΔΕΝ τρέχει μόνο από jvm, > ευτυχώς υπάρχει και το gcj, που δημιουργεί java εκτελέσιμα. Επείσης, > προγράμματα που "τρέχουν" απ ευθείας από τον κώδικα δεν είναι πιο αργά απο αν > θα έτρεχαν από εκτελέσιμο; Γιατι (λογικά) είναι σαν να κάνεις όλη την ώρα > compile..
Δεν είναι ακριβώς έτσι τα πράγματα. Το JVM κάνει "compile" μόνο ό,τι χρειάζεται (κάνοντας cache τα inner loops κλπ) και έχει και τη δυνατότητα να κάνει optimizations at runtime έχοντας περισσότερη πληροφορία διαθέσιμη από ότι έχει ο compiler. Επίσης, όταν λέμε "compile" στο context του JVM εννοούμε μετατροπή από java bytecodes σε γλώσσα μηχανής, δηλαδή κάτι ιδιαίτερα γρήγορο, μη φαντάζεσαι ότι είναι σαν το compile της C/C++. (Το "compile" από java κώδικα σε bytecodes γίνεται στατικά όπως και στη C). Γενικά η εμπειρία μου ως τώρα είναι ότι τα καλά JVM τείνουν να έχουν καλύτερη ως πολύ καλύτερη απόδοση από το gcj. Ο κύριος λόγος ύπαρξης του gcj νομίζω ήταν το licensing και όχι το performance, λόγος που έπαψε να υπάρχει όταν βγήκε το openjdk. Δυστυχώς εκτός από τα γιγάντια εκτελέσιμα και το γενικά χαμηλότερο performance το gcj έχει και μεγαλύτερα προβλήματα συμβατότητας από ότι το openjdk. Με κάθε επιφύλαξη καθώς δεν είμαι java expert και οι γνώσεις μου για τη java είναι λίγο απαρχαιωμένες ίσως, αν εξαιρέσουμε τα σχετικά με το packaging. Χαιρετισμούς, Παντελής -- Ubuntu-gr mailing list [email protected] If you do not want to receive any more messages from the ubuntu-gr mailing list, please follow this link and choose unsubscribe: https://lists.ubuntu.com/mailman/listinfo/ubuntu-gr

