Βίντεο: Η ΒΑΣΙΛΕΥΟΜΕΝΗ ΔΗΜΟΚΡΑΤΙΑ 1863-1923 ΜΕΡΟΣ Β' 2024
Η ανάλυση της απόδοσης είναι πιθανώς μία από τις πιο πολύπλοκες εργασίες σχεδιασμού οποιουδήποτε προγράμματος. Είναι μια ακατάληπτη επιστήμη, επειδή υπάρχουν πολλοί παράγοντες που μπαίνουν στο παιχνίδι. Αυτά ενισχύονται στις εφαρμογές Enterprise JavaBeans (EJB), όπου η απόδοση εξαρτάται σε μεγάλο βαθμό από την υλοποίηση του δοχείου EJB που χρησιμοποιείτε. Η κατώτατη γραμμή είναι ότι δεν μπορείτε να ξέρετε εάν κάνετε τις σωστές αποφάσεις απόδοσης μέχρι να τις δοκιμάσετε.
Ακολουθούν ορισμένα θέματα που πρέπει να έχετε κατά νου όταν εξετάζετε θέματα επιδόσεων:
- Δεν δημιουργούνται ίσα όλοι οι περιέκτες EJB. Ενώ κάθε εμπορευματοκιβώτιο EJB πρέπει να συμμορφώνεται με τις προδιαγραφές EJB, οι πωλητές έχουν ευρύ περιθώριο για την υλοποίηση του δοχείου EJB. Οι απαιτήσεις τους επικεντρώνονται στα αποτελέσματα των εργασιών, όχι στην αποτελεσματικότητα μιας επιχείρησης. Ορισμένοι προμηθευτές θα κάνουν καλύτερη δουλειά με διαφορετικά τμήματα ενός δοχείου EJB. Πρέπει να προσδιορίσετε πού μπορεί να επιτευχθεί αποδοτικότητα σε ένα δοχείο EJB και πού θα προκύψουν σημεία συμφόρησης. Ο μόνος τρόπος να το ξέρετε με βεβαιότητα είναι να δοκιμάσετε πριν αγοράσετε. Ακόμη και μετά την αγορά μιας λύσης, θα πρέπει να ελεγχθούν σημαντικές αποφάσεις σχεδιασμού, όπως το εάν πρέπει να χρησιμοποιηθούν ή όχι φασόλια οντότητας EJB.
- Η απόδοση μπορεί να εξαρτηθεί από την αποτελεσματικότητα της εφαρμογής σας. Υπάρχουν γενικοί κανόνες που μπορείτε να χρησιμοποιήσετε για να προσδιορίσετε ποια σχέδια εφαρμογών είναι καλύτερα από άλλα. Αλλά αυτές οι οδηγίες μπορούν εύκολα να ακυρωθούν με μια πρόχειρη εφαρμογή. Ο καλύτερος τρόπος για να διασφαλίσετε ότι αποφεύγετε παραπλανητικές εφαρμογές είναι να εκτελέσετε τακτικές αναφορές κώδικα , δηλαδή όταν καθίσετε μαζί με όλους τους συνεργάτες σας για κωδικοποίηση και να τους αναθεωρήσετε την εργασία σας κατά τη διάρκεια του έργου EJB. Θα πρέπει να εστιάσετε τις αναθεωρήσεις του κώδικα σας αναλύοντας την πηγή και διασφαλίζοντας ότι είναι τόσο καλά σχεδιασμένο και αποτελεσματικό. Οι κριτικές κώδικα προσφέρουν μια μεγάλη ευκαιρία για τους προγραμματιστές να μάθουν ο ένας από τον άλλο.
- Αναπτύξτε ένα πρωτότυπο για να ελέγξετε τις παραδοχές απόδοσης. Ακολουθεί ένα σενάριο δειγματοληψίας. Ως προγραμματιστής εφαρμογών EJB, θα πρέπει να αποφασίσετε νωρίς εάν θα χρησιμοποιήσετε ή όχι τα φασόλια οντότητας για να διαχειριστείτε την αλληλεπίδραση με μια βάση δεδομένων. Οι δύο βασικές επιλογές σας είναι να
• Δημιουργία φασολιών οντότητας για τη διαχείριση αλληλεπίδρασης βάσης δεδομένων. Οι κόκκοι οντότητας μπορούν να απλοποιήσουν την αλληλεπίδραση της βάσης δεδομένων σας με την προοπτική προγραμματισμού εφαρμογών. Μπορούν όμως να επιβάλουν και ποινή απόδοσης. Ορισμένες από αυτές τις ποινές μπορούν να ελεγχθούν με τον τρόπο που υλοποιείτε τα φασόλια οντότητας - δηλαδή χρησιμοποιώντας τοπικές διεπαφές σε σχέση με απομακρυσμένες διεπαφές ή κάνοντας φασόλια οντότητας αντικείμενα με χοντρόκοκκο.
• Η βάση δεδομένων JDBC του κώδικα καλεί απευθείας τους κόκκους της περιόδου σύνδεσης και αποφεύγει τη χρήση των φασολιών οντότητας εντελώς. Το JDBC μπορεί να είναι πιο δύσκολο να εργαστεί με από ό, τι χρησιμοποιώντας φασόλια οντότητας με εμμονή διαχειριζόμενη από τα δοχεία. Αυτό το μάθημα μπορεί επίσης να υπονομεύσει την ικανότητά σας να επωφεληθείτε από τις συναλλαγές που διαχειρίζονται οι εμπορευματοκιβώτια EJB.
Για να προσδιορίσετε ποιο από τα δύο μαθήματα είναι πιο κατάλληλο, μπορείτε να εκτελέσετε μια απλή δοκιμή:
1. Δημιουργήστε ένα φασόλι οντότητας και ένα φασόλι συνεδρίας που και οι δύο εκτελούν εργασίες στο ίδιο σύνολο δεδομένων από μια βάση δεδομένων.
2. Γράψτε ένα απλό πρόγραμμα που μετράει το χρονικό διάστημα που απαιτείται για την κλήση ενός συνόλου ένθετων, ενημερώσεων, ερωτημάτων και αλλαγών στη βάση δεδομένων.
Αυτό το δεύτερο πρόγραμμα θα πρέπει να επικαλείται το φασόλι της συνεδρίας για μία δοκιμή και το φασόλι οντότητας για μια άλλη δοκιμή - εκτελώντας το ίδιο σύνολο λειτουργιών σε κάθε μία.
3. Αναλύστε τα αποτελέσματα για να προσδιορίσετε εάν η απόδοση θα είναι ένα ζήτημα.
Αν θέλετε πιο λεπτομερή ανάλυση απόδοσης, μπορείτε να χρονομετρήσετε μεμονωμένα βήματα - για να εντοπίσετε την πιο ακριβή λειτουργία - και στη συνέχεια να δοκιμάσετε να τροποποιήσετε αυτές τις λειτουργίες για να δημιουργήσετε κέρδη απόδοσης.
Για ένα φασόλι οντότητας, μπορεί να θέλετε να μετρήσετε την απόδοση στις ακόλουθες λειτουργίες:
- Πόση διάρκεια χρειάζεται για να αποκτήσετε μια αναφορά σε μια απομακρυσμένη διεπαφή ή μια τοπική διεπαφή;
- Ποια είναι η διαφορά απόδοσης μεταξύ της εκτέλεσης μιας ενημέρωσης σε μια απομακρυσμένη διεπαφή και μια τοπική διεπαφή;
- Ποια είναι η διαφορά μεταξύ της ενημέρωσης πολλαπλών γραμμών σε μια βάση δεδομένων στο JDBC και την εκτέλεση μιας ενημέρωσης σε πολλές σειρές χρησιμοποιώντας την οικιακή μέθοδο ενός φασολιού οντότητας;
Οι απαντήσεις σε αυτές τις ερωτήσεις θα διαφέρουν από το δοχείο EJB στο δοχείο EJB και θα επηρεαστούν επίσης από: α) τον οδηγό JDBC που επιλέγετε. β) εάν χρησιμοποιείτε τη συγκέντρωση συνδέσεων βάσης δεδομένων ή όχι; και γ) την αποτελεσματικότητα των υλοποιήσεών σας του φασολιού της οντότητας και του φασικού κύκλου. Πιθανότατα θα εκπλαγείτε με κάποια από τα αποτελέσματα που παίρνετε - οι δοκιμές σαν αυτές έχουν έναν τρόπο να αμφισβητήσουν τις υποθέσεις σας σχετικά με την απόδοση των φασολιών οντοτήτων.
Όταν ρυθμίζετε ένα EJB για απόδοση, μην κάνετε τυχαίες αλλαγές. Αντ 'αυτού, εστιάστε την προσοχή σας στα βήματα της εφαρμογής που κοστίζουν περισσότερο από την άποψη της απόδοσης.
Σημείωση: Οι μετρήσεις απόδοσης συνήθως αποκαλύπτουν ότι μια επιχειρηματική διαδικασία έχει μόνο ένα ή δύο σημεία, όπου μπορούν να γίνουν σημαντικές βελτιώσεις. Η παρατήρηση αυτή έγινε αρκετά συχνά ώστε να οδηγήσει στη δημιουργία του κανόνα Pareto 80-20. Αυτός ο κανόνας δηλώνει ότι το 80% του χρόνου εκτέλεσης ενός προγράμματος οφείλεται στο 20% του κώδικα. Ο στόχος σας θα πρέπει να είναι να προσδιορίσετε ποιο 20 τοις εκατό του κώδικα είναι πιο ακριβό όσον αφορά τους πόρους του συστήματος και εστιάστε στη βελτιστοποίηση αυτού του τμήματος.