Γι αυτό και έβαλα την περιττή MoveTriangle για να δεις ότι και με 800.000 επαναλήψεις, πάλι δεν αλλάζει τίποτε. Όσο για τα αντικείμενα που δημιουργούνται ενδιάμεσα, ε ναι. Και στην VB6 πάλι δεν θα τα δημιουργούσες? Και δεν θα έτρωγες το performance hit επειδή θα τα καθάριζες ένα-ένα αντί όλα μαζί στο τέλος? Ο λόγος που ο garbage collector δεν εκτελείται συνέχεια είναι ότι το καθάρισμα κοστίζει σε CPU. Αντί για πολλά μικρά καθαρίσματα έχεις ένα μεγάλο, μόνο όταν χρειαστεί.
Αν σκεφτείς ότι στόχος σου είναι να τελειώσει ο υπολογισμός γρηγορότερα, ή να μπορέσεις με το ίδιο μηχάνημα να επεξεργαστείς περισσότερα τρίγωνα, θα δεις ότι το κυνήγι της μνήμης είναι δευτερεύον. Για παράδειγμα, είναι ΚΑΛΟ να μην μοιράζεσαι αντικείμενα, γιατί έτσι μπορείς να τα επεξεργαστείς παράλληλα. Διαφορετικά, cores τα οποία προσπαθούν να επεξεργαστούν διαφορετικά τρίγωνα θα αναγκαστούν να περιμένουν το ένα το άλλο αν αυτά τα τρίγωνα "μοιράζονται" κορυφές.
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos