Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

.NET και ταχύτητα - Το Paint.NET

Îåêßíçóå áðü ôï ìÝëïò Παναγιώτης Καναβός. Τελευταία δημοσίευση από το μέλος Dimitris στις 20-12-2004, 01:11. Υπάρχουν 40 απαντήσεις.
Σελίδα 3 από 3 (41 εγγραφές)   < 1 2 3
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  17-12-2004, 22:16 692 σε απάντηση της 670

    Re: .NET και ταχύτητα - Το Paint.NET

     pkanavos wrote:

    Ξέρω ότι το  CLR συμπεριφέρεται διαφορετικά ανάλογα με το αν τρέχει σε server ή client, τουλάχισον όσον αφορά τη διαχείριση της μνήμης. Μήπως έχει επίδραση και στο JIT?



    Εννοείς το mscorsvr.dll και mscorwks.dll που ενεργοποιούνται από το mscoree.dll ανάλογα με τον αριθμό των CPU? Όσο και αν έχω ψάξει δεν έχω βρει καμιά αναφορά...

    Πάντως μια και το αναφέραμε, διάβασα ότι στο .ΝΕΤ 2.0 όλος ο κώδικας του mscorsvr.dll έχει περάσει στο mscorwks.dll και θα μπορεί να γίνεται δυναμική επιλογή του GC μέσα από το app.config. Όποιος έχει εγκαταστήσει το Widbay μπορεί να τσεκάρει το μέγεθος των dlls...

    Επίσης, βρήκα κι αυτό το weblog στο οποίο αναφέρει ότι δεν υπάρχουν δύο versions του GC αλλά τρεις! Χμμμμ... [*-)] ενδιαφέρον...
    Vir prudens non contra ventum mingit
  •  18-12-2004, 01:11 693 σε απάντηση της 260

    Re: .NET και ταχύτητα - Το Paint.NET

    Μάλιστα, έπειτα από τη μικρή μας "μάχη" ξανακοίταξα τα περί generics και οφείλω να απολογηθώ οτι έκανα λάθος σε μεγάλο βαθμό. Διαβάζοντας παλαιότερα το link που έδωσα παραπάνω είχα καταλάβει οτι για διαφορετικούς τύπους θα έπρεπε να δημιουργηθεί διαφορετικός κώδικας - σαν templates -, πράγμα που φαίνεται να ισχύει μόνο για τους βασικούς τύπους.

    Παρόλαυτά, η υλοποίηση της M$ απαιτεί περισσότερη μνήμη καθώς δημιουργεί και διαφορετικά vtables για τους reference τύπους-παράμετρους...
  •  18-12-2004, 01:37 694 σε απάντηση της 676

    Re: .NET και ταχύτητα - Το Paint.NET

    >>>
    Οσο για τη java και τα generics της, προσπαθησε, οσο μπορεις βεβαια,  να εξηγησεις γιατι τα εβαλε τωρα και οχι πριν περιπου 10 χρονια που ξεκινησε αυτη η ιστορια.(και γι'αυτο μπηκαν ετσι οπως μπηκαν, βλεπεις υπηρχε τεραστια εγκατεστημενη βαση και αν δε γινει κατι σωστα απο την αρχη, μετα υπαρχουν τα "μπαλωματα"...)
    <<<

    Υποθέτω οτι λόγοι ανταγωνισμού και marketing τους οδήγησαν σε αυτό. Δεν με ενδιαφέρει ομως γιατι αποφάσισαν να το κάνουν τώρα ή μετά από 10 χρόνια ή αν δεν το κάναν ποτέ. Το θέμα είναι οτι έγινε και όχι δεν είναι "μπάλωμα"!

    >>>
    Φιλαρακο, το iIndustry στο οποιο δουλευουμε (εγω σιγουρα, για σενα δεν ξερω) δεν στεκεται με αποψεις σαν τις δικες σου, δε στεκεται δηλ. φορωντας microsoft η αντι-microsoft γυαλια...
    <<<

    Εγώ δεν μιλάω εκ μέρους καμιας iΒιομηχανίας ουτε με ενδιαφέρει τι κάνουν εκεί. Ασχολούμαι με το αντικείμενο πρώτα για προσωπική μου "ικανοποίηση" και μετά επαγγελματικά. Α, και δεν φοράω γυαλιά μόνο φακούς Smile

    >>>
    Και χανω τωρα εγω (και αλλοι απ'οτι ειδα εδω περα,) τον χρονο μου ν'απανταω σ'εσενα.

    Τι να σου πω...

    <<<

    Λυπάμαι που σπατάλησες τον πολύτιμο σου χρόνο να ασχοληθείς με τον - άσχετο - εμένα. Θα πρέπει να είσαι πολύ σημαντικός άνθρωπος τελικά!
  •  18-12-2004, 14:10 696 σε απάντηση της 694

    Re: .NET και ταχύτητα - Το Paint.NET

    /*
    Υποθέτω οτι λόγοι ανταγωνισμού και marketing τους οδήγησαν σε αυτό. Δεν με ενδιαφέρει ομως γιατι αποφάσισαν να το κάνουν τώρα ή μετά από 10 χρόνια ή αν δεν το κάναν ποτέ. Το θέμα είναι οτι έγινε και όχι δεν είναι "μπάλωμα"!
    */

    Ποιοι λογοι "ανταγωνισμου" και "marketing" ?????
    Οταν ξεκινησε αυτη η ιστορια που λεγεται Java, δεν υπηρχε ανταγωνισμος, τουλαχιστον σε καμμια περιπτωση σε σχεση με αυτον που εχει τωρα.
    Ειχαν ολο το χρονο να σχεδιασουν κατι σωστα αλλα δεν το εκαναν,
    οχι τουλαχιστον οτι αφορα τα generics.
    Αρα, γιατι δεν μπηκαν σωστα απο τοτε ??
    Και μην επιμενεις για το "μπαλωμα"...Δυστηχως ετσι ειναi.


    /*
    Εγώ δεν μιλάω εκ μέρους καμιας iΒιομηχανίας ουτε με ενδιαφέρει τι κάνουν εκεί. Ασχολούμαι με το αντικείμενο πρώτα για προσωπική μου "ικανοποίηση" και μετά επαγγελματικά. Α, και δεν φοράω γυαλιά μόνο φακούς Smile
    */

    Εγω ομως αχολουμαι κυριως επαγγελματικα και μετα για προσωπικη μου ικανοποιηση...Ελπιζω να καταλαβαινεις τη διαφορα...

    /*
    Λυπάμαι που σπατάλησες τον πολύτιμο σου χρόνο να ασχοληθείς με τον - άσχετο - εμένα. Θα πρέπει να είσαι πολύ σημαντικός άνθρωπος τελικά!
    */

    Μπορει και να'μαι, αλλωστε, υπαρχει πολυ μεγαλη πιθανοτητα σε 6 μηνες να δουλευω στην ιδια τη Microsoft, στο Seattle...
    Αρκει να παρω τη μεγαλη αποφαση να ξενιτευτω κι εγω οπως και ο κολλητος μου που ηδη δουλευει εκει.Wink


    Software Engineer, specializes in Microsoft .net/C#, COM, Sql Server and now Python.
  •  18-12-2004, 14:39 697 σε απάντηση της 696

    Re: .NET και ταχύτητα - Το Paint.NET

    Παιδιά, ή θα συζητήσουμε για ενδιαφέροντα θέματα ή θα σας θάψω στα papers! Angry

    Άρχισα να βαριέμαι αυτή τη συζήτηση. Όχι το Java εναντίον C#, αλλά τα προσωπικα (λες και είμαστε στη Βουλή! [+o(] )  και τα ΑΝΟΥΣΙΑ ΚΑΙ ΑΣΤΗΡΙΚΤΑ "ΕΠΙΧΕΙΡΗΜΑΤΑ" Angry !

    Αντί για "επιχειρήματα" του στυλ "Εγώ ξέρω, εσύ δεν ξέρεις" ή "κάπου το διάβασα" καλύτερα είναι να γράφουμε συγκεκριμμένα επιχειρήματα ΚΑΙ ΤΙΣ ΑΝΑΦΟΡΕΣ ΤΟΥΣ! ΤΑ LINKS! Ή αν είναι αναφορές σε περιοδικά ή άρθρα, κανονικές αναφορές (βιβλίο ή περιοδικό, άρθρο, σελίδα). Δεν είναι κανείς αναγκασμένος να προσπαθεί να μαντέψει αν αυτά που γράφει ο άλλος έχουν βάση ή είναι λόγια του αέρα.

    Αν θέλετε να συζητήσετε για τα vtables της C# ή της Java ή της Delphi, γράφτε και τις ΠΑΡΑΠΟΜΠΕΣ! ΠΟΥ το λέει ότι η C# έχει 1, 2, 3 ή 4 vtables? ΓΙΑΤΙ έχει αυτό σημασία στη συζήτησή μας?

    Ή, αν θέλετε, μπορούμε να συζητήσουμε σοβαρά. Την έχω βρει με τα templates από την πρώτη στιγμή που ανακάλυψα την STL (κάπου το 1996). Την έχω βρει επίσης με τα patterns και τα template policies. Την έχω βρει με τα χίλια είδη του generative programming. Τα generics είναι ΜΟΝΟ ένα είδος και δεν είναι ανακάλυψη της Sun ή της Microsoft. 
      
      Αν θέλετε να μιλήσουμε για το πως ΞΕΠΕΡΝΑΕΙ κανείς τους περιορισμούς των υλοποιήσεων της Java ή της C#, εντάξει. Πως μπορεί κανείς να κάνει metaprogramming ή AOP με την κάθε υλοποίηση, εντάξει.

    Για παράδειγμα, πως θα πετύχω να χρησιμοποιήσω mixins (ορισμός εδώ και εδώ) χρησιμοποιώντας generics? Τί άλλους τρόπους έχω για να πετύχω το ίδιο αποτέλεσμα? Και πριν πεί κανείς "αυτό το έβγαλε πρώτη η ΤΥΦΧΨΩ εταιρεία", να ξέρετε ότι προέρχονται από την Lisp.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  18-12-2004, 17:57 700 σε απάντηση της 697

    Re: .NET και ταχύτητα - Το Paint.NET

    Microsoft:
    http://research.microsoft.com/projects/clrgen/generics.pdf

    Pizza, GJ:
    http://pizzacompiler.sourceforge.net/doc/papers.html
    http://homepages.inf.ed.ac.uk/wadler/pizza/gj/

    Άλλα:
    http://wesnerm.blogs.com/net_undocumented/2004/07/java_generics.html
  •  18-12-2004, 18:17 701 σε απάντηση της 700

    Re: .NET και ταχύτητα - Το Paint.NET

    Δυστυχώς δεν κατάλαβες τί εννοούσα. Δεν λέω να βάλεις Links στα sites των προϊόντων ή βιβλιοθηκών που αναφέρεις, αλλά όταν αναφέρεις κάτι που διάβασες αλλού, να προσδιορίζεις το που. Αν είναι συμπέρασμα στο οποίο έφτασες μόνος σου, θα πρέπει να περιγράψεις πως.

    Για παράδειγμα, λες ότι το .NET έχει δύο vtables. Πού το διάβασες αυτό? Γιατί όταν κοίταζα για τον τρόπο με τον οποίο υλοποιούνται τα virtual methods δεν βρήκα να αναφέρει κάτι τέτοιο. Κοίταξα στο "Essential .NET" του Don Box (Addison Wesley, 2003, ISBN 0-201-73411-7, Κεφ. 4, 6).

    Όσον αφορά αυτά τα links, το link της Microsoft αναφέρεται στο ερευνητικό project από το οποίο βγήκαν τα generics. Δεν έχει σχέση με την υλοποίηση του Whidbey. Τα άλλα δύο δεν αναφέρουν τίποτα σχετικό με τη συζήτηση και το τρίτο απλά λέει ότι τα Java generics μάλλον θα είναι το ίδιο γρήγορα με τη C# αλλά θα θέλουν τροποποιημένο JVM.
    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  19-12-2004, 15:35 705 σε απάντηση της 701

    Re: .NET και ταχύτητα - Το Paint.NET

    Αν διάβαζες λίγο τα links που έδωσα θα έβρισκες τις αναφορές που θέλεις!

    Στο πρώτο link (the microsoft one) στο μέρος 4 με τίτλο "implementation" τα εξηγεί όλα, την μέθοδο που χρησιμοποίησαν, τις εναλακτικές, υπέρ, κατά, και με είκονες ολα είναι πολύ αναλυτικά. Έτσι έχουν υλοποιηθεί ta generics στο .net και για αυτό είμαι 99.9% σίγουρος! Smile

    Τα  άλλα δύο μόνο άσχετα με την συζήτηση δεν είναι. Αναφέρονται στο project Pizza ή αλλιώς GJ (Generic Java - εν έτη 1996 παρακαλώ) από οπου και προέκυψε η υλοποίηση της SUN στην "επίσημη" Java. Μάλιστα το γράφει και με ΚΕΦΑΛΑΙΑ BOLD γράμματα επάνω επάνω. Δηλαδή έλεος... Smile

    Το τρίτο αναφέρει γιατί ο δρόμος που ακολούθησε η SUN δεν είναι χειρότερος από αυτόν της M$...

    Τέλος θέλω να πώ οτι υπάρχουν και άλλες μεθοδοι για να υλοποιηθούν τα Generics εκτός από αυτές της M$ και της SUN, δεν το εχω ψάξει πολύ το θέμα εκεί αλλά καμία δεν θεωρήται "μπάλωμα". Η κάθε μία υπηρετεί άλλους στόχους και έχει τα υπέρ και τα κατά της.

    Τέλος δεν ξαναασχολούμαι άλλο με αυτό το θέμα, κουράστηκα!
  •  19-12-2004, 18:04 706 σε απάντηση της 705

    Re: .NET και ταχύτητα - Το Paint.NET

     Dimitris wrote:


    Το τρίτο αναφέρει γιατί ο δρόμος που ακολούθησε η SUN δεν είναι χειρότερος από αυτόν της M$...



    Έχω  παρατηρήσει ότι γράφεις συνέχεια M$, M$, M$... Γιατί δεν γράφεις και $UN? Big Smile
    Vir prudens non contra ventum mingit
  •  19-12-2004, 19:19 707 σε απάντηση της 705

    Re: .NET και ταχύτητα - Το Paint.NET

       Το παραπάνω άρθρο το έχω υπόψη, το έχω διαβάσει από τότε που πρωτοβγήκε και το γεγονός παραμένει ότι είναι ένα παλιό άρθρο για ένα research project. Είναι σαν να έρθω εγώ και να ισχυριστώ ότι τα Generics της Java υλοποιούνται με τον ίδιο τρόπο όπως στο Pizza το 1997.
       Τα επόμενα δύο περιγράφουν το Pizza, δεν ενισχύουν τον ισχυρισμό σου ότι η υλοποίηση του .NET είναι χειρότερη από της Sun. Δεν ρώτησε κανείς τί είναι το Pizza. 
       Το τρίτο είναι απλά ένα blog το οποίο λέει ότι μάλλον δεν θα έχει πρόβλημα η Java. Τίποτα παραπάνω.
       Δυστυχώς δεν κατάφερα τελικά να εξηγήσω τί εννοώ αναφορές. Σύγκρινε ένα άρθρο στο RAM και ένα άρθρο στο ACM Communications, ή το IEEE Spectrum, ή ακόμα καλύτερα σε ένα Journal. Στην πρώτη περίπτωση σου λέει μερικά πράγματα και στο τέλος μπορεί να σου δώσει μια λίστα με αναφορές αν ενδιαφέρεσαι περισσότερο. Στην άλλη περίπτωση, όταν κάνεις ένα ισχυρισμό πρέπει ή να αναφέρεις τις αποδείξεις, ή να βάλεις αναφορά σε άλλες δημοσιεύσεις στις οποίες στηρίχθηκες.

    Το ότι κάποιος δεν έχεις ασχοληθεί με generics φαίνεται αμέσως, καθώς χάνεται σε συζητήσεις του στυλ "χρειάζεται-δεν χρειάζεται", "ποιά υλοποίηση είναι καλύτερη" κλπ και δεν ασχολείται με το τί μπορεί να καταφέρει με αυτά. Μου έχει ξανατύχει και οφείλεται σε ένα βαθμό και στα απλά παραδείγματα που χρησιμοποιούνται για να εξηγήσουν τί είναι τα generics. Δηλαδή, εντάξει, τίποτα πιο ενδιαφέρον από τα stacks δεν έχουμε να ασχοληθούμε?

      ΑΥΤΟ είναι το πραγματικά ενδιαφέρον. ΤΙ παραπάνω μπορούμε να πετύχουμε? ΠΩΣ θα καταφέρουμε να αυτοματοποιήσουμε τη δημιουργία κώδικα (αυτός είναι ο σκοπός των generics)? ΠΩΣ θα καταφέρουμε να εφαρμόσουμε τις τεχνικές που έχουν αναπτυχθεί εδώ και δεκαετίες στη C++ και στη Java ή το .NET?
      Αν ενδιαφέρεσαι για αυτό, δες το βιβλίο "Generative Programming" των Czarnecki, Eisenecker, το οποίο περιγράφει τόσο τη μέθοδο όσο και τους τρόπους υλοποίησης της αυτοματοποίησης. Δες πόσοι τρόποι υπάρχουν:
      1. Generic Programming
      2. Template-based C++ techniques
      3. Aspect Oriented Programming
      4. Generators
      5. Static Metaprogramming
      6. Intentional Programming

        Όσον αφορά το θέμα, δεν ξεκίνησε μόνο του. Και το έναυσμα και η πορεία του καθορίστηκαν από σένα. Αν το ύφος ξέφυγε και χρειάστηκε να επέμβω, νομίζω ότι φέρεις και εσύ μερίδιο ευθύνης. 

        Προσωπικά βρήκα ευκαιρία να ασχοληθώ με πράγματα που δεν θα κοίταζα κανονικά, π.χ. τη θεωρία πίσω από τα generics, πως φτιάχνει τα method tables το .NET και να ξαναθυμηθώ το code generation.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  20-12-2004, 01:11 712 σε απάντηση της 260

    Re: .NET και ταχύτητα - Το Paint.NET

    @KelMan

    Το M$ είναι -κυρίως- λόγο συντομογραφίας.

    @pkanavos

    Από οτι φαίνεται πρέπει να υπάρχει πολύ μεγαλύτερο χάσμα συνενόησης μεταξύ μας από οτι είχα υποψιαστεί!

    Κάποιος (...) ζήτησε να μπουν παραπομπές για αυτά που ειπώθηκαν -από εμένα τουλάχιστον- στη συζήτηση. Ε λοιπόν τις έβαλα. Αν δεν σου αρκούν ή τις αμφισβητείς ok with me.

    >>
     Το παραπάνω άρθρο το έχω υπόψη, το έχω διαβάσει από τότε που πρωτοβγήκε και το γεγονός παραμένει ότι είναι ένα παλιό άρθρο για ένα research project. Είναι σαν να έρθω εγώ και να ισχυριστώ ότι τα Generics της Java υλοποιούνται με τον ίδιο τρόπο όπως στο Pizza το 1997.
    <<

    α) Για εμένα δεν είναι "ένα παλιό άρθρο για ένα -οποιοδήποτε- project" και πιστεύω οτι περιγράφει 99.9% την υλοποίηση των generics για το .net 2. Αυτό το στηρίζω στο οτι δεν έχω συναντήσει κάποιο άρθρο που να λέει διαφορετικά.

    β) Στην περίπτωση της Java, ε ναι υλοποιούνται με τον ίδιο τρόπο (δηλαδή με τη μέθοδο "
    Erasure") που σημαίνει οτι ο compiler αφού ελένξει πρώτα οτι ολες οι generic αναφορές στον κώδικά σου είναι ασφαλής και σωστές, στη συνέχεια τις αντικαθιστά το ανώτερο όριο τύπου-παράμετρου έχεις ορίσει.



    πχ
    class MyClass<T extends String> {
        T myvar;
    }

    θα καταλήξει:

    class MyClass {
        String myvar;
    }

     


    Και αυτό είναι που μου αρέσει, δηλαδή οτι τα πάντα είναι copiler-magic. Αλλα υποθέτω οτι τα ξέρετε αυτα ήδη, γιατί τόση φασαρία;

    >>
    Τα επόμενα δύο περιγράφουν το Pizza, δεν ενισχύουν τον ισχυρισμό σου ότι η υλοποίηση του .NET είναι χειρότερη από της Sun.
    <<

    Δεν είπα εγώ οτι η υλοποίση του .net είναι χειρότερη της java. Ισα ισα κάποιος άλλος είπε αρχικά το αντίθετο... Εγώ πιστεύω οτι η κάθεμια έχει συν και πλήν, απλά μου αρέσουν τα συν της java περισσότερο.

    Θα συμφωνήσω οτι η συζήτηση έχει γίνει κουραστική.
Σελίδα 3 από 3 (41 εγγραφές)   < 1 2 3
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems