Cache Implementation with Multiple Replacement Policies
Για να χρησιμοποιήσετε την προσωρινή μνήμη, δημιουργήστε μια από τις κλάσεις (LRUCache, MRUCache ή LFUCache) με την επιθυμητή χωρητικότητα και πολιτική αντικατάστασης. Για παράδειγμα: Cache<Integer, String> cache = new LRUCache<>(5); cache.put(1, "Data1"); cache.put(2, "Data2"); System.out.println(cache.get(1)); // Output: "Data1"
LRUCache<Integer, String> cache = new LRUCache<>(5); cache.put(1, "Data1"); cache.get(1); // Hit cache.get(2); // Miss System.out.println("Hits: " + cache.getHitCount()); System.out.println("Misses: " + cache.getMissCount());
Το LRUCacheProject είναι ένα έργο υλοποίησης διαφόρων στρατηγικών αντικατάστασης κρυφής μνήμης (cache replacement policies). Οι στρατηγικές που υποστηρίζονται περιλαμβάνουν:
- Least Recently Used (LRU)
- Least Frequently Used (LFU)
- Most Recently Used (MRU) (προαιρετικό)
Το έργο υποστηρίζει την παρακολούθηση των cache hits/misses και την ανάλυση της απόδοσης για κάθε στρατηγική αντικατάστασης.
Η δομή του έργου έχει ως εξής:
- Java Development Kit (JDK): Έκδοση 17 ή νεότερη
- Maven: Έκδοση 3.6.0 ή νεότερη
-
Κλωνοποιήστε το αποθετήριο:
git clone https://github.com/yourusername/cache-system.git cd cache-system -
Μεταγλωττίστε το έργο με το Maven: mvn clean install
-
Εκτελέστε την κύρια εφαρμογή: java -cp target/cache-system-1.0-SNAPSHOT.jar com.cache.Main
-
Εκτελέστε τις δοκιμές: mvn test
-
LRU (Least Recently Used): Διατηρεί τα πιο πρόσφατα χρησιμοποιημένα αντικείμενα.
-
LFU (Least Frequently Used): Διατηρεί τα αντικείμενα που χρησιμοποιούνται συχνότερα.
-
MRU (Most Recently Used): Διατηρεί τα πιο πρόσφατα χρησιμοποιημένα αντικείμενα, αλλά αντικαθιστά αυτά που χρησιμοποιήθηκαν τελευταία.
Κατά την εκτέλεση του προγράμματος με 100.000 λειτουργίες, τα αποτελέσματα είναι:
- Δημιουργήστε ένα fork του αποθετηρίου.
- Υλοποιήστε τις αλλαγές σας σε ένα νέο branch.
- Υποβάλετε ένα Pull Request για ανασκόπηση.
Το έργο καταδεικνύει την αποτελεσματικότητα της προσωρινής αποθήκευσης με πολλαπλές πολιτικές αντικατάστασης και παρέχει τη βάση για επεκτάσιμες εφαρμογές κρυφής μνήμης σε Java.

