PDA

Επιστροφή στο Forum : Πρόβλημα μνήμης στο JOSM



NikosSkouteris
15-01-2013, 10:41
Κάποιες φορές θέλουμε να ανοίξουμε μεγάλα αρχεία .osm στο JOSM (http://josm.openstreetmap.de/) αλλά έχουμε προβλήματα μνήμης. Αυτά τα προβλήματα είναι, ουσιαστικά, δύο:

Το JOSM φορτώνει το αρχείο .osm αλλά δεν το δείχνει ποτέ (έχουμε μια κενή οθόνη, χωρίς δεδομένα).
Αφού φορτώσει το αρχείο πάει αργά ειδικά όταν μετακινούμε τον χάρτη ή αλλάζουμε επίπεδα μεγέθυνσης.


Αυτό συμβαίνει γιατί η Εικονική Μηχανή τής Java (Java Virtual Machine, JVM) εκκινείται με περιορισμένη μνήμη αναλόγως τής συνολικής ποσότητας μνήμης τού εκάστοτε μηχανήματος.

Για να λύσουμε αυτό το πρόβλημα πρέπει να δώσουμε στο JOSM την απαραίτητη μνήμη που θα χρειαστεί για να δουλέψει. Αυτό μπορεί να γίνει μέσω εντολής (command line) και θα πρέπει να σταματήσουμε να εκτελούμε το JOSM μέσω τού Start Menu τών Windows ή οποιασδήποτε άλλης παρόμοιας συντόμευσης. Εκτός κι αν φτιάξουμε ένα batch αρχείο και ενσωματώσουμε εκεί αυτήν την εντολή. Οπότε, για Windows η διαδικασία είναι η παρακάτω (κάποια παρόμοια είναι και για τα υπόλοιπα λειτουργικά):


Με τον Explorer τών Windows πάμε σε έναν φάκελο εύκολα προσβάσιμο από εμάς. Μια λύση είναι η επιφάνεια εργασίας (Desktop). Εναλλακτικά, μπορούμε να πάμε στην Έναρξη τών Windows, να κάνουμε δεξί κλικ πάνω στο "Προγράμματα" ή "Όλα τα προγράμματα" και να επιλέξουμε το "Άνοιγμα" από το αναδυόμενο μενού. Σε αυτήν την περίπτωση θα έχουμε ένα νέο μενού κάτω από το μενού έναρξης (Start Menu).
Εκεί, στο παράθυρο τής Εξερεύνησης τών Windows που θα ανοίξει, πατάμε το πλήκτρο Alt (μόνο σε Vista και νεώτερο λειτουργικό) και από το μενού "Εργαλεία" επιλέγουμε "Επιλογές φακέλων". Στην καρτέλα προβολή απενεργοποιούμε την επιλογή "Απόκρυψη επεκτάσεων για γνωστούς τύπους αρχείων" (μπορούμε να το ενεργοποιήσουμε ξανά στο τέλος τής διαδικασίας). Αυτό θα μάς δώσει την δυνατότητα να βλέπουμε τις επεκτάσεις τών αρχείων ώστε να μπορούμε να τις μετονομάζουμε.
Κάνουμε δεξί κλικ στο παράθυρο τής Εξερεύνησης τών Windows και από το αναδυόμενο μενού επιλέγουμε "Δημιουργία -> Έγγραφο κειμένου". Τού δίνουμε ένα όνομα που θέλουμε (π.χ. JOSM Custom"΄) και τού δίνουμε την κατάληξη .bat (προσοχή: σβήνουμε την ήδη υπάρχουσα κατάληξη .txt). Το λειτουργικό θα μάς βγάλει μια προειδοποίηση επειδή αλλάξαμε τον τύπο τού αρχείου, αγνοήστε την και πατήστε στο "Ναι".
Κάνουμε τώρα δεξί κλικ σε αυτό το αρχείο και από το αναδυόμενο μενού επιλέγουμε "Διόρθωση". Θα ανοίξει το Σημειωματάριο (Notepad) με ανοιγμένο το αρχείο μας.
Εκεί γράφουμε την παρακάτω εντολή: java -Xmx2096M -jar "C:\Program Files (x86)\JOSM\josm-tested.jar"Την τιμή 2096 (που έχω στο παράδειγμα) μπορείτε να την αλλάξετε με όποια τιμή που να αντιστοιχεί στην ποσότητα μνήμης που θεωρείτε πως μπορείτε να εκχωρήσετε στο JOSM. Να έχετε υπ' όψιν σας πως αυτή η τιμή είναι σε MegaBytes (MB) και πως πρέπει να είναι γύρω στο μισό (ή λίγο παραπάνω) από την φυσική ποσότητα μνήμης που έχει το μηχάνημά σας. Υπερβολικά μεγάλες τιμές ίσως παρουσιάσουν σφάλματα. Δεν χάνετε τίποτα να πειραματιστείτε. Επίσης, η διαδρομή (μπλε γράμματα στο παράδειγμα) είναι από το δικό μου μηχάνημα, στο δικό σας ίσως διαφέρει. Πρέπει να την ορίσετε επακριβώς.
Είμαστε έτοιμοι να τρέξουμε το JOSM κάνοντας διπλό κλικ (ή στην περίπτωση που προτιμήσατε το μενού Έναρξης κάνοντας στο κλικ στην "συντόμευση" κάτω από αυτό).


Σημείωση: Αν θελήσετε να ανοίξετε ένα υπερβολικά μεγάλο χάρτη (π.χ. ολόκληρη την Ελλάδα, πάνω από 1 GB), τότε κάνουμε την εξής "πονηριά":

Ανοίγουμε το JOSM
Κατεβάζουμε ένα μικρό μέρος τού χάρτη από την βάση δεδομένων τού OSM.
Από το μενού επιλέγουμε "Αρχείο -> Άνοιγμα..." και επιλέγουμε το (μεγάλο) αρχείο μας.

Το αρχείο θα ανοιχτεί αμέσως με την μεγέθυνση αλλά και το κεντράρισμα τού παραθύρου δεδομένων που είχε το JOSM όταν κατεβάσαμε τα δεδομένα τής μικρής περιοχής. Προσοχή, όμως, μην επιλέξετε καμιά μικρή μεγέθυνση (ξεζουμάρισμα) διότι τότε το JOSM θα καθυστερεί. Δουλεύετε πάντα με μεγάλες μεγεθύνσεις.

Αν πειραματιστείτε λίγο θα βρείτε την χρυσή τομή.