Η ενεργειακή απόδοση για συστήματα υπολογιστών είναι ένα ζήτημα που έχει τραβήξει την προσοχή των μηχανικών λογισμικού. Παρόλο που ο σχεδιασμός και η χρήση του υλικού είναι αναμφίβολα οι βασικοί παράγοντες που επηρεάζουν την κατανάλωση ενέργειας, υπάρχουν ενδείξεις ότι ο σχεδιασμός λογισμικού μπορεί επίσης να αλλάξει σημαντικά την κατανάλωση ενέργειας των προϊόντων πληροφορικής. Επομένως, ο στόχος αυτής της διατριβής είναι να δείξει τον αντίκτυπο που έχει ο σχεδιασμός λογισμικού στην κατανάλωση ενέργειας ενός συστήματος υπολογιστή. Αρχικά, αναλύσαμε 92 ερευνητικές εργασίας από κορυφαία συνέδρια και τα ταξινομήσαμε κάτω από το Κύκλου Ζωής Ανάπτυξης Λογισμικού. Από αυτήν τη μελέτη, εξάγαμε ορισμένες ερευνητικές προκλήσεις. Μεταξύ αυτών των προκλήσεων, εντοπίσαμε ότι υπάρχει περιορισμένος αριθμός εργασιών στο πλαίσιο των επιπτώσεων της ενέργειας για γλωσσες προγραμματισμού. Για το σκοπό αυτό, κάνεμε μια εμπειρική μελέτη ώστε να βρούμε ποιες γλώσσες προγραμματισμού έχουν την καλύτερη απόδοση ενέργειας και χρόνου εκτέλεσης για συγκεκριμένες εργασίες προγραμματισμού και πλατφόρμες υπολογιστών (π.χ. εξυπηρετητής, φορητός υπολογιστής και ενσωματωμένο σύστημα). Εκτός αυτού, πραγματοποιήσαμε μια επιπλέον μελέτη σε διαφορετικές γλώσσες προγραμματισμού και πλατφόρμες υπολογιστών για να δείξουμε τις επιπτώσεις της ενέργειας και χρόνου εκτέλεσης διαφόρων τεχνολογιών επικοινωνίας μεταξύ διεργασιών (δηλαδή, REST, RPC, gRPC). Από τις παραπάνω μελέτες, ορίσαμε κατευθυντήριες γραμμές για τη μείωση της κατανάλωσης ενέργειας διαφορετικών εφαρμογών, προτείνοντας δείξαμε ποιες γλώσσες προγραμματισμού μπορούν να χρησιμοποιηθούν σε συγκεκριμένες περιπτώσεις. Τέλος, πραγματοποιήσαμε πειράματα για να εξετάσουμε την απόδοση ενέργειας και χρόνο εκτέλεσης που έχουν διαφορετικά μέτρα ασφαλείας σε υπολογιστηκά συστήματα. Συγκεκριμένα ερευνήσαμε μέτρα ασφαλεία για μικροεπεξεργαστές (όπως Meltdown, Specter και MDS), μέτρα ασφαλείας που σχετίζονται με την επικοινωνία (HTTP / HTTPS), προστασία μνήμης (μηδενισμός μνήμης) και προστατευτικά μέτρα μεταγλωττιστή (GCC). Διαπιστώσαμε ότι αυτά τα μέτρα μπορούν επηρεάσουν την απόδοση ενέργειας και χρόνο εκτέλεσης πραγματικών εφαρμογών εώς και 20% (όπως Nginx, Apache, Redis).