Turrican Δημοσ. 16 Αυγούστου 2005 Δημοσ. 16 Αυγούστου 2005 @dop.net anything, I don't care. Λογικά πάνω κάτω την ιδια IL δεν θα βγάλουν; Μια παρατήρηση, η συγγεκριμήνη μέτρηση δεν μετράει το βασικότερο IMHO, memmory allocation. Για δοκιμάστε να δημιουργήσετε μερικές χιλιάδες objects με primitives και references σε άλλα objects ενώ κατα διαστήματα σβήνετε μερικά από αυτα (για να κατακερματισθεί το heap). Προσωπικά βαριέμαι να κάνω κάτι τέτοιο αλλα λογικά εκεί οι managed γλώσσες πρέπει να αφήνουν τις υπόλοιπες πίσω.
dop Δημοσ. 16 Αυγούστου 2005 Δημοσ. 16 Αυγούστου 2005 Ποιος ξέρει; Μόνο η MS... Και προσωπικά θα το δοκίμαζα σε Mono - απευχθάνομαι τα platform specific. Όσο για το benchmark που προτείνεις, ναι μεν είναι πολύ καλό, αλλά μετράει άλλα πράματα και όχι computations... Άσε που έχει μεγάλη σημασία το λειτουργικό - στα windows θα έχεις χειρότερη επίδοση από το linux. Στο κάτω κάτω η δύναμη της Java είναι ότι σου επιτρέπει να κάνεις πανεύκολα multi-threaded applications με σχεδόν βέλτιστο τρόπο και η ασφάλεια που προσφέρει.
javanidhs Δημοσ. 16 Αυγούστου 2005 Δημοσ. 16 Αυγούστου 2005 . Η στοχαστική ολοκλήρωση είναι μία από αυτές κατά τη γνώμη μου. χεεχεχεχχε..καλο καλο! να τα σκεφτεις ξανα ολα αυτα..οταν θας πας να βγαλεις το ψωμι σου στην Καρακιτσος software...και θα σου σκασει το project 100000000 γραμμες κωδικα γραμμενο απο εναν μαλακα..και εσυ θα πρεπει να βγαλεις ακρη..τοτε θα καταλαβεις..το τι εστι εργαλειο..platform ..γλωσσα φιλικη ..υποτεχνολογιες κτλ κτλ.. προς το παρον μπορεις ακομα να αναλωνεσαι..σε loops αλλα δυστηχως χανεις την ουσια γιατι η εξελιξη αυτη την στιγμη βρισκεται σε αλλα πραγματα! αυτα απο μενα..τελος..γιατι μαλλον υπαρχει ...χασμα..γενεων!
Dikemou Δημοσ. 16 Αυγούστου 2005 Δημοσ. 16 Αυγούστου 2005 Στο παραπάνω πρόβλημα εξετάζω κάτι γενικότερο και «αντικειμενικότερο» από το συγκεκριμένο while loop. Εξετάζω όλο τον κλάδο προβλημάτων που χρησιμοποιούν τις μεθόδους της στοχαστικής ολοκλήρωσης και τις μεθόδους Monte Carlo είτε για υπολογισμό μεγεθών είτε για συστήματα προσομοίωσης. apo to jAPI tis Random: An instance of this class is used to generate a stream of pseudorandom numbers. The class uses a 48-bit seed, which is modified using a linear congruential formula. pos ilipoieitai i antistixoi random() ton allon glosson? Dioti an den kanei s autes tosa kolpakia, tote automata i sigrisi sou kathistatai anisi kai mi antikeimeniki
alkisg Δημοσ. 16 Αυγούστου 2005 Δημοσ. 16 Αυγούστου 2005 Πριν από καμιά 15ριά χρόνια που είχα κάνει disassembly την random της Pascal το έκανε με ένα πολυώνυμο και κρατούσε τις προηγούμενες τιμές 2 16bit ακεραίων για να υπολογίσει την επόμενη. Λογικά κάπου εκεί θα είναι και τα Delphi/C++ κτλ, υποθέτω θα έχουν απλά περάσει σε 32bit αριθμούς...
GothicCrusader Δημοσ. 16 Αυγούστου 2005 Μέλος Δημοσ. 16 Αυγούστου 2005 apo to jAPI tis Random: pos ilipoieitai i antistixoi random() ton allon glosson? Dioti an den kanei s autes tosa kolpakia' date=' tote automata i sigrisi sou kathistatai anisi kai mi antikeimeniki [/quote'] Ο τρόπος υλοποίησης δεν έχει σημασία όταν συγκρίνεις αλγορίθμους για να μετρήσεις επιδόσεις. Εξ ορισμού η σύγκριση εμπεριέχει και την έννοια της σύγκρισης των βιβλιοθηκών. Είναι δυνατό να πούμε ότι η VB δεν έχει το μειονέκτημα ότι είναι πιο αργή από τη C σε υπολογιστικά προβλήματα επειδή η σύγκριση είναι άνιση λόγω του ότι έχουν διαφορετικές υλοποιήσεις των αλγορίθμων στις βιβλιοθήκες τους; Μα σε κάθε μαθηματικό πρόβλημα, σε οποιαδήποτε γλώσσα και αν υλοποιηθεί η επίλυσή του, θα χρησιμοποιηθούν κάποιες από τις βιβλιοθήκες της εκάστοτε γλώσσας.
GothicCrusader Δημοσ. 16 Αυγούστου 2005 Μέλος Δημοσ. 16 Αυγούστου 2005 χεεχεχεχχε..καλο καλο!να τα σκεφτεις ξανα ολα αυτα..οταν θας πας να βγαλεις το ψωμι σου στην Καρακιτσος software...και θα σου σκασει το project 100000000 γραμμες κωδικα γραμμενο απο εναν μαλακα..και εσυ θα πρεπει να βγαλεις ακρη..τοτε θα καταλαβεις..το τι εστι εργαλειο..platform ..γλωσσα φιλικη ..υποτεχνολογιες κτλ κτλ.. προς το παρον μπορεις ακομα να αναλωνεσαι..σε loops αλλα δυστηχως χανεις την ουσια γιατι η εξελιξη αυτη την στιγμη βρισκεται σε αλλα πραγματα! αυτα απο μενα..τελος..γιατι μαλλον υπαρχει ...χασμα..γενεων! Δηλαδή το επιχείρημά σου είναι: «Η Java είναι καλή σε όλα εκτός από αυτά που όταν τα βρείτε θα πω ότι δεν ανήκουν στις εξελίξεις». Αυτό και αν είναι επιλεκτικό φιλτράρισμα. Όλα τα επιχειρήματα υπέρ της γλώσσας τα κρατάω γιατί έτσι με μάθανε, όλα τα επιχειρήματα κατά τα αφορίζω επειδή «δεν ανήκουν στις εξελίξεις». Κάτι σαν: στο cern και στο ΜΙΤ κάθονται και ασχολούνται με στοχαστικές μεθόδους. Πόσες γενεές πίσω μπορεί να είναι αυτοί οι άνθρωποι ...
GothicCrusader Δημοσ. 16 Αυγούστου 2005 Μέλος Δημοσ. 16 Αυγούστου 2005 Δε το κάνεις γιατί δεν είναι επιστημονικά τεκμηριωμένο. Δε βγάζεις κανένα ουσιαστικό συμπέρασμα. Δεν αναφερόμουνα για το "τι μπορείς να βρεις στο Ίντερνετ" αλλά για τα τόσα Journals που έχουνε γραφτεί. Θα προτιμούσα στο θέμα μας να γίνονται post αυτά και η συζήτηση να γινότανε γύρω από τα συμπεράσματα τους. Καταλαβαίνω αυτό που λες και όντως το διάβασα λάθος. Αλλά αλίμονο αν δεν έκανα τίποτα που να μην είναι «επιστημονικά τεκμηριωμένο». Το 80%+ των εργασιών που υπάρχουν στο Ίντερνετ δεν είναι «επιστημονικά τεκμηριωμένες» και άρα κατά συνέπεια είναι επιστημονικά αστήρικτες και δεν μπορούν να χρησιμοποιηθούν ως πηγές. Το 80% αυτών που χρησιμοποιούν το διαδίκτυο δεν γνωρίζουν τι σημαίνει επιστημονικά τεκμηριωμένο και χρησιμοποιούν τις πηγές με λάθος τρόπο. Αρχικά λοιπόν δεν νομίζω ότι ορίζεται «επιστημονικά τεκμηριωμένο» post σε forum. Από όσα μπορείς να ξέρεις' date=' εγώ μπορεί να είμαι 10 χρονών και να αντιγράφω κομμάτια κώδικα από μία ερευνητική εργασία του μπαμπά μου που με τη σειρά του την έχει αντιγράφει από ένα επίκουρο του Κεντάκι. Επομένως, κανένας δεν είναι υποχρεωμένος να πιστέψει ή να συμμεριστεί την αξιοπιστία αυτών που γράφω. Απλά αντί να γράφω «εμένα κατά τη γνώμη μου η C είναι πιο αργή/γρήγορη», γράφω «εγώ μέτρησα αυτά» και γράφω «εγώ ασχολούμαι με αυτά». Με αυτά ως αξιώματα νομίζω ότι γίνεται προφανές το γιατί γράφω «H Java είναι πολύ αργή». Γιατί αν σε εμένα το ratio είναι [b']1:9[/b], αυτό είναι γεγονός και όχι προσωπική άποψη. Τώρα, αν φταίει ο compiler, τότε μπορεί μέσα από τη διαδικασία να βρω το λάθος. Αν δεν φταίει ο compiler, τότε απλά συνεχίζουμε να ζούμε ο καθένας στη δική του πραγματικότητα. No hard feelings. No big deal.
GothicCrusader Δημοσ. 16 Αυγούστου 2005 Μέλος Δημοσ. 16 Αυγούστου 2005 Φίλε GothicCrusader, μιας και μπήκες στον κόπο δεν κάνεις και μία μέτρηση σε .Net; Προς το παρόν δεν θα το κάνω λόγω χρόνου. Μπορεί αργότερα. Για το memory allocation έχεις δίκιο. Αυτό ήταν σκόπιμο αφού στο συγκεκριμένο θέμα με ενδιαφέρει καθαρά η υπολογιστική ισχύς. Κατά τα άλλα με κάλυψε ο dop.
Dikemou Δημοσ. 17 Αυγούστου 2005 Δημοσ. 17 Αυγούστου 2005 epimeno oti an i Random tis Java kanei auta pou proeipa, kai an i rand() mias allis glossas epilegei kai epistrefei anamesa sta 1,2, tote i metrisi einai anisi... de se ipoxreonei kaneis na xrisimopoiiseis tis sigerimenes bibliothikes, mias kai tha mporousan i kathe mia na proorizetai gia allo skopo... an omos esi epilegeis na sigrineis an paei pio grigora mia mpoulntoza pou ama laxei sikonei kai merikous tonous, 'H i F1 pou isa pou sikonei ton odigo, tote aplos den eisai antikeimenikos...
Cue Δημοσ. 17 Αυγούστου 2005 Δημοσ. 17 Αυγούστου 2005 Συμφωνώ με τον Dikemou και επαυξάνω ότι όντως έτσι δε μπορείς να βγάλεις αντικειμενικά συμπεράσματα. Καταλαβαίνω αυτό που λες και όντως το διάβασα λάθος. Αλλά αλίμονο αν δεν έκανα τίποτα που να μην είναι «επιστημονικά τεκμηριωμένο». Αλίμονο ναι. Αλλά μη πάμε να βγάλουμε συμπεράσματα από κάτι το οποίο "δεν είναι επιστημονικά τεκμηριωμένο". Το 80%+ των εργασιών που υπάρχουν στο Ίντερνετ δεν είναι «επιστημονικά τεκμηριωμένες» και άρα κατά συνέπεια είναι επιστημονικά αστήρικτες και δεν μπορούν να χρησιμοποιηθούν ως πηγές. Το 80% αυτών που χρησιμοποιούν το διαδίκτυο δεν γνωρίζουν τι σημαίνει επιστημονικά τεκμηριωμένο και χρησιμοποιούν τις πηγές με λάθος τρόπο. Πάλι σε χάνω. Για ποιες εργασίες μιλάς? Για τα Journals? Που το στηρίζεις ότι "δεν είναι επιστημονικά τεκμηριωμένες"? Γνωρίζεις τι ακριβώς είναι τα Journals? (not being sarcastic! just asking). Το τελευταίο σχόλιο επίσης δεν κατάλαβα τι σχέση έχει. :/ Από όσα μπορείς να ξέρεις' date=' εγώ μπορεί να είμαι 10 χρονών και να αντιγράφω κομμάτια κώδικα από μία ερευνητική εργασία του μπαμπά μου που με τη σειρά του την έχει αντιγράφει από ένα επίκουρο του Κεντάκι.[/quote'] Επίσης πιστεύω ότι βάσει της εμπειρίας που έχω (όσο μικρή κι αν είναι αυτή) μπορώ να ξεχωρίσω μεταξύ ενός αλγόριθμου γραμμένο σε 5' χωρίς πολύ σκέψη και ενός αλγόριθμου από έναν "επίκουρο του Κεντάκι". Επομένως' date=' κανένας δεν είναι υποχρεωμένος να πιστέψει ή να συμμεριστεί την αξιοπιστία αυτών που γράφω. Απλά αντί να γράφω «εμένα κατά τη γνώμη μου η C είναι πιο αργή/γρήγορη», γράφω «εγώ μέτρησα αυτά» και γράφω «εγώ ασχολούμαι με αυτά». Με αυτά ως αξιώματα νομίζω ότι γίνεται προφανές το γιατί γράφω «H Java είναι πολύ αργή». Γιατί αν σε εμένα το ratio είναι [b']1:9[/b], αυτό είναι γεγονός και όχι προσωπική άποψη. Δεν αμφισβήτησα την αξιοπιστία των όσων γράφεις ούτε τα γεγονότα που παραθέτεις, but the reasoning behind it καθώς και την αξιοπιστία τους. Η θέση μου είναι ότι αν αντικειμενικά θέλουμε να δούμε το performance της κάθε γλώσσας το καλύτερο θα ήταν να ανατρέξουμε στα τόσα Journals που έχουν γίνει published και να τα μελετήσουμε.
dop Δημοσ. 17 Αυγούστου 2005 Δημοσ. 17 Αυγούστου 2005 Δεν υπάρχει κανένας λόγος να τσακωνόμαστε/αρπαζόμαστε/οτιδήποτε άλλο σε -στε. Η κάθε γλώσσα έχει τα δυνατά της και τις αδυναμίες της. Στην προκειμένη, η Java όντως χωλαίνει σε raw processing power, λόγω του ότι κάθε εντολή πρέπει να μεταφραστεί στην εκάστοτε γλώσσα μηχανής του υπολογιστή που εκτελείται, με αποτέλεσμα τις πενιχρές επιδόσεις. Βέβαια, το JIT κάνει θαύματα και κάθε έκδοση της Java είναι αρκετά πιο γρήγορη από την παλαιότερη (μην ξεχνάτε η Java είναι stack-based και γίνεται on-the-fly μετατροπή της σε native code από τον JIT). Όσο πιο έξυπνοι γίνονται οι μηχανικοί της SUN και όσο πιο καλούς τρόπους βρίσκουν για μετατροπή από bytecode σε x86 τόσο πιο γρήγορα θα τρέχει η Java, με πάνω όριο την ταχύτητα της C (αυτήν δεν μπορεί να την ξεπεράσει). Κατά τα άλλα, με την Java κάνεις πανεύκολα GUIs, κατανεμημένες εφαρμογές (οι δυνατότητες δικτύωσής της είναι πολύ καλές και το java.nio πραγματικά πλησιάζει τις επιδόσεις ενός καλόγραμμένου προγράμματος C) και το να κάνεις μια εφαρμογή πολυνηματική είναι πραγματικά παιχνίδι (δουλεύω και με mutexes και με το ενσωματωμένο monitor σύστημα της Java και ο κώδικας της Java είναι και πιο επεκτάσιμος και πιο ευέλικτος). Γλώσσα πανάκεια δεν υπάρχει. Όπως χρησιμοποιούμε την LISP, Prolog και κανά δυό ακόμα για AI, έτσι θα χρησιμοποιούμε Java για δικτυακές εφαρμογές, multi-platform applications (το OpenOffice είναι σε Java) και γενικά αρκετά robust (στα ελληνικά ποιος είναι ο καλύτερος όρος; ) εφαρμογές, αφού τα exceptions σε σώζουν. Όλα χρειάζονται: και η web apps, και ο επιστημονικός υπολογισμός και τα παιχνίδια. Και το καθένα έχει τις ιδιαιτερότητές του και απαιτεί μια tailor-made γλώσσα για να ταιριάζει. Προσωπικά, δεν θα ήθελα να έχω μία γλώσσα για όλα - άλλωστε δεν βολεύει... Τώρα, για τις μετρήσεις, ο καθένας μετράει ότι του χρειάζεται. Γεγονός είναι πως αν κάνεις simulations, εγώ προτιμώ το matlab και ας είναι πιο αργό. Αλλά έχει σχεδόν τα πάντα έτοιμα και δεν χρειάζεται να υλοποιώ μεθόδους για πολλαπλασιασμούς πινάκων, για να βάζω/βγάζω Gaussian θόρυβο και άλλα τέτοια. Αυτά γίνονται σε όλες τις γλώσσες, αλλά θα έπρεπε πρώτα να φτιάξω ένα scientific programming framework, να κάνω κάθε φορά compile κλπ κλπ.
GothicCrusader Δημοσ. 17 Αυγούστου 2005 Μέλος Δημοσ. 17 Αυγούστου 2005 Πάλι σε χάνω. Για ποιες εργασίες μιλάς? Για τα Journals? Που το στηρίζεις ότι "δεν είναι επιστημονικά τεκμηριωμένες"? Γνωρίζεις τι ακριβώς είναι τα Journals? (not being sarcastic! just asking). Το τελευταίο σχόλιο επίσης δεν κατάλαβα τι σχέση έχει. :/ Έχασα το post μου από illegal (doh!!)' date=' οπότε θα γράψω τηλεγράφημα (συγκριτικά με το προηγούμενο..). Δική μου η παρεξήγηση. Όταν έγραψες journals εγώ σκέφτηκα υποψήφιες δημοσιεύσεις, δηλαδή συμπεριλαμβάνοντας και όλες τις εργασίες που δεν έχουν περάσει από επιστημονική επιτροπή αλλά «έχουν δημοσιευτεί» στο Ίντερνετ. Αυτό οφείλεται στο ότι για να «δημοσιευτεί» κάτι στο Ίντερνετ δεν χρειάζεται αναγκαστικά να περάσει από επιτροπή. Η ισοδύναμα στο ότι μία «δημοσίευση» στο ίντερνετ δεν είναι αναγκαστικά «επιστημονικά δημοσιευμένη». Με τον όρο journals συνεπάγεται ότι τα άρθρα έχουν περάσει από επιτροπή οπότε έκανα λάθος και πάμε παρακάτω. Φυσικά και δεν διαφωνώ ότι θα ήταν «πιο επιστημονικό» να μιλούσαμε με πηγές από κάποιες επίσημες δημοσιεύσεις. Όπως το βλέπω, αν προτιμάς να γίνει κάτι τέτοιο μπορείς πολύ απλά να δημιουργήσεις ένα καινούργιο thread με αντίστοιχο θέμα και να μας παραπέμψεις στις πηγές που θες. Ως δημιουργός του thread προσανατόλισα τη συζήτηση καθαρά στο γιατί εγώ προσωπικά θα χρησιμοποιήσω τη C και όχι τη Java σε υπολογιστικά προβλήματα. Τώρα ... Ας πούμε τώρα ότι στις δημοσιεύσεις πράγματι λένε ότι τα + και - σε υπολογιστικά προβλήματα είναι τέτοια που τελικά η Java είναι ίση με τη C. Ας πούμε ότι εγώ υλοποιώ ένα συγκεκριμένο αλγόριθμο που μου προκύπτει ένας λόγος ταχυτήτων 1:9. Θα διαλέξω τη Java επειδή το λέει το journal ή τη C επειδή στο συγκεκριμένο πρόβλημα παίρνω αυτές τις ταχύτητες; Εσύ επομένως προτείνεις ένα αντικειμενικότερο και ευρύτερο θέμα συζήτησης. Εγώ ξεκίνησα ένα thread εντελώς προσαρμοσμένο στις δικές μου ανάγκες για να τεκμηριώσω τις δικές μου απόψεις. Το πόρισμα του δικού μου θέματος δεν είναι το γενικότερο «η Java είναι πιο αργή, μην γράφετε Java», αλλά το ότι «Υπάρχουν περιπτώσεις στις οποίες η επιλογή C ή Java καθορίζεται μόνο από τη διαφορά ταχύτητας». Αυτό έρχεται σε πλήρη αντίθεση με το: The decision to use C++ or Java will never be made on the basis of speed alone που ειπώθηκε με αυτά ή άλλα λόγια στο αρχικό thread.
Turrican Δημοσ. 17 Αυγούστου 2005 Δημοσ. 17 Αυγούστου 2005 Σαν πολλύ δεν το κουράσατε βρε παιδιά; Δηλαδή εντάξει, όλοι ξέρουμε οτι ένα πρόγραμμα που λειτουργεί σε "managed" περιβάλον (java, .net) είναι σε κάποιο βαθμό πιο αργό από ένα αντίστοιχο που δεν χρειάζεται τίποτα (C, C++). Κάποιος πρέπει να πληρώσει για τις υπηρεσίες του garbage collector, της μεταγλώτισης των bytecodes, κλπ. Οποιος δεν το πιστεύει αυτό, μάλλον είναι επηρεπής στο marketing της SUN και της Microsoft. Το θέμα είναι αν το "κόστος" ανταποδίδεται. Η πραγματικότητα και η βιομηχανία του software νομίζω αποδεικνύουν πως ναι...
valotas Δημοσ. 18 Αυγούστου 2005 Δημοσ. 18 Αυγούστου 2005 Και τα windows παίζουν με java (~) Το ότι έχει το δικό του VM σίγουρα δεν σημαίνει ότι «παιζει με Java». AFAIK' date=' το matlab έγινε αρχικά με fortran και μετά η εξέλιξή του συνεχίστηκε με C. Αν υπάρχει κάποιος ας μας διαφωτίσει.[/quote'] Auto gnwrizw kai egw. Epishs ta mathimatika functions sto Matlab einai kata to dynatoteron optimized gia eunoitous logous. Genikotera to matlab einai mia argoutsikh C me plousies vivlio8hkes gia ma8hmatika. Epishs xwris na eimai apolytos gnwsths tou olou 8ematos, den exw dei ma8hmatiko na douleuei se Java opote gia to sigekrimeno 8ema pou testareis tis glwesses, xronous mikrous 8a deis me glwesses opos C, fortan, C++ (isws) kai xronous ikanopoihtikous 8a deis me ma8hmatika paketa opos to Matlab. Giati sou fanike parakseno o xronos pou edwse to Matlab?
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.