Ιδρυματικό Αποθετήριο
Πολυτεχνείο Κρήτης
EN  |  EL

Αναζήτηση

Πλοήγηση

Ο Χώρος μου

Δυναμική ανάλυση για Python

Gianni Gioel

Πλήρης Εγγραφή


URI: http://purl.tuc.gr/dl/dias/D9DEBC91-E6C1-4C6B-A643-F122C6FDFCF6
Έτος 2025
Τύπος Διπλωματική Εργασία
Άδεια Χρήσης
Λεπτομέρειες
Βιβλιογραφική Αναφορά Γιοέλ Γιάννη, "Δυναμική ανάλυση για Python", Διπλωματική Εργασία, Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών, Πολυτεχνείο Κρήτης, Χανιά, Ελλάς, 2025 https://doi.org/10.26233/heallink.tuc.105001
Εμφανίζεται στις Συλλογές

Περίληψη

Η δυναμική ανάλυση προγραμμάτων αποτελεί μια κρίσιμη τεχνική για την κατανόηση, παρακολούθηση και τον έλεγχο της συμπεριφοράς εφαρμογών κατά τον χρόνο εκτέλεσης. Στην παρούσα διπλωματική εργασία παρουσιάζεται το Cerbex, ένα νέο πλαίσιο δυναμικής ανάλυσης που στοχεύει ειδικά στη γλώσσα προγραμματισμού Python. Το εργαλείο αξιοποιεί τον μηχανισμό εισαγωγών της Python ώστε να παρεμβάλλει κώδικα παρακολούθησης κατά τη φόρτωση των βιβλιοθηκών, εισάγοντας άγκιστρα και περιτυλίγματα (wrappers) σε συναρτήσεις χωρίς να τροποποιεί τον πηγαίο κώδικα. Συνδυάζοντας ενσωμάτωση κώδικα παρακολούθησης (instrumentation) στο επίπεδο εισαγωγής Python αρθρωμάτων και με την αξιοποίηση του μηχανισμού sys.setprofile για C-επεκτάσεις, το Cerbex παρέχει κάλυψη τόσο στον Python κώδικα όσο και σε βιβλιοθήκες χαμηλού επιπέδου, όπως οι math, numpy και pandas. Ο πυρήνας του Cerbex υποστηρίζει δύο διακριτές λειτουργίες: στη λειτουργία μάθησης καταγράφει τα γεγονότα εκτέλεσης και τις εξαρτήσεις των αρθρωμάτων σε αρχεία όπως τα events.json και dependencies.json, ενώ στη συνέχεια τα συνδυάζει για να παραχθεί το allowlist.json. Στη λειτουργία επιβολής αξιοποιεί το ενιαίο αυτό αρχείο ώστε να αποτρέπει μη εξουσιοδοτημένες εισαγωγές και κλήσεις συναρτήσεων σε πραγματικό χρόνο. Παράλληλα, οι αναλύσεις εξάγουν πρόσθετα δεδομένα όπως αρχεία perf.log για επιδόσεις και types.log για τύπους επιστροφής. Η αρχιτεκτονική του εργαλείου είναι αρθρωτή, βασισμένη σε πρόσθετα εργαλεία ανάλυσης, επιτρέποντας την εύκολη επέκταση με νέες μορφές ελέγχου. Ενδεικτικά, το PerfAnalyzer καταγράφει χρόνους εκτέλεσης συναρτήσεων, ενώ το TypeExtractor συλλέγει τύπους επιστροφής, δείχνοντας την ευελιξία της προσέγγισης.Η αξιολόγηση του Cerbex καταδεικνύει ότι το εργαλείο εισάγει αισθητή σχετική επιβάρυνση σε μικρής κλίμακας ή βραχύβιες εκτελέσεις, όπου το σταθερό κόστος του μηχανισμού ενσωμάτωσης γίνεται κυρίαρχο.Αντίθετα, σε πιο σύνθετες εφαρμογές, μεγάλα πλαίσια και υπολογιστικά εντατικά σενάρια, η σχετική επιβάρυνση μειώνεται σημαντικά, με αποτέλεσμα το Cerbex να αποδίδει ιδιαίτερα καλά. Σε τέτοια περιβάλλοντα, η δυνατότητα για ορατότητα, επιβολή πολιτικών και εις βάθος κατανόηση της εκτέλεσης συνδυάζεται με ικανοποιητική απόδοση, καθιστώντας το εργαλείο ιδανικό για μεσαία και βαριά φορτία.

Διαθέσιμα αρχεία

Υπηρεσίες

Στατιστικά