Χρήση μνήμης
Η μνήμη που χρησιμοποιεί ένα πρόγραμμα χωρίζεται στις παρακάτω κατηγορίες:
- Κώδικας (code)
-
Οι εντολές του προγράμματος, τυπικά σταθερές κατά την εκτέλεσή του.
- Δεδομένα (data)
-
Τα δεδομένα που έχουν οριστεί στατικά μέσα στο πρόγραμμα
(π.χ. αρχικές τιμές) καθώς και
η δυναμική μνήμη που απαιτείται κατά τη λειτουργία του
(εντολή new στη Java / C++, malloc στη C).
Σε πολλά προγράμματα αυτή είναι η κατηγορία της μνήμης που
μας ενδιαφέρει να βελτιστοποιήσουμε.
- Στοίβα (stack)
-
Τοπικές μεταβλητές, κλήση συναρτήσεων ιδίως σε αναδρομικές συναρτήσεις.
Παράδειγμα χρήσης μνήμης προγράμματος (g++):
1906 average shared memory size (κώδικας)
9232 average unshared data size (δεδομένα)
195 average unshared stack size (στοίβα)
Όταν ο όγκος της κύριας μνήμης του υπολογιστή δεν επαρκεί
μπορεί να χρησιμοποιηθεί:
Τέλος, για οικονομία στο χώρο που απαιτεί ο κώδικας των προγραμμάτων
στο δίσκο, χρησιμοποιούνται συχνά
μοιρασμένες βιβλιοθήκες (shared libraries)
(π.χ. .DLL, .so).