Monday, August 29, 2005

Java, προγράμματα που χάνουν λάδια και μια τρελή ιδέα...

Κοιτάξτε αυτό το line από top: 18233 erebus 20 0 311m 88m 25m S 0.7 8.8 9:12.54 java Να ´ναι καλά ο azureus... Τέτοια σπατάλη μνήμης δεν την βρίσκεις εύκολα. Τουλάχιστον, με την sun-jre 1.5 δεν δείχει να έχει memory leakage όπως με την blackdown που μετά από 2 ημέρες αναμμένος μου έκανε το responsivity του desktop σώβρακο. Απαράδεκτο για ένα μηχάνημα που αφήνω on ακόμα και 30 ημέρες και βάλε... Το καλό βέβαια είναι ότι έστω κι έτσι, αν το κλείσω το ρημάδι, everything is back to normal, χωρίς να πρέπει να κλείσω τον Χ η ακόμα και ολόκληρο το pc - μια μεγάλη διαφορά με το "άλλο" OS από το Redmond :-P Γενικά πάντα μου την έσπαγε η java, είχα πάντα την εντύπωση πως τα προγράμματα γραμμένα σε java ήταν "τεράστια", δυσκοίλια και γενικώς μαλακισμένα εκ σχεδιασμού λόγω της VirtualMachine. Την ανωμαλία που παρουσιάζει ο azureus όμως δεν ξέρω πως να την δικαιολογήσω έστω και βρίζοντας την java. Κι αυτό μου γέννησε μια αμφιβολία: μήπως δεν φταίει η java που τόσα προγράμματα είναι χάλια αλλά οι ίδιοι οι coders; Μήπως δηλαδή η java προσελκύει περισσότερους "ατζαμήδες" αφήνοντας ένα πρόγραμμα κουτσά-στραβά να δουλέψει ακόμα κι όταν ο interpreter θα έπρεπε να το αρπάξει και να το στείλει (πακέτο ίσως με τον coder παρέα) κατευθείαν στο /dev/null; IANAP, όχι τουλάχιστον σε java, οπότε ας μου εξηγήσει κάποιος πιο "ειδικός" το πως και το γιατί... Η τρελή ιδέα τώρα... Μιλώντας με έναν φίλο για μνήμη με το κιλό που μπορείς να βάλεις σε ένα καινούριο pc (βλέπε 4Gb), είπα για πλάκα: "καλά εκεί πάνω φορτώνεις κι ολόκληρο το OS". Η "ιδέα" έκανε κλικ και στους δυο μας ταυτόχρονα... Γίνεται να φορτώσεις με initrd τα ποιο critical κομμάτια σε ramfs κατά το boot. Εμπρός λοιπόν με το du -sh να δούμε πόσο θέλουμε για /bin, /sbin, /lib, /usr/bin, /usr/sbin, /usr/lib, /usr/include, /usr/kde/3.4, /opt/openoffice και /opt/java στο ομολογουμένως "παραφορτωμένο" desktop box μου. Απάντηση; Κάτι ψιλά λιγότερο από 2Gb. Αν σκεφτείς τώρα πως με ένα Gb RAM είμαι κομπλέ στο παρόν pc μου (για να κάνει swap πρέπει να έχει συμβεί ένας θεός ξέρει τι) και συνυπολογίσεις το overhead από το 64bitο αλλά και το prelinking όπου συμφέρει (είπαμε, αν είναι να κάνεις μια μαλακία να την κάνεις ολόκληρη), ένα Athlon64 με 4Gb μνήμη είναι ότι πρέπει για τούτη την παλαβομάρα. Μόνο πρόβλημα είναι πως τα modifications (κυρίως installs) δεν θα γράφονται στον δίσκο και σε ενδεχόμενο shutdown/power-loss θα χάνονται αν δεν κάνεις dump στο δίσκο μέσα από cron-job αρκετά συχνό ώστε να σου γυρνάει boomerang το performance. Μία λύση θα ήταν να "χακέψω" το emerge (είπαμε, τρελός και παλαβός χρήστης gentoo) ώστε να κάνει παράλληλο install σε RAM και δίσκο κι ας δείχνει ψιλοπερίπλοκο με διπλά mount points και τρέχα γύρευε. Διαφορετικά, το να κάνεις reboot σε νορμάλ σύστημα (στο δίσκο όλα, boot option χωρίς το initrd) για να κάνεις install μια μαλακίτσα, well, it defies the reason... Θα μ´άρεσαν που λέτε όλα αυτά, και μάλλον θα το δοκίμαζα... αν δεν είχα το πιο βασικό πρόβλημα απ´ όλα και καμία λύση: που να τα βρω τα φράγκα να στήσω τέτοιο μασίνι ρε μάγκες; Εδώ κηνυγάμε τις δουλειές μπας και την βγάλουμε ψιλοκαθαρή, θα πάω να δώσω ένα χιλιαρικάκι για να "ξεκαυλώσω"; Και βλέπεις τους καφρο-gamers, να ψωνίζουν 64bitα με τα λεφτά του μπαμπά για να παίξουν GTA Sant Andreas σε ΠΑΤΖΟΥΡΙΑ (τα γνωστά, του Redmond) που ανάθεμα κι αν χρησιμοποιούν έτσι έστω και την μισή τεχνολογία που τους παρέχεται... Αλλά εντάξει, τι μου φταίνε κι αυτοί; Αφού τα έχουνε, καλά κάνουν και τα χαλάνε. Ααααχχχ, life ain't fair!!!

No comments: