Προς το περιεχόμενο

Εφαρμογές που τρεχουν σε πραγματικο χρονο


geo1st487

Προτεινόμενες αναρτήσεις

Δημοσ.

Διαβασα σε ενα ξενο site εναν που ελεγε οτι ειναι μηχανολογος μηχανικος και στη δουλεια του χρησιμοποιει visual c++ για να δημιουργησει εφαρμογες που τρεχουν σε πραγματικο χρονο και οτι με την visual basic δεν μπορει να γινει κατι τετοιο. Τι εννοει ο ποιητης "εφαρμογες που τρεχουν σε πραγματικο χρονο"; Μπορει κανεις να μου πει ποιες ειναι οι συναρτησεις που το κανουν στη visual c++ και γενικα πως γινεται πρακτικα αυτο και πως λειτουργει το ολο συστημα.

Ευχαριστω

  • Απαντ. 45
  • Δημ.
  • Τελ. απάντηση
Δημοσ.

Γενικά, real time εφαρμογή είναι αυτή που επεξεργάζεται δεδομένα και παρουσιάζει το αποτέλεσμα σε χρόνο που χρήστης μπορεί να αλληλεπιδράσει σχεδόν άμεσα με αυτό.

Π.χ. ο μηχανικός μπορεί να κάνει προσομοίωση της ροής ενός ρευστού σε ένα σωλήνα : το πρόγραμμα κάνει τους υπολογισμούς και δείχνει άμεσα πώς κινείται το ρευστό.

Ή μπορεί να κάνει προσομοίωση διάδοσης ενός Η/Μ κύματος σε ένα χώρο : το πρόγραμμα δείχνει άμεσα πώς διαδίδεται το κύμα και αλληλεπιδρά με τους σκεδαστές.

Ή τα παιχνίδια που έχουν γραφικά : βασίζονται σε μηχανές γραφικών που επεξεργάζονται άμεσα τα δεδομένα που δίνει που δίνει ο χρήστης και σχεδιάζουν τις εικόνες.

 

Aλλά υπάρχουν και πολλές περιπτώσεις όπου ο υπολογισμός είναι τόσο χρονοβόρος ώστε άμεση παρουσίαση του αποτελέσματος και αλληλεπίδραση με τον χρήστη είναι πρακτικά αδύνατη.

Π.χ. με μεθόδους ray tracing ή radiοsity παράγονται πολύ καλύτερα γραφικά από αυτά που δίνουν συνήθως οι μηχανές γραφικών αλλά είναι είναι αδύνατο να υλοποιηθούν σε πραγματικό

χρόνο αφού ο υπολογισμός απαιτεί ώρες επεξεργασίας.

Το αν μια εφαρμογή μπορεί να γίνει real time εξαρτάται μόνον από το πόσο γρήγορα μπορεί να επεξεργαστούν τα δεδομένα και να αποκριθεί ο υπολογιστής.

Ο μηχανικός προφανώς εννοούσε ότι η visual basic είναι ακατάλληλη λόγω ταχύτητας και άλλων περιορισμών που δεν έχει η visual c++.

Δημοσ.

Ένας πολύ αδρός ορισμός για τις εφαρμογές πραγματικού χρόνου είναι ότι πρόκειται για εφαρμογές στις οποίες το output για συγκεκριμένο input πρέπει να υπολογιστεί (και πιθανόν, να εμφανιστεί) μέσα σε συγκεκριμένα deadlines από τη στιγμή που θα παραληφθεί το input.

 

Το θέμα με αυτές τις εφαρμογές δεν είναι μόνο ότι πρέπει να γράφεται ο κώδικας με συγκεκριμένο τρόπο, αλλά πρέπει να τρέχουν και σε περιβάλλον/Λειτουργικό που να δίνει κάποιες εγγυήσεις περί latency, scheduling κλπ. Τα κοινά λειτουργικά συστήματα που τρέχουμε στα desktops μας δεν είναι τύπου real-time και δεν προσφέρουν τέτοιου είδους εγγυήσεις ή δεν τις προσφέρουν σε επαρκή βαθμό. Για περισσότερα, δες:

 

http://en.wikipedia.org/wiki/Real-time_operating_system

http://en.wikipedia.org/wiki/Real-time_computing

Δημοσ.
Γενικά, real time εφαρμογή είναι αυτή που επεξεργάζεται δεδομένα και παρουσιάζει το αποτέλεσμα σε χρόνο που χρήστης μπορεί να αλληλεπιδράσει σχεδόν άμεσα με αυτό.

Π.χ. ο μηχανικός μπορεί να κάνει προσομοίωση της ροής ενός ρευστού σε ένα σωλήνα : το πρόγραμμα κάνει τους υπολογισμούς και δείχνει άμεσα πώς κινείται το ρευστό.

Ή μπορεί να κάνει προσομοίωση διάδοσης ενός Η/Μ κύματος σε ένα χώρο : το πρόγραμμα δείχνει άμεσα πώς διαδίδεται το κύμα και αλληλεπιδρά με τους σκεδαστές.

Ή τα παιχνίδια που έχουν γραφικά : βασίζονται σε μηχανές γραφικών που επεξεργάζονται άμεσα τα δεδομένα που δίνει που δίνει ο χρήστης και σχεδιάζουν τις εικόνες.

 

Aλλά υπάρχουν και πολλές περιπτώσεις όπου ο υπολογισμός είναι τόσο χρονοβόρος ώστε άμεση παρουσίαση του αποτελέσματος και αλληλεπίδραση με τον χρήστη είναι πρακτικά αδύνατη.

Π.χ. με μεθόδους ray tracing ή radiοsity παράγονται πολύ καλύτερα γραφικά από αυτά που δίνουν συνήθως οι μηχανές γραφικών αλλά είναι είναι αδύνατο να υλοποιηθούν σε πραγματικό

χρόνο αφού ο υπολογισμός απαιτεί ώρες επεξεργασίας.

Το αν μια εφαρμογή μπορεί να γίνει real time εξαρτάται μόνον από το πόσο γρήγορα μπορεί να επεξεργαστούν τα δεδομένα και να αποκριθεί ο υπολογιστής.

Ο μηχανικός προφανώς εννοούσε ότι η visual basic είναι ακατάλληλη λόγω ταχύτητας και άλλων περιορισμών που δεν έχει η visual c++.

 

Υπαρχουν αλλοι περιορισμοι στην visual basic εκτος της ταχυτητας για να τρεχει η εφαρμογη σε πραγματικο χρονο;

Αν δεν υπαρχουν αλλοι περιορισμοι τοτε δεν μπορουμε να ειμαστε απολυτοι οτι η visual basic δεν μπορει να δημιουργησει τετοιες εφαρμογες διοτι μπορει μια εφαρμογη να τρεχει σε γρηγορο μηχανημα και να μην εχει τρελες απαιτησεις στον ογκο δεδομενων που πρεπει να υπολογιζει και στο output. Απο την αλλη πλευρα αν η εφαρμογη ειναι πολυ απαιτητικη σε υπολογισμους και εξοδο των δεδομενων σε πραγματικο χρονο τοτε μπορει και visual c++ να αδυνατει να ανταπεξελθει. Σιγουρα η visual c++ ειναι η καλυτερη επιλογη αναμεσα στις δυο. Τελικα ποσο γρηγοροτερη ειναι η visual c++ απο τη visual basic;

Δημοσ.
Γενικά, real time εφαρμογή είναι αυτή που επεξεργάζεται δεδομένα και παρουσιάζει το αποτέλεσμα σε χρόνο που χρήστης μπορεί να αλληλεπιδράσει σχεδόν άμεσα με αυτό.

Π.χ. ο μηχανικός μπορεί να κάνει προσομοίωση της ροής ενός ρευστού σε ένα σωλήνα : το πρόγραμμα κάνει τους υπολογισμούς και δείχνει άμεσα πώς κινείται το ρευστό.

Ή μπορεί να κάνει προσομοίωση διάδοσης ενός Η/Μ κύματος σε ένα χώρο : το πρόγραμμα δείχνει άμεσα πώς διαδίδεται το κύμα και αλληλεπιδρά με τους σκεδαστές.

Ή τα παιχνίδια που έχουν γραφικά : βασίζονται σε μηχανές γραφικών που επεξεργάζονται άμεσα τα δεδομένα που δίνει που δίνει ο χρήστης και σχεδιάζουν τις εικόνες.

 

Aλλά υπάρχουν και πολλές περιπτώσεις όπου ο υπολογισμός είναι τόσο χρονοβόρος ώστε άμεση παρουσίαση του αποτελέσματος και αλληλεπίδραση με τον χρήστη είναι πρακτικά αδύνατη.

Π.χ. με μεθόδους ray tracing ή radiοsity παράγονται πολύ καλύτερα γραφικά από αυτά που δίνουν συνήθως οι μηχανές γραφικών αλλά είναι είναι αδύνατο να υλοποιηθούν σε πραγματικό

χρόνο αφού ο υπολογισμός απαιτεί ώρες επεξεργασίας.

Το αν μια εφαρμογή μπορεί να γίνει real time εξαρτάται μόνον από το πόσο γρήγορα μπορεί να επεξεργαστούν τα δεδομένα και να αποκριθεί ο υπολογιστής.

Ο μηχανικός προφανώς εννοούσε ότι η visual basic είναι ακατάλληλη λόγω ταχύτητας και άλλων περιορισμών που δεν έχει η visual c++.

 

Υπαρχουν αλλοι περιορισμοι στην visual basic εκτος της ταχυτητας για να τρεχει η εφαρμογη σε πραγματικο χρονο;

Αν δεν υπαρχουν αλλοι περιορισμοι τοτε δεν μπορουμε να ειμαστε απολυτοι οτι η visual basic δεν μπορει να δημιουργησει τετοιες εφαρμογες διοτι μπορει μια εφαρμογη να τρεχει σε γρηγορο μηχανημα και να μην εχει τρελες απαιτησεις στον ογκο δεδομενων που πρεπει να υπολογιζει και στο output. Απο την αλλη πλευρα αν η εφαρμογη ειναι πολυ απαιτητικη σε υπολογισμους και εξοδο των δεδομενων σε πραγματικο χρονο τοτε μπορει και visual c++ να αδυνατει να ανταπεξελθει. Σιγουρα η visual c++ ειναι η καλυτερη επιλογη αναμεσα στις δυο. Τελικα ποσο γρηγοροτερη ειναι η visual c++ απο τη visual basic;

Δημοσ.

Για realtime εφαρμογές πρέπει να πάμε σε γλώσσες χαμηλού επιπέδου (ποιο κοντά στο hardware). Αυτές είναι asembly και C.

 

H visual basic δεν μπορεί να ανταπεξέλθει σε realtime, δοκίμασε να γεμίσεις έναν πίνακα 10000Χ10000 με τυχαίους αριθμούς. Θα κάνει μερικά λεπτά.

Αν μάθεις να το κάνεις σε assembly θα το κάνει σε μsec.

 

Ακόμα πέρα από το πόσο "ζόρικο" είναι αυτό που θα ζητηθεί είναι και πόσες φορές θα ζητηθεί.

Παράδειγμα αν ζητηθεί μια πρόσθεση μόνο αλλά να γίνεται αυτό 1.000.000 ανά δευτερόλεπτο η VB δεν μπορεί να αντεπεξέλθει.

Δημοσ.

Για realtime εφαρμογές πρέπει να πάμε σε γλώσσες χαμηλού επιπέδου (ποιο κοντά στο hardware). Αυτές είναι asembly και C.

 

H visual basic δεν μπορεί να ανταπεξέλθει σε realtime, δοκίμασε να γεμίσεις έναν πίνακα 10000Χ10000 με τυχαίους αριθμούς. Θα κάνει μερικά λεπτά.

Αν μάθεις να το κάνεις σε assembly θα το κάνει σε μsec.

 

Ακόμα πέρα από το πόσο "ζόρικο" είναι αυτό που θα ζητηθεί είναι και πόσες φορές θα ζητηθεί.

Παράδειγμα αν ζητηθεί μια πρόσθεση μόνο αλλά να γίνεται αυτό 1.000.000 ανά δευτερόλεπτο η VB δεν μπορεί να αντεπεξέλθει.

Δημοσ.

Εάν υπάρχει κρισιμότητα χρόνου, τότε απαιτείται και το κατάλληλο hardware για να προσφέρει καλές επιδόσεις (κανένα CPU τερατούργημα).

Δηλαδή εάν η Python τρέξει σε κανένα Super Computer τότε σίγουρα θα είναι κατάλληλη και ταχύτατη.

http://www.python.org/about/success/usa/

 

Επίσης εάν υπάρχει κρισιμότητα εκτέλεσης τότε σίγουρα θα χρησιμοποιηθεί και το κατάλληλο λειτουργικό σύστημα, κατά μεγάλη πιθανότητα, μια custom λύση.

π.χ. Παίρνεις τα πολύ βασικά κομμάτια του Unix και καρφώνεις την εφαρμογή σου (καλό έ; :-D). Έτσι, δεν θα έχεις τίποτα παραπάνω εκτός από την εφαρμογή σου να τρέχει στο λειτουργικό σύστημα. Ούτε updates, ούτε media player, ούτε java virtual machine... 100% προβλεπόμενη λειτουργία.

 

Από την άλλη, σκέπτομαι πως όλο το concept του real time είναι παλαιά νοοτροπία (πότε γεννήθηκε ο όρος; την δεκαετία του 50;) Οι επιστήμονες επινόησαν αυτόν τον όρο μέσω περιορισμών.

Δημοσ.

Εάν υπάρχει κρισιμότητα χρόνου, τότε απαιτείται και το κατάλληλο hardware για να προσφέρει καλές επιδόσεις (κανένα CPU τερατούργημα).

Δηλαδή εάν η Python τρέξει σε κανένα Super Computer τότε σίγουρα θα είναι κατάλληλη και ταχύτατη.

http://www.python.org/about/success/usa/

 

Επίσης εάν υπάρχει κρισιμότητα εκτέλεσης τότε σίγουρα θα χρησιμοποιηθεί και το κατάλληλο λειτουργικό σύστημα, κατά μεγάλη πιθανότητα, μια custom λύση.

π.χ. Παίρνεις τα πολύ βασικά κομμάτια του Unix και καρφώνεις την εφαρμογή σου (καλό έ; :-D). Έτσι, δεν θα έχεις τίποτα παραπάνω εκτός από την εφαρμογή σου να τρέχει στο λειτουργικό σύστημα. Ούτε updates, ούτε media player, ούτε java virtual machine... 100% προβλεπόμενη λειτουργία.

 

Από την άλλη, σκέπτομαι πως όλο το concept του real time είναι παλαιά νοοτροπία (πότε γεννήθηκε ο όρος; την δεκαετία του 50;) Οι επιστήμονες επινόησαν αυτόν τον όρο μέσω περιορισμών.

Δημοσ.

Σε ποια VB αναφέρεται ο ποιητής; 6? ή .ΝΕΤ 10?

 

Ανεξάρτητα από αυτό, η εφαρμογή αυτή που φτιάχνει ο τύπος, έχει δύο δρόμους

α) κάθετε και την γράφει σε VC++

β) Χρησιμοποιεί CCR και DSS, οπότε δεν έχει σημασία η γλώσσα σε .ΝΕΤ περιβάλλον και θα του πάρει 1/3 του χρόνου για να την γράψει.

 

Όσον αφορά τον 10000χ10000 πίνακα, κάνοντας threading δεν έχει σημασία αν θα είναι σε VB ή C# ή C++.

Επίσης στο .ΝΕΤ Framework, όλος ο κώδικας κάνει compile στην ίδια γλώσσα μηχανής.

Δημοσ.

Σε ποια VB αναφέρεται ο ποιητής; 6? ή .ΝΕΤ 10?

 

Ανεξάρτητα από αυτό, η εφαρμογή αυτή που φτιάχνει ο τύπος, έχει δύο δρόμους

α) κάθετε και την γράφει σε VC++

β) Χρησιμοποιεί CCR και DSS, οπότε δεν έχει σημασία η γλώσσα σε .ΝΕΤ περιβάλλον και θα του πάρει 1/3 του χρόνου για να την γράψει.

 

Όσον αφορά τον 10000χ10000 πίνακα, κάνοντας threading δεν έχει σημασία αν θα είναι σε VB ή C# ή C++.

Επίσης στο .ΝΕΤ Framework, όλος ο κώδικας κάνει compile στην ίδια γλώσσα μηχανής.

Δημοσ.
Για realtime εφαρμογές πρέπει να πάμε σε γλώσσες χαμηλού επιπέδου (ποιο κοντά στο hardware). Αυτές είναι asembly και C.

 

H visual basic δεν μπορεί να ανταπεξέλθει σε realtime, δοκίμασε να γεμίσεις έναν πίνακα 10000Χ10000 με τυχαίους αριθμούς. Θα κάνει μερικά λεπτά.

Αν μάθεις να το κάνεις σε assembly θα το κάνει σε μsec.

 

Ακόμα πέρα από το πόσο "ζόρικο" είναι αυτό που θα ζητηθεί είναι και πόσες φορές θα ζητηθεί.

Παράδειγμα αν ζητηθεί μια πρόσθεση μόνο αλλά να γίνεται αυτό 1.000.000 ανά δευτερόλεπτο η VB δεν μπορεί να αντεπεξέλθει.

 

Αν μιλάμε για VB.Net και .Net γενικότερα κάνεις πολύ μεγάλο λάθος.

Επίσης η assembly δεν κάνει κάτι μαγικό που θα κάνει τον κώδικά σου να τρέχει πιο γρήγορα. Μάλιστα ένα πρόγραμμα σε C είναι σίγουρο σήμερα ότι θα είναι πιο γρήγορο από ότι να το γράψεις σε assembly, καθώς το optimize που κάνουν οι compilers δύσκολα το πετυχαίνει άνθρωπος (δεν μιλάμε για προγράμματα με 3 εντολές). Επιπλέον άλλες αριχτεκτονικές είναι optimized για C (PIC) και είναι πάλι γρηγορότερα τα προγράμματα από ότι σε assembly (με το χέρι).

 

Τώρα για τους περιορισμούς της γλώσσας, αν χρειάζεται να γράψεις λογισμικό low-level, ενδεχομένως ούτε η C++ κάνει, καθώς δεν είναι αρκετά low level.

 

Όταν πάμε σε πιο high level εφαρμογές (δηλ. εκτός από drivers και λειτουργικά συστήματα) δεν νομίζω ότι υπάρχει λόγος να γράφει κανείς πλέον σε C++. Θα αρχίσουν τώρα όλοι να φωνάζουν αλλά έτσι είναι. Μερικοί λόγοι :

Τρομερά πολύπλοκο συντακτικό και περισσότερος κώδικας σε σχέση με πιο νέες γλώσσες.

IDE με λιγότερα χαρακτηριστικά σε σχέση με γλώσσες όπως Java και .Net (δύσκολο debugging, ανύπαρκτο code completion κλπ)

Μηδενικό run time type information

Run time type unsafe

Δεν έχει bound checking και memory management

Δεν υπάρχει standard που να περιλαμβάνει πράγματα που σήμερα θεωρούνται δεδομένα (GUI, Network, Threading κλπ)

Πολύ δύσκολο να γράφεις components (σε Windows π.χ. πρέπει είτε να πας σε COM ή να κάνεις πατέντες με τα DLL σου)

και η λίστα συνεχίζεται ...

 

Φυσικά δεν είναι χαζοί όλοι όσοι γράφουν τις εφαρμογές τους σε C++. Είναι μια γλώσσα με μεγάλη παράδοση και πάρα πολύ μεγάλο code base.

 

Προσωπικά σε C# έχω φτιάξει (μεταξύ άλλων) ένα mini GIS/CAD και έχω δοκιμάσει σε διάφορα project πολλά χρονοβόρα πράγματα και έχω καταλήξει πως αν ο αλγόριθμος που χρησιμοποιείς είναι αποδοτικός, τότε δεν υπάρχει διαφορά ανάμεσα σε managed και unmanaged γλώσσες.

 

Ρίξτε μια ματιά σε Hadoop και Lucene

Δημοσ.
Για realtime εφαρμογές πρέπει να πάμε σε γλώσσες χαμηλού επιπέδου (ποιο κοντά στο hardware). Αυτές είναι asembly και C.

 

H visual basic δεν μπορεί να ανταπεξέλθει σε realtime, δοκίμασε να γεμίσεις έναν πίνακα 10000Χ10000 με τυχαίους αριθμούς. Θα κάνει μερικά λεπτά.

Αν μάθεις να το κάνεις σε assembly θα το κάνει σε μsec.

 

Ακόμα πέρα από το πόσο "ζόρικο" είναι αυτό που θα ζητηθεί είναι και πόσες φορές θα ζητηθεί.

Παράδειγμα αν ζητηθεί μια πρόσθεση μόνο αλλά να γίνεται αυτό 1.000.000 ανά δευτερόλεπτο η VB δεν μπορεί να αντεπεξέλθει.

 

Αν μιλάμε για VB.Net και .Net γενικότερα κάνεις πολύ μεγάλο λάθος.

Επίσης η assembly δεν κάνει κάτι μαγικό που θα κάνει τον κώδικά σου να τρέχει πιο γρήγορα. Μάλιστα ένα πρόγραμμα σε C είναι σίγουρο σήμερα ότι θα είναι πιο γρήγορο από ότι να το γράψεις σε assembly, καθώς το optimize που κάνουν οι compilers δύσκολα το πετυχαίνει άνθρωπος (δεν μιλάμε για προγράμματα με 3 εντολές). Επιπλέον άλλες αριχτεκτονικές είναι optimized για C (PIC) και είναι πάλι γρηγορότερα τα προγράμματα από ότι σε assembly (με το χέρι).

 

Τώρα για τους περιορισμούς της γλώσσας, αν χρειάζεται να γράψεις λογισμικό low-level, ενδεχομένως ούτε η C++ κάνει, καθώς δεν είναι αρκετά low level.

 

Όταν πάμε σε πιο high level εφαρμογές (δηλ. εκτός από drivers και λειτουργικά συστήματα) δεν νομίζω ότι υπάρχει λόγος να γράφει κανείς πλέον σε C++. Θα αρχίσουν τώρα όλοι να φωνάζουν αλλά έτσι είναι. Μερικοί λόγοι :

Τρομερά πολύπλοκο συντακτικό και περισσότερος κώδικας σε σχέση με πιο νέες γλώσσες.

IDE με λιγότερα χαρακτηριστικά σε σχέση με γλώσσες όπως Java και .Net (δύσκολο debugging, ανύπαρκτο code completion κλπ)

Μηδενικό run time type information

Run time type unsafe

Δεν έχει bound checking και memory management

Δεν υπάρχει standard που να περιλαμβάνει πράγματα που σήμερα θεωρούνται δεδομένα (GUI, Network, Threading κλπ)

Πολύ δύσκολο να γράφεις components (σε Windows π.χ. πρέπει είτε να πας σε COM ή να κάνεις πατέντες με τα DLL σου)

και η λίστα συνεχίζεται ...

 

Φυσικά δεν είναι χαζοί όλοι όσοι γράφουν τις εφαρμογές τους σε C++. Είναι μια γλώσσα με μεγάλη παράδοση και πάρα πολύ μεγάλο code base.

 

Προσωπικά σε C# έχω φτιάξει (μεταξύ άλλων) ένα mini GIS/CAD και έχω δοκιμάσει σε διάφορα project πολλά χρονοβόρα πράγματα και έχω καταλήξει πως αν ο αλγόριθμος που χρησιμοποιείς είναι αποδοτικός, τότε δεν υπάρχει διαφορά ανάμεσα σε managed και unmanaged γλώσσες.

 

Ρίξτε μια ματιά σε Hadoop και Lucene

Δημοσ.

Επίσης η assembly δεν κάνει κάτι μαγικό που θα κάνει τον κώδικά σου να τρέχει πιο γρήγορα. Μάλιστα ένα πρόγραμμα σε C είναι σίγουρο σήμερα ότι θα είναι πιο γρήγορο από ότι να το γράψεις σε assembly, καθώς το optimize που κάνουν οι compilers δύσκολα το πετυχαίνει άνθρωπος (δεν μιλάμε για προγράμματα με 3 εντολές). Επιπλέον άλλες αριχτεκτονικές είναι optimized για C (PIC) και είναι πάλι γρηγορότερα τα προγράμματα από ότι σε assembly (με το χέρι).

 

Τώρα για τους περιορισμούς της γλώσσας, αν χρειάζεται να γράψεις λογισμικό low-level, ενδεχομένως ούτε η C++ κάνει, καθώς δεν είναι αρκετά low level.

 

 

ναι αλλα δεν ειναι απαραιτητο να γραψεις ολο τον κωδικα σε assembly . Απλα μπορεις να κανεις optimize τα βασικοτερα κομματια ( αυτα που θα τρεχουν πιο συχνα ) αρα και σε μεγαλα project αυτος ο κωδικας δεν ξεπερναει τις 100-200 γραμμες ( υποθετω :rolleyes: )

Δημοσ.

Επίσης η assembly δεν κάνει κάτι μαγικό που θα κάνει τον κώδικά σου να τρέχει πιο γρήγορα. Μάλιστα ένα πρόγραμμα σε C είναι σίγουρο σήμερα ότι θα είναι πιο γρήγορο από ότι να το γράψεις σε assembly, καθώς το optimize που κάνουν οι compilers δύσκολα το πετυχαίνει άνθρωπος (δεν μιλάμε για προγράμματα με 3 εντολές). Επιπλέον άλλες αριχτεκτονικές είναι optimized για C (PIC) και είναι πάλι γρηγορότερα τα προγράμματα από ότι σε assembly (με το χέρι).

 

Τώρα για τους περιορισμούς της γλώσσας, αν χρειάζεται να γράψεις λογισμικό low-level, ενδεχομένως ούτε η C++ κάνει, καθώς δεν είναι αρκετά low level.

 

 

ναι αλλα δεν ειναι απαραιτητο να γραψεις ολο τον κωδικα σε assembly . Απλα μπορεις να κανεις optimize τα βασικοτερα κομματια ( αυτα που θα τρεχουν πιο συχνα ) αρα και σε μεγαλα project αυτος ο κωδικας δεν ξεπερναει τις 100-200 γραμμες ( υποθετω :rolleyes: )

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...