Blame optimization-guide/el/el.po

Packit 1470ea
# Greek translation for gnome-devel-docs.
Packit 1470ea
# Copyright (C) 2010 gnome-devel-docs's COPYRIGHT HOLDER
Packit 1470ea
# This file is distributed under the same license as the gnome-devel-docs package.
Packit 1470ea
# Marios Zindilis <m.zindilis@dmajor.org>, 2010.
Packit 1470ea
# Dimitris Spingos (Δημήτρης Σπίγγος) <dmtrs32@gmail.com>, 2013.
Packit 1470ea
msgid ""
Packit 1470ea
msgstr ""
Packit 1470ea
"Project-Id-Version: gnome-devel-docs master\n"
Packit 1470ea
"POT-Creation-Date: 2015-11-18 08:53+0000\n"
Packit 1470ea
"PO-Revision-Date: 2015-11-18 12:41+0200\n"
Packit 1470ea
"Last-Translator: Tom Tryfonidis <tomtryf@gmail.com>\n"
Packit 1470ea
"Language-Team: team@gnome.gr\n"
Packit 1470ea
"Language: el\n"
Packit 1470ea
"MIME-Version: 1.0\n"
Packit 1470ea
"Content-Type: text/plain; charset=UTF-8\n"
Packit 1470ea
"Content-Transfer-Encoding: 8bit\n"
Packit 1470ea
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
Packit 1470ea
"X-Generator: Poedit 1.8.5\n"
Packit 1470ea
"X-Project-Style: gnome\n"
Packit 1470ea
Packit 1470ea
#. Put one translator per line, in the form NAME <EMAIL>, YEAR1, YEAR2
Packit 1470ea
msgctxt "_"
Packit 1470ea
msgid "translator-credits"
Packit 1470ea
msgstr ""
Packit 1470ea
"Ελληνική μεταφραστική ομάδα GNOME <team@gnome.gr>, 2009-2015\n"
Packit 1470ea
"Δημήτρης Σπίγγος <dmtrs32@gmail.com>, 2013\n"
Packit 1470ea
"Γιάννης Κατσαμπίρης <giannis1_86@hotmail.com>, 2010\n"
Packit 1470ea
"Σίμος Ξενιτέλλης <simos@gnome.org>, 2009\n"
Packit 1470ea
"Κωνσταντίνος Κουράτορας <kouratoras@gmail.com>, 2010\n"
Packit 1470ea
"Σωτηρία Τζιούρη <sotitz@gmail.com>, 2010\n"
Packit 1470ea
"Τζένη Πετούμενου <epetoumenou@gmail.com>, 2009\n"
Packit 1470ea
"Τουρνάρης Παύλος-Πέτρος <p.tournaris@gmail.com>, 2010"
Packit 1470ea
Packit 1470ea
#. (itstool) path: page/title
Packit 1470ea
#: C/harmful.page:7
Packit 1470ea
msgid "Disk Seeks Considered Harmful"
Packit 1470ea
msgstr "Οι αναζητήσεις δίσκου θεωρούνται επιβλαβής"
Packit 1470ea
Packit 1470ea
#. (itstool) path: page/p
Packit 1470ea
#. (itstool) path: section/p
Packit 1470ea
#: C/harmful.page:8 C/index.page:54
Packit 1470ea
msgid ""
Packit 1470ea
"Disk seeks are one of the most expensive operations you can possibly perform. "
Packit 1470ea
"You might not know this from looking at how many of them we perform, but trust "
Packit 1470ea
"me, they are. Consequently, please refrain from the following suboptimal "
Packit 1470ea
"behavior:"
Packit 1470ea
msgstr ""
Packit 1470ea
"Οι αναζητήσεις του δίσκου είναι από τις ποιο δαπανηρές διαδικασίες που μπορείτε "
Packit 1470ea
"ενδεχομένως να εκτελέσετε. Μπορεί να μην το καταλάβετε αυτό απλά εξετάζοντας "
Packit 1470ea
"πόσες από αυτές εκτελείτε, αλλά πιστέψτε μας, είναι πολλές. Συνεπώς, παρακαλώ "
Packit 1470ea
"να αποφεύγεται την ακόλουθη μη-βέλτιστη συμπεριφορά:"
Packit 1470ea
Packit 1470ea
#. (itstool) path: item/p
Packit 1470ea
#: C/harmful.page:13
Packit 1470ea
msgid "Placing lots of small files all over the disk."
Packit 1470ea
msgstr "Τοποθετώντας πολλά μικρά αρχεία παντού στον δίσκο."
Packit 1470ea
Packit 1470ea
#. (itstool) path: item/p
Packit 1470ea
#: C/harmful.page:18
Packit 1470ea
msgid "Opening, stating, and reading lots of files all over the disk"
Packit 1470ea
msgstr "Άνοιγμα, δηλώσεις, και ανάγνωση πολλών μικρών αρχείών παντού στον δίσκο."
Packit 1470ea
Packit 1470ea
#. (itstool) path: item/p
Packit 1470ea
#: C/harmful.page:23
Packit 1470ea
msgid ""
Packit 1470ea
"Doing the above on files that are laid out at different times, so as to ensure "
Packit 1470ea
"that they are fragmented and cause even more seeking."
Packit 1470ea
msgstr ""
Packit 1470ea
"Κάνοντας τα ανωτέρω σε αρχεία που δημιουργήθηκαν σε διαφορετικούς χρόνους, ώστε "
Packit 1470ea
"να εξασφαλιστεί ότι είναι τεμαχισμένα και να προκαλούν ακόμη περισσότερη "
Packit 1470ea
"αναζήτηση."
Packit 1470ea
Packit 1470ea
#. (itstool) path: item/p
Packit 1470ea
#: C/harmful.page:28
Packit 1470ea
msgid ""
Packit 1470ea
"Doing the above on files that are in different directories, so as to ensure "
Packit 1470ea
"that they are in different cylinder groups and cause even more seeking."
Packit 1470ea
msgstr ""
Packit 1470ea
"Κάνοντας τα ανωτέρω σε αρχεία που είναι σε διαφορετικούς καταλόγους, ώστε να "
Packit 1470ea
"εξασφαλιστεί ότι βρίσκονται σε διαφορετικές ομάδες κυλίνδρων και έτσι να "
Packit 1470ea
"προκαλεί ακόμη περισσότερη αναζήτηση."
Packit 1470ea
Packit 1470ea
#. (itstool) path: item/p
Packit 1470ea
#: C/harmful.page:33
Packit 1470ea
msgid "Repeatedly doing the above when it only needs to be done once."
Packit 1470ea
msgstr ""
Packit 1470ea
"Επαναλαμβανόμενη εκτέλεση των ανωτέρω όταν θα έπρεπε να γίνει μια μόνο φορά."
Packit 1470ea
Packit 1470ea
#. (itstool) path: page/p
Packit 1470ea
#: C/harmful.page:38
Packit 1470ea
msgid "Ways in which you can optimize your code to be seek-friendly:"
Packit 1470ea
msgstr ""
Packit 1470ea
"Τρόποι με τους οποίους μπορείτε να βελτιστοποιήσετε τον κώδικά σας για είναι "
Packit 1470ea
"φιλικός με τις αναζητήσεις:"
Packit 1470ea
Packit 1470ea
#. (itstool) path: item/p
Packit 1470ea
#: C/harmful.page:43
Packit 1470ea
msgid "Consolidate data into a single file."
Packit 1470ea
msgstr "Παγιώστε τα δεδομένα σε ένα ενιαίο αρχείο."
Packit 1470ea
Packit 1470ea
#. (itstool) path: item/p
Packit 1470ea
#: C/harmful.page:48
Packit 1470ea
msgid "Keep data together in the same directory."
Packit 1470ea
msgstr "Κρατήστε τα δεδομένα μαζί στον ίδιο κατάλογο."
Packit 1470ea
Packit 1470ea
#. (itstool) path: item/p
Packit 1470ea
#: C/harmful.page:53
Packit 1470ea
msgid "Cache data so as to not need to reread constantly."
Packit 1470ea
msgstr ""
Packit 1470ea
"Τοποθέτηση των δεδομένων στην προσωρινή μνήμη ώστε να μην χρειάζεται συνεχώς να "
Packit 1470ea
"ξαναδιαβάζονται."
Packit 1470ea
Packit 1470ea
#. (itstool) path: item/p
Packit 1470ea
#: C/harmful.page:58
Packit 1470ea
msgid ""
Packit 1470ea
"Share data so as not to have to reread it from disk when each application loads."
Packit 1470ea
msgstr ""
Packit 1470ea
"Διαμοιρασμός δεδομένων ώστε να μη χρειάζεται να τα ξαναδιαβάζει από το δίσκο "
Packit 1470ea
"κάθε εφαρμογή όταν φορτώνει."
Packit 1470ea
Packit 1470ea
#. (itstool) path: item/p
Packit 1470ea
#: C/harmful.page:63
Packit 1470ea
msgid ""
Packit 1470ea
"Consider caching all of the data in a single binary file that is properly "
Packit 1470ea
"aligned and can be mmaped."
Packit 1470ea
msgstr ""
Packit 1470ea
"Καλύτερα να αντιγράφετε όλα τα δεδομένα στην προσωρινή μνήμη σε ένα ενιαίο "
Packit 1470ea
"δυαδικό αρχείο που ευθυγραμμίζεται κατάλληλα και μπορεί να είναι mmaped."
Packit 1470ea
Packit 1470ea
#. (itstool) path: page/p
Packit 1470ea
#: C/harmful.page:68
Packit 1470ea
msgid ""
Packit 1470ea
"The trouble with disk seeks are compounded for reads, which is unfortunately "
Packit 1470ea
"what we are doing. Remember, reads are generally synchronous while writes are "
Packit 1470ea
"asynchronous. This only compounds the problem, serializing each read, and "
Packit 1470ea
"contributing to program latency."
Packit 1470ea
msgstr ""
Packit 1470ea
"Το πρόβλημα με την αναζητήσεις δίσκων είναι αρκετά σύνθετο όσο αναφορά την "
Packit 1470ea
"ανάγνωση, το όποιο είναι δυστυχώς αυτό που κάνουμε. Να θυμάστε, η ανάγνωση "
Packit 1470ea
"είναι γενικά σύγχρονή ενώ η εγγραφή είναι ασύγχρονη. Αυτό κάνει ποιο σύνθετο το "
Packit 1470ea
"πρόβλημα, διατάσσοντας σειριακά κάθε ανάγνωση, και συμβάλλοντας στη λανθάνουσα "
Packit 1470ea
"κατάσταση του προγράμματος."
Packit 1470ea
Packit 1470ea
#. (itstool) path: license/p
Packit 1470ea
#: C/index.page:7
Packit 1470ea
msgid ""
Packit 1470ea
"Permission is granted to copy, distribute and/or modify this document under the "
Packit 1470ea
"terms of the GNU Free Documentation License, Version 1.1 or any later version "
Packit 1470ea
"published by the Free Software Foundation with no Invariant Sections, no Front-"
Packit 1470ea
"Cover Texts, and no Back-Cover Texts. You may obtain a copy of the GNU Free "
Packit 1470ea
"Documentation License from the Free Software Foundation by visiting 
Packit 1470ea
"\"http://www.fsf.org\">their Web site</link> or by writing to: Free Software "
Packit 1470ea
"Foundation, Inc., 51 Franklin Street, Fifth Floor Boston, MA 02110-1335, USA."
Packit 1470ea
msgstr ""
Packit 1470ea
"Χορηγείται άδεια για αντιγραφή, διανομή ή/και τροποποίηση του παρόντος εγγράφου "
Packit 1470ea
"υπό τους όρους της GNU Free Documentation License, έκδοση 1.1 ή οποιασδήποτε "
Packit 1470ea
"μεταγενέστερης έκδοσης που δημοσιεύεται από το Free Software Foundation χωρίς "
Packit 1470ea
"αμετάβλητα τμήματα, χωρίς κείμενο εξωφύλλου, και χωρίς κείμενο οπισθόφυλλου. "
Packit 1470ea
"Μπορείτε να λάβετε ένα αντίγραφο της GNU Free Documentation License από το Free "
Packit 1470ea
"Software Foundation με μία επίσκεψη στο 
Packit 1470ea
"\">δικτυακό τους τόπο</link> ή με γράμμα στο: Free Software Foundation, Inc., "
Packit 1470ea
"51 Franklin Street, Fifth Floor Boston, MA 02110-1335, USA."
Packit 1470ea
Packit 1470ea
#. (itstool) path: license/p
Packit 1470ea
#: C/index.page:16
Packit 1470ea
msgid ""
Packit 1470ea
"Many of the names used by companies to distinguish their products and services "
Packit 1470ea
"are claimed as trademarks. Where those names appear in any GNOME documentation, "
Packit 1470ea
"and those trademarks are made aware to the members of the GNOME Documentation "
Packit 1470ea
"Project, the names have been printed in caps or initial caps."
Packit 1470ea
msgstr ""
Packit 1470ea
"Πολλά από τα ονόματα που χρησιμοποιούνται από τις επιχειρήσεις για να "
Packit 1470ea
"διαφοροποιήσουν τα προϊόντα τους και τις υπηρεσίες τους εμφανίζονται ως "
Packit 1470ea
"εμπορικά σήματα. Όπου αυτά τα ονόματα εμφανίζονται σε οποιαδήποτε τεκμηρίωση "
Packit 1470ea
"του GNOME, και αυτά τα εμπορικά σήματα γίνονται γνωστά στα μέλη του έργου "
Packit 1470ea
"τεκμηρίωσης του GNOME, τα ονόματα θα τυπώνονται με κεφαλαία γράμματα ή γράμματα "
Packit 1470ea
"τίτλων."
Packit 1470ea
Packit 1470ea
#. (itstool) path: credit/years
Packit 1470ea
#: C/index.page:24 C/index.page:28
Packit 1470ea
msgid "2004-2005"
Packit 1470ea
msgstr "2004-2005"
Packit 1470ea
Packit 1470ea
#. (itstool) path: credit/name
Packit 1470ea
#: C/index.page:25
Packit 1470ea
msgid "Callum McKenzie"
Packit 1470ea
msgstr "Callum McKenzie"
Packit 1470ea
Packit 1470ea
#. (itstool) path: credit/name
Packit 1470ea
#: C/index.page:29
Packit 1470ea
msgid "Robert Love"
Packit 1470ea
msgstr "Robert Love"
Packit 1470ea
Packit 1470ea
#. (itstool) path: info/desc
Packit 1470ea
#: C/index.page:32
Packit 1470ea
msgid ""
Packit 1470ea
"Software can be optimized in many ways: for speed, program size, or memory use. "
Packit 1470ea
"This section contains guides and tutorials for optimizing your software."
Packit 1470ea
msgstr ""
Packit 1470ea
"Το λογισμικό μπορεί να βελτιστοποιηθεί από πολλές απόψεις: για την ταχύτητα, το "
Packit 1470ea
"μέγεθος του προγράμματος, ή τη χρήση μνήμης. Αυτό το τμήμα περιέχει οδηγούς και "
Packit 1470ea
"σεμινάρια για τη βελτιστοποίηση του λογισμικού σας."
Packit 1470ea
Packit 1470ea
#. (itstool) path: page/title
Packit 1470ea
#: C/index.page:35
Packit 1470ea
msgid "Optimization Guide"
Packit 1470ea
msgstr "Οδηγός βελτιστοποίησης"
Packit 1470ea
Packit 1470ea
#. (itstool) path: section/title
Packit 1470ea
#: C/index.page:38 C/massif.page:12
Packit 1470ea
msgid "Introduction"
Packit 1470ea
msgstr "Εισαγωγή"
Packit 1470ea
Packit 1470ea
#. (itstool) path: section/p
Packit 1470ea
#: C/index.page:39
Packit 1470ea
msgid ""
Packit 1470ea
"This is a brief introduction to optimization, both the hows and the whys. "
Packit 1470ea
"Details of individual tools and techniques are left for later articles, but a "
Packit 1470ea
"collection of hints and tricks is provided."
Packit 1470ea
msgstr ""
Packit 1470ea
"Αυτή είναι μια σύντομη εισαγωγή στη βελτιστοποίηση, τόσο στο πώς όσο και στο "
Packit 1470ea
"γιατί. Οι λεπτομέρειες για ξεχωριστά εργαλεία και τεχνικές παραλείπονται για "
Packit 1470ea
"μελλοντικά άρθρα, αλλά παρέχεται μια συλλογή από υποδείξεις και κόλπα."
Packit 1470ea
Packit 1470ea
#. (itstool) path: section/title
Packit 1470ea
#: C/index.page:45
Packit 1470ea
msgid "Massif"
Packit 1470ea
msgstr "Massif"
Packit 1470ea
Packit 1470ea
#. (itstool) path: section/p
Packit 1470ea
#. (itstool) path: page/p
Packit 1470ea
#: C/index.page:46 C/massif.page:9
Packit 1470ea
msgid ""
Packit 1470ea
"This article describes how to use the <app>Massif</app> heap profiler with "
Packit 1470ea
"GNOME applications. We describe how to invoke, interpret, and act on the output "
Packit 1470ea
"of <app>Massif</app>. The <app>Swell Foop</app> game is used as an example."
Packit 1470ea
msgstr ""
Packit 1470ea
"Αυτό το άρθρο περιγράφει πώς χρησιμοποιείται ο σωρός κατατομών <app>Massif</"
Packit 1470ea
"app> με εφαρμογές του GNOME. Περιγράφουμε πώς να τον καλέσετε, να τον "
Packit 1470ea
"ερμηνεύσετε και πώς να ενεργήσετε βάσει των αποτελεσμάτων του <app>Massif</"
Packit 1470ea
"app>. Ως παράδειγμα χρησιμοποιούμε το παιχνίδι <app>Swell Foop</app>."
Packit 1470ea
Packit 1470ea
#. (itstool) path: section/title
Packit 1470ea
#: C/index.page:53
Packit 1470ea
msgid "Harmfulness"
Packit 1470ea
msgstr "Βλαβερότητα"
Packit 1470ea
Packit 1470ea
#. (itstool) path: page/title
Packit 1470ea
#: C/introduction.page:7
Packit 1470ea
msgid "What are we Optimizing?"
Packit 1470ea
msgstr "Τι θα βελτιστοποιήσουμε;"
Packit 1470ea
Packit 1470ea
#. (itstool) path: page/p
Packit 1470ea
#: C/introduction.page:8
Packit 1470ea
msgid ""
Packit 1470ea
"When we optimize for GNOME the first thing to remember is this: we are not "
Packit 1470ea
"trying to make the program better, we are trying to make the person using the "
Packit 1470ea
"computer happier."
Packit 1470ea
msgstr ""
Packit 1470ea
"Όταν βελτιστοποιούμε για το GNOME, το πρώτο πράγμα που θυμόμαστε είναι ότι δεν "
Packit 1470ea
"προσπαθούμε να κάνουμε ένα πρόγραμμα καλύτερο, προσπαθούμε να κάνουμε το χρήστη "
Packit 1470ea
"που χρησιμοποιεί τον υπολογιστή πιο ευχαριστημένο."
Packit 1470ea
Packit 1470ea
#. (itstool) path: page/p
Packit 1470ea
#: C/introduction.page:10
Packit 1470ea
msgid ""
Packit 1470ea
"Better programs make people happier, but there are some improvements that will "
Packit 1470ea
"make them a lot happier than others: Responsiveness, start-up time, easy to "
Packit 1470ea
"access commands and not having the computer go into swap the moment more than "
Packit 1470ea
"two programs are open."
Packit 1470ea
msgstr ""
Packit 1470ea
"Καλύτερα προγράμματα σημαίνει πιο ευχαριστημένοι χρήστες, αλλά υπάρχουν μερικές "
Packit 1470ea
"βελτιώσεις που θα τους κάνουν πιο ευχαριστημένους από άλλες: η σπιρτάδα της "
Packit 1470ea
"ανταπόκρισης, ο χρόνος εκκίνησης, η ευκολία στην πρόσβαση των εντολών και το να "
Packit 1470ea
"μην γίνεται πολύ αργός ο υπολογιστής όταν υπάρχουν ανοικτά περισσότερα από δύο "
Packit 1470ea
"προγράμματα."
Packit 1470ea
Packit 1470ea
#. (itstool) path: page/p
Packit 1470ea
#: C/introduction.page:13
Packit 1470ea
msgid ""
Packit 1470ea
"Traditional optimization tackles concepts like CPU use, code size, the number "
Packit 1470ea
"of mouse clicks and the memory use of the program. This second list has been "
Packit 1470ea
"chosen to correlate with the first list, however there is an important "
Packit 1470ea
"difference: The person using GNOME doesn't care about the second list, but they "
Packit 1470ea
"care a lot about the first list. When optimizing GNOME programs we will reduce "
Packit 1470ea
"CPU use, memory use and all those things, but these are the means to the end, "
Packit 1470ea
"not the final goal. We are optimizing for people."
Packit 1470ea
msgstr ""
Packit 1470ea
"Η παραδοσιακή βελτιστοποίηση ασχολείται με έννοιες όπως η χρήση του "
Packit 1470ea
"επεξεργαστή, το μέγεθος του κώδικα, ο αριθμός των κλικ του ποντικιού και η "
Packit 1470ea
"χρήση της μνήμης από το πρόγραμμα. Αυτή η δεύτερη λίστα έχει επιλεγεί για να "
Packit 1470ea
"συσχετίζεται με την πρώτη, ωστόσο υπάρχει μια σημαντική διαφορά: Αυτός που "
Packit 1470ea
"χρησιμοποιεί το GNOME δε νοιάζεται για τη δεύτερη λίστα, νοιάζεται όμως πολύ "
Packit 1470ea
"για την πρώτη. Όταν βελτιστοποιούμε προγράμματα του GNOME μειώνουμε τη χρήση "
Packit 1470ea
"του επεξεργαστή, της μνήμης και λοιπά, αλλά όλα αυτά είναι μέσα για να "
Packit 1470ea
"προχωρήσουμε, όχι για τον τελικό μας σκοπό. Εμείς βελτιστοποιούμε για τους "
Packit 1470ea
"ανθρώπους."
Packit 1470ea
Packit 1470ea
#. (itstool) path: section/title
Packit 1470ea
#: C/introduction.page:18
Packit 1470ea
msgid "Doing the Optimization"
Packit 1470ea
msgstr "Εφαρμόζοντας τη βελτιστοποίηση"
Packit 1470ea
Packit 1470ea
#. (itstool) path: section/p
Packit 1470ea
#: C/introduction.page:19
Packit 1470ea
msgid ""
Packit 1470ea
"The previous section omitted one important qualifier: To optimize something it "
Packit 1470ea
"has to be measurable. You can't measure happiness. However, you can measure "
Packit 1470ea
"start-up time so you can tell if you have improved it. Happiness will then, "
Packit 1470ea
"hopefully, follow."
Packit 1470ea
msgstr ""
Packit 1470ea
"Η προηγούμενη ενότητα παρέλειψε ένα σημαντικό παράγοντα: για να βελτιστοποιηθεί "
Packit 1470ea
"κάτι πρέπει να είναι μετρήσιμο. Δε μπορείτε να βελτιστοποιήσετε την "
Packit 1470ea
"ευχαρίστηση. Ωστόσο, μπορείτε να μετρήση το χρόνο εκκίνησης ώστε να μπορείτε να "
Packit 1470ea
"δείτε αν τον έχετε βελτιώσει. Ευελπιστούμε ότι η ευτυχία θα επέλθει."
Packit 1470ea
Packit 1470ea
#. (itstool) path: section/p
Packit 1470ea
#: C/introduction.page:22
Packit 1470ea
msgid ""
Packit 1470ea
"Optimization is the process of measurement, refinement and re-measurement. So "
Packit 1470ea
"the first thing you must do is find a way to measure what you are optimizing. "
Packit 1470ea
"Ideally this measurement is a single number, for example: the time taken to "
Packit 1470ea
"perform a task. This is your benchmark, it is the only way to tell if you are "
Packit 1470ea
"winning or losing. There is a big difference between a program that should</"
Packit 1470ea
"em> be fast and a program that is fast."
Packit 1470ea
msgstr ""
Packit 1470ea
"Η βελτιστοποίηση είναι μια διαδικασία μέτρησης, βελτίωσης και μέτρησης ξανά. "
Packit 1470ea
"Οπότε το πρώτο πράγμα που πρέπει να κάνετε είναι να βρείτε έναν τρόπο για να "
Packit 1470ea
"μετρήσετε αυτό που βελτιστοποιείτε. Στην καλύτερη περίπτωση, αυτή η μέτρηση θα "
Packit 1470ea
"είναι ένας μοναδικός αριθμός, για παράδειγμα ο χρόνος που χρειάζεται για να "
Packit 1470ea
"ολοκληρωθεί μια εργασία. Αυτή η είναι η δοκιμή μέτρησής σας, και είναι ο "
Packit 1470ea
"μοναδικός τρόπος για να δείτε αν κερδίζετε ή αν χάνετε. Υπάρχει τεράστια "
Packit 1470ea
"διαφορά ανάμεσα σε ένα πρόγραμμα που θα έπρεπε να είναι γρήγορο και σε "
Packit 1470ea
"ένα που είναι γρήγορο."
Packit 1470ea
Packit 1470ea
#. (itstool) path: section/p
Packit 1470ea
#: C/introduction.page:25
Packit 1470ea
msgid ""
Packit 1470ea
"Once you have a basic benchmark you need to find out why your code is not doing "
Packit 1470ea
"as well as it should. It is tempting to do this by inspection: just looking at "
Packit 1470ea
"the code and trying to spot something that looks like it needs improvement. You "
Packit 1470ea
"will invariably be wrong. Using a profiler to get a detailed break-down of what "
Packit 1470ea
"your program really does is the only way to be sure."
Packit 1470ea
msgstr ""
Packit 1470ea
"Όταν θα έχετε μια βασική δοκιμή μέτρησης θα πρέπει να ανακαλύψετε γιατί ο "
Packit 1470ea
"κώδικάς σας δεν πάει τόσο καλά όσο θα έπρεπε. Είναι δελεαστικό να το κάνετε "
Packit 1470ea
"αυτό παρατηρώντας: να κοιτάτε τον κώδικα ψάχνοντας για κάτι που μοιάζει να "
Packit 1470ea
"θέλει βελτίωση. Χωρίς αμφιβολία, θα κάνετε λάθος. Η χρήση ενός βοηθητικού "
Packit 1470ea
"προγράμματος profiler το οποίο δίνει μια λεπτομερή ανατομία του τι κάνει "
Packit 1470ea
"πραγματικό το πρόγραμμά σας είναι ο μόνος τρόπος για να είστε βέβαιοι."
Packit 1470ea
Packit 1470ea
#. (itstool) path: section/p
Packit 1470ea
#: C/introduction.page:28
Packit 1470ea
msgid ""
Packit 1470ea
"Usually the problem is isolated to small sections of code. Pick the worst place "
Packit 1470ea
"and concentrate on that first. Once that is done, rerun the profiler and "
Packit 1470ea
"repeat. As you proceed the gains made at each step will get less and less, at "
Packit 1470ea
"some point you will have to decide that the results are good enough. If your "
Packit 1470ea
"efforts are only extracting 10% improvements then you are well past the point "
Packit 1470ea
"where you should have stopped."
Packit 1470ea
msgstr ""
Packit 1470ea
"Συνήθως το πρόβλημα εντοπίζεται σε μικρά τμήματα του κώδικα. Διαλέξτε το "
Packit 1470ea
"χειρότερο από αυτά και συγκεντρωθείτε πρώτα σ' αυτό. Όταν θα έχετε τελειώσει μ' "
Packit 1470ea
"αυτό, τρέξτε ξανά το profiler και επαναλάβετε τη διαδικασία. Καθώς θα "
Packit 1470ea
"προχωράτε, το κέρδος από κάθε βήμα θα μειώνεται, και σε κάποιο σημείο θα πρέπει "
Packit 1470ea
"να αποφασίσετε αν τα αποτελέσματα είναι αρκετά καλά. Αν η προσπάθειές σας έχουν "
Packit 1470ea
"ως αποτέλεσμα τη βελτίωση μόνο κατά 10% κάθε φορά, τότε έχετε περάσει το σημείο "
Packit 1470ea
"όπου μπορείτε πια να σταματήσετε."
Packit 1470ea
Packit 1470ea
#. (itstool) path: section/p
Packit 1470ea
#: C/introduction.page:31
Packit 1470ea
msgid ""
Packit 1470ea
"Don't forget the big picture. For example, rather than just trying to speed up "
Packit 1470ea
"a piece of code, ask yourself if it needs to be run at all. Could it be "
Packit 1470ea
"combined with another piece of code? Can the results of previous calculations "
Packit 1470ea
"be saved and reused? It won't even need to be optimized if it is in a place "
Packit 1470ea
"where the user is never going to notice it. Worse still, the code may already "
Packit 1470ea
"be optimized and is doing the heavy calculations now to avoid doing them later. "
Packit 1470ea
"Code does not run in isolation and neither does the optimization process."
Packit 1470ea
msgstr ""
Packit 1470ea
"Μη συγκεντρωθείτε στο δέντρο και χάσετε το δάσος. Για παράδειγμα, αντί να "
Packit 1470ea
"προσπαθείτε να επιταχύνετε ένα κομμάτι κώδικα, σκεφτείτε αν χρειάζεται καν να "
Packit 1470ea
"τρέχει. Μήπως μπορεί να συνδυαστεί με κάποιο άλλο κομμάτι; Μήπως μπορούν τα "
Packit 1470ea
"αποτελέσματα της προηγούμενης λειτουργίας του να αποθηκευτούν και να "
Packit 1470ea
"χρησιμοποιηθούν ξανά; Δε θα χρειαστεί καν να βελτιστοποιηθεί αν βρίσκεται σε "
Packit 1470ea
"ένα μέρος όπου ο χρήστης δε θα το προσέξει ποτέ. Ακόμα χειρότερα, ο κώδικας "
Packit 1470ea
"μπορεί να είναι ήδη βελτιστοποιημένος και να κάνει τώρα τους βαριούς του "
Packit 1470ea
"υπολογισμούς για να μην τους χρειαστεί αργότερα. Ούτε ο κώδικας τρέχει "
Packit 1470ea
"απομονωμένος, ούτε η βελτιστοποίηση."
Packit 1470ea
Packit 1470ea
#. (itstool) path: section/title
Packit 1470ea
#: C/introduction.page:37
Packit 1470ea
msgid "Hints"
Packit 1470ea
msgstr "Υποδείξεις"
Packit 1470ea
Packit 1470ea
#. (itstool) path: item/title
Packit 1470ea
#: C/introduction.page:41
Packit 1470ea
msgid "The Fundamentals"
Packit 1470ea
msgstr "Τα βασικά"
Packit 1470ea
Packit 1470ea
#. (itstool) path: item/p
Packit 1470ea
#: C/introduction.page:44
Packit 1470ea
msgid ""
Packit 1470ea
"Re-run your benchmark after every change you make to the code and keep a log of "
Packit 1470ea
"everything you change and how it affects the benchmark. This lets you undo "
Packit 1470ea
"mistakes and also helps you not to repeat mistakes."
Packit 1470ea
msgstr ""
Packit 1470ea
"Τρέξτε ξανά τις δοκιμαστικές σας μετρήσεις μετά από κάθε αλλαγή που κάνετε στον "
Packit 1470ea
"κώδικα και κρατήστε μια καταγραφή όλων των αλλαγών που κάνετε και πώς αυτές "
Packit 1470ea
"επηρεάζουν τις μετρήσεις. Αυτό σας βοηθά να αναιρείτε κάποια λάθη, όπως επίσης "
Packit 1470ea
"και να μην τα επαναλαμβάνετε."
Packit 1470ea
Packit 1470ea
#. (itstool) path: item/p
Packit 1470ea
#: C/introduction.page:49
Packit 1470ea
msgid ""
Packit 1470ea
"Make sure your code is correct and bug-free before optimizing it. Check that it "
Packit 1470ea
"remains correct and bug-free after optimization."
Packit 1470ea
msgstr ""
Packit 1470ea
"Βεβαιωθείτε ότι ο κώδικάς σας είναι σωστός και χωρίς σφάλματα προτού τον "
Packit 1470ea
"βελτιστοποιήσετε. Ελέγξτε ότι είναι σωστός και χωρίς σφάλματα και μετά τη "
Packit 1470ea
"βελτιστοποίηση."
Packit 1470ea
Packit 1470ea
#. (itstool) path: item/p
Packit 1470ea
#: C/introduction.page:54
Packit 1470ea
msgid "Optimize at the high level before optimizing the details."
Packit 1470ea
msgstr "Βελτιστοποιήστε σε ψηλό επίπεδο πριν προχωρήσετε στις λεπτομέρειες."
Packit 1470ea
Packit 1470ea
#. (itstool) path: item/p
Packit 1470ea
#: C/introduction.page:59
Packit 1470ea
msgid ""
Packit 1470ea
"Use the right algorithm. The classic text-book example is using quick-sort "
Packit 1470ea
"instead of bubble-sort. There are many others, some save memory, some save CPU. "
Packit 1470ea
"Also, see what shortcuts you can make: you can do quicker than quick-sort if "
Packit 1470ea
"you are prepared to make some compromises."
Packit 1470ea
msgstr ""
Packit 1470ea
"Χρησιμοποιήστε το σωστό αλγόριθμο. Το κλασικό παράδειγμα είναι να "
Packit 1470ea
"χρησιμοποιήσετε το quick-sort αντί το bubble-sort. Υπάρχουν πολλά ακόμα, μερικά "
Packit 1470ea
"εξοικονομούν μνήμη, μερικά εξοικονομούν επεξεργαστή. Επίσης, δείτε τι συντόμια "
Packit 1470ea
"μπορείτε να ακολουθήσετε: μπορείτε να ταξινομήσετε και γρηγορότερα από το quick-"
Packit 1470ea
"sort αν μπορείτε να κάνετε μερικούς συμβιβασμούς."
Packit 1470ea
Packit 1470ea
#. (itstool) path: item/p
Packit 1470ea
#: C/introduction.page:64
Packit 1470ea
msgid ""
Packit 1470ea
"Optimization is a trade-off. Caching results speeds up calculations, but "
Packit 1470ea
"increases memory use. Saving data to disk saves memory, but costs time when it "
Packit 1470ea
"is loaded back from disk."
Packit 1470ea
msgstr ""
Packit 1470ea
"Η βελτιστοποίηση είναι και θέμα ισορροπίας. Η προσωρινή αποθήκευση "
Packit 1470ea
"αποτελεσμάτων επιταχύνει τους υπολογισμούς, αλλά κοστίζει σε μνήμη. Η "
Packit 1470ea
"αποθήκευση δεδομένων στο δίσκο εξοικονομεί τη μνήμη, αλλά κοστίζει σε χρόνο "
Packit 1470ea
"όταν θα πρέπει να διαβάσετε τις πληροφορίες από το δίσκο."
Packit 1470ea
Packit 1470ea
#. (itstool) path: item/p
Packit 1470ea
#: C/introduction.page:69
Packit 1470ea
msgid ""
Packit 1470ea
"Make sure you choose a wide variety of inputs to optimize against. If you don't "
Packit 1470ea
"it is easy to end up with a piece of code carefully optimized for one file and "
Packit 1470ea
"no others."
Packit 1470ea
msgstr ""
Packit 1470ea
"Βεβαιωθείτε ότι χρησιμοποιείτε μια πλατιά ποικιλία από εισόδους για τις οποίες "
Packit 1470ea
"θα βελτιστοποιήσετε. Αν δεν το κάνετε αυτό, εύκολα θα καταλήξετε σε ένα κομμάτι "
Packit 1470ea
"κώδικα προσεκτικά βελτιστοποιημένο για συγκεκριμένη λειτουργία αλλά όχι για "
Packit 1470ea
"άλλες."
Packit 1470ea
Packit 1470ea
#. (itstool) path: item/p
Packit 1470ea
#: C/introduction.page:74
Packit 1470ea
msgid ""
Packit 1470ea
"Avoid expensive operations: Multiple small disk reads. Using up lots of memory "
Packit 1470ea
"so disk swapping becomes necessary. Avoid anything that writes or reads from "
Packit 1470ea
"the hard disk unnecessarily. The network is slow too. Also avoid graphics "
Packit 1470ea
"operations that need a response from the X server."
Packit 1470ea
msgstr ""
Packit 1470ea
"Αποφύγετε τις σπάταλες λειτουργίες: Πολλαπλές μικρές αναγνώσεις από το δίσκο. Η "
Packit 1470ea
"χρήση πάρα πολλής μνήμης ώστε να χρειάζεται εικονική μνήμη στο δίσκο γίνεται "
Packit 1470ea
"απαραίτητη. Αποφύγετε ο,τιδήποτε γράφει ή διαβάζει από τον από τον σκληρό δίσκο "
Packit 1470ea
"άσκοπα. Το δίκτυο επίσης είναι αργό. Αποφύγετε επίσης λειτουργίες γραφικών οι "
Packit 1470ea
"οποίες χρειάζονται απάντηση από τον εξυπηρετητή X."
Packit 1470ea
Packit 1470ea
#. (itstool) path: item/title
Packit 1470ea
#: C/introduction.page:81
Packit 1470ea
msgid "Traps for the Unwary"
Packit 1470ea
msgstr "Παγίδες για τους ανυποψίαστους"
Packit 1470ea
Packit 1470ea
#. (itstool) path: item/p
Packit 1470ea
#: C/introduction.page:84
Packit 1470ea
msgid ""
Packit 1470ea
"Beware of side effects. There can often be strange interactions between "
Packit 1470ea
"different sections of code, a speed-up in one part can slow another part down."
Packit 1470ea
msgstr ""
Packit 1470ea
"Προσέχετε τις παρενέργειες. Συχνά μπορεί να υπάρχουν περίεργες αλληλεπιδράσεις "
Packit 1470ea
"μεταξύ διαφορετικών κομματιών κώδικα, και η επιτάχυνση ενός κομματιού μπορεί να "
Packit 1470ea
"επιβραδύνει ένα άλλο."
Packit 1470ea
Packit 1470ea
#. (itstool) path: item/p
Packit 1470ea
#: C/introduction.page:89
Packit 1470ea
msgid ""
Packit 1470ea
"When timing code, even on a quiet system, events outside the program add noise "
Packit 1470ea
"to the timing results. Average over multiple runs. If the code is very short, "
Packit 1470ea
"timer resolution is also a problem. In this case measure the time the computer "
Packit 1470ea
"takes to run the code 100 or 1000 times. If the times you are recording are "
Packit 1470ea
"longer than a few seconds, you should be OK."
Packit 1470ea
msgstr ""
Packit 1470ea
"Όταν χρονομετράτε τον κώδικα, ακόμα και σε ένα ήσυχο σύστημα, γεγονότα εκτός "
Packit 1470ea
"από το πρόγραμμα προσθέτουν θόρυβο στα αποτελέσματα των μετρήσεων. Τρέξτε "
Packit 1470ea
"πολλές φορές το πρόγραμμα και πάρτε το μέσο όρο. Αν ο κώδικας είναι πολύ "
Packit 1470ea
"σύντομος, η ανάλυση του χρονομέτρου είναι επίσης προβληματική. Σε τέτοια "
Packit 1470ea
"περίπτωση, χρονομετρήστε την εκτέλεση του κώδικα για 100 ή 1000 φορές. Αν οι "
Packit 1470ea
"φορές που χρονομετράτε διαρκούν περισσότερο από μερικά δευτερόλεπτα, τότε θα "
Packit 1470ea
"πρέπει να είστε εντάξει."
Packit 1470ea
Packit 1470ea
#. (itstool) path: item/p
Packit 1470ea
#: C/introduction.page:94
Packit 1470ea
msgid ""
Packit 1470ea
"It is very easy to be misled by the profiler. There are stories of people "
Packit 1470ea
"optimizing the operating system idle-loop because that is where it spent all "
Packit 1470ea
"its time! Don't optimize code that does nothing the user cares about."
Packit 1470ea
msgstr ""
Packit 1470ea
"Είναι πάρα πολύ εύκολο να σας παραπλανήσει ο profiler. Υπάρχουν περιπτώσεις "
Packit 1470ea
"ανθρώπων που βελτιστοποιούσαν τον βρόχο παύσης του λειτουργικού συστήματος "
Packit 1470ea
"επειδή εκεί τους έδειχνε ο profiler ότι ρο σύστημα σπαταλούσε τον περισσότερο "
Packit 1470ea
"χρόνο του! Μη βελτιστοποιείτε κώδικα που δεν κάνει τίποτα χρήσιμο για το χρήστη."
Packit 1470ea
Packit 1470ea
#. (itstool) path: item/p
Packit 1470ea
#: C/introduction.page:99
Packit 1470ea
msgid ""
Packit 1470ea
"Remember the resources on the X server. Your program's memory usage doesn't "
Packit 1470ea
"include the pixmaps that are stored in the X server's process, but they are "
Packit 1470ea
"still using up memory. Use xrestop to see what resources your program is using."
Packit 1470ea
msgstr ""
Packit 1470ea
"Να θυμάστε τους πόρους του εξυπηρετητή X. Η χρήση μνήμης του προγράμματός σας "
Packit 1470ea
"δεν περιλαμβάνει τα pixmap που αποθηκεύονται στις διεργασίες του εξυπηρετητή X, "
Packit 1470ea
"αλλά και πάλι χρησιμοποιούν μνήμη. Χρησιμοποιήστε το xrestop για να δείτε ποιοι "
Packit 1470ea
"πόροι χρησιμοποιούνται από το πρόγραμμά σας."
Packit 1470ea
Packit 1470ea
#. (itstool) path: item/title
Packit 1470ea
#: C/introduction.page:106
Packit 1470ea
msgid "Low Level Hints"
Packit 1470ea
msgstr "Υποδείξεις χαμηλού επιπέδου"
Packit 1470ea
Packit 1470ea
#. (itstool) path: item/p
Packit 1470ea
#: C/introduction.page:109
Packit 1470ea
msgid ""
Packit 1470ea
"When optimizing memory use, be wary of the difference between peak usage and "
Packit 1470ea
"average memory usage. Some memory is almost always allocated, this is usually "
Packit 1470ea
"bad. Some is only briefly allocated, this may be quite acceptable. Tools like "
Packit 1470ea
"massif use the concept of space-time, the product of memory used and the "
Packit 1470ea
"duration it was allocated for, instead."
Packit 1470ea
msgstr ""
Packit 1470ea
"Όταν βελτιστοποιείτε τη χρήση της μνήμης, προσέξτε τη διαφορά ανάμεσα στη "
Packit 1470ea
"μέγιστη χρήση και στη μέση χρήση. Σχεδόν πάντα κατανέμεται κάποια ποσότητα "
Packit 1470ea
"μνήμης για χρήση από το πρόγραμμα, το οποίο είναι συνήθως κακό. Κάποια μνήμη "
Packit 1470ea
"είναι μόνο κατανεμημένη για λίγο, και αυτό μπορεί να είναι αποδεκτό. Εργαλεία "
Packit 1470ea
"όπως το massif χρησιμοποιούν την έννοια του χωροχρόνου, το γινόμενο της "
Packit 1470ea
"ποσότητας της μνήμης που χρησιμοποιείται και της διάρκειας κατά την οποία ήταν "
Packit 1470ea
"κατανεμημένη."
Packit 1470ea
Packit 1470ea
#. (itstool) path: item/p
Packit 1470ea
#: C/introduction.page:114
Packit 1470ea
msgid ""
Packit 1470ea
"Time simplified bits of code that do only the things you know are essential, "
Packit 1470ea
"this gives an absolute lower limit on the time your code will take. For "
Packit 1470ea
"example, when optimizing a loop time the empty loop. If that is still too long "
Packit 1470ea
"no amount of micro-optimization will help and you will have to change your "
Packit 1470ea
"design. Make sure the compiler doesn't optimize away your empty loop."
Packit 1470ea
msgstr ""
Packit 1470ea
"Τα απλοποιημένα κομμάτια κώδικα που κάνουν μόνο πράγματα που ξέρετε είναι "
Packit 1470ea
"ουσιώδη, γιατί σας δίνουν το απόλυτα χαμηλότερο όριο για το χρόνο που "
Packit 1470ea
"χρειάζεται ο κώδικάς σας. Για παράδειγμα, όταν βελτιστοποιείτε ένα βρόχο, "
Packit 1470ea
"χρονομετρήστε τον ενώ είναι άδειος. Αν αυτός ο χρόνος είναι πολύ μεγάλος, τότε "
Packit 1470ea
"δε θα σας βοηθήσει καθόλου η μικροβελτιστοποίηση, και θα πρέπει να αλλάξετε το "
Packit 1470ea
"σχεδιασμό σας. Βεβαιωθείτε ότι ο μεταγλωττιστής δε βελτιστοποιεί τον άδειο "
Packit 1470ea
"βρόχο."
Packit 1470ea
Packit 1470ea
#. (itstool) path: item/p
Packit 1470ea
#: C/introduction.page:119
Packit 1470ea
msgid ""
Packit 1470ea
"Move code out from inside loops. A slightly more complicated piece of code that "
Packit 1470ea
"is executed once is far quicker than a simple piece of code executed a thousand "
Packit 1470ea
"times. Avoid calling slow code often."
Packit 1470ea
msgstr ""
Packit 1470ea
"Αφαιρέστε κώδικα από εσωτερικούς βρόχους. Ένα λίγο πιο πολύπλοκο κομμάτι κώδικα "
Packit 1470ea
"που εκτελείται μια φορά είναι πολύ γρηγορότερο από ένα απλούστερο κομμάτι "
Packit 1470ea
"κώδικα που εκτελείται χίλιες φορές. Αποφύγετε να καλείτε συχνά αργό κώδικα."
Packit 1470ea
Packit 1470ea
#. (itstool) path: item/p
Packit 1470ea
#: C/introduction.page:124
Packit 1470ea
msgid ""
Packit 1470ea
"Give the compiler as many hints as possible. Use the const keyword. Use "
Packit 1470ea
"G_INLINE_FUNC for short, frequently called, functions. Look up "
Packit 1470ea
"G_GNUC_PURE, G_LIKELY and the other glib "
Packit 1470ea
"miscellaneous macros. Use the macros instead of gcc-specific keywords to ensure "
Packit 1470ea
"portability."
Packit 1470ea
msgstr ""
Packit 1470ea
"Δώστε στον μεταγλωττιστή όσες περισσότερες υποδείξεις μπορείτε. Χρησιμοποιήστε "
Packit 1470ea
"τη λέξη κλειδί const. Χρησιμοποιήστε τον G_INLINE_FUNC για "
Packit 1470ea
"συντομία, συναρτήσεων που καλούνται συχνά. Ψάξτε για τις μακροεντολές "
Packit 1470ea
"G_GNUC_PURE, G_LIKELY, και διάφορες άλλες της glib. "
Packit 1470ea
"Χρησιμοποιήστε τις μακροεντολές αντί για ειδικές λέξεις κλειδιά του gcc, για να "
Packit 1470ea
"εξασφαλίσετε τη φορητότητα."
Packit 1470ea
Packit 1470ea
#. (itstool) path: item/p
Packit 1470ea
#: C/introduction.page:129
Packit 1470ea
msgid ""
Packit 1470ea
"Don't use assembly language. It is not portable and, while it may be fast on "
Packit 1470ea
"one processor, it is not even guaranteed to be fast on every processor that "
Packit 1470ea
"supports that architecture (e.g. Athlon vs. Pentium 4)."
Packit 1470ea
msgstr ""
Packit 1470ea
"Μη χρησιμοποιείτε τη γλώσσα assembly. Δεν είναι φορητή και ενώ μπορεί να είναι "
Packit 1470ea
"γρήγορη σε έναν επεξεργαστή, δεν είναι εγγυημένο ότι θα είναι γρήγορη και σε "
Packit 1470ea
"οποιοδήποτε άλλο επεξεργαστή που υποστηρίζει αυτήν την αρχιτεκτονική (π.χ. "
Packit 1470ea
"Athlon vs Pentium 4)."
Packit 1470ea
Packit 1470ea
#. (itstool) path: item/p
Packit 1470ea
#: C/introduction.page:134
Packit 1470ea
msgid ""
Packit 1470ea
"Don't rewrite an existing library routine unless you are sure it is "
Packit 1470ea
"unnecessarily slow. Many CPU-intensive library routines have already been "
Packit 1470ea
"optimized. Conversely, some library routines are slow, especially ones that "
Packit 1470ea
"make system calls to the operating system."
Packit 1470ea
msgstr ""
Packit 1470ea
"Μη ξαναγράψετε μια υφιστάμενη βιβλιοθήκη εκτός και αν είστε βέβαιοι ότι είναι "
Packit 1470ea
"αδικαιολόγητα αργή. Πολλές βιβλιοθήκες που καταπονούν τον επεξεργαστή είναι ήδη "
Packit 1470ea
"βελτιστοποιημένες. Αντίστοιχα, μερικές ρουτίνες βιβλιοθηκών είναι αργές, ειδικά "
Packit 1470ea
"μερικές που κάνουν πολλές κλήσεις συστήματος στο λειτουργικό σύστημα."
Packit 1470ea
Packit 1470ea
#. (itstool) path: item/p
Packit 1470ea
#: C/introduction.page:139
Packit 1470ea
msgid ""
Packit 1470ea
"Minimize the number of libraries you link to. The fewer libraries to link in, "
Packit 1470ea
"the faster the program starts. This is a difficult thing to do with GNOME."
Packit 1470ea
msgstr ""
Packit 1470ea
"Ελαχιστοποιήστε τον αριθμό των βιβλιοθηκών με τις οποίες συνδέεστε. Με όσο "
Packit 1470ea
"λιγότερες βιβλιοθήκες συνδέεται ένα πρόγραμμα, τόσο γρηγορότερα ξεκινά. Αυτό "
Packit 1470ea
"είναι κάτι δύσκολο να γίνει στο GNOME."
Packit 1470ea
Packit 1470ea
#. (itstool) path: item/title
Packit 1470ea
#: C/introduction.page:146
Packit 1470ea
msgid "High Level Tricks"
Packit 1470ea
msgstr "Κόλπα υψηλού επιπέδου"
Packit 1470ea
Packit 1470ea
#. (itstool) path: item/p
Packit 1470ea
#: C/introduction.page:149
Packit 1470ea
msgid ""
Packit 1470ea
"Take advantage of concurrency. This doesn't just mean using multiple "
Packit 1470ea
"processors, it also means taking advantage of the time the user spends thinking "
Packit 1470ea
"about what they are going to do next to perform some calculations in "
Packit 1470ea
"anticipation. Do calculations while waiting for data to be loaded off disk. "
Packit 1470ea
"Take advantage of multiple resources, use them all at once."
Packit 1470ea
msgstr ""
Packit 1470ea
"Εκμεταλλευτείτε το συγχρονισμό. Αυτό δε σημαίνει μόνο να χρησιμοποιείτε "
Packit 1470ea
"πολλαπλούς επεξεργαστές, αλλά και να εκμεταλλεύεστε το χρόνο που ο χρήστης "
Packit 1470ea
"σπαταλά να σκέφτεται τι θα κάνει στη συνέχεια, για να κάνετε μερικούς "
Packit 1470ea
"υπολογισμούς που χρειάζεστε. Κάντε υπολογισμούς ενώ περιμένετε για πληροφορίες "
Packit 1470ea
"να φορτωθούν από το δίσκο. Εκμεταλλευτείτε πολλαπλούς πόρους, χρησιμοποιώντας "
Packit 1470ea
"τους ταυτόχρονα."
Packit 1470ea
Packit 1470ea
#. (itstool) path: item/p
Packit 1470ea
#: C/introduction.page:154
Packit 1470ea
msgid ""
Packit 1470ea
"Cheat. The user only has to think that the computer is fast, it doesn't matter "
Packit 1470ea
"whether it actually is or not. It is the time between the command and the "
Packit 1470ea
"answer that is important, it doesn't matter if the response is pre-calculated, "
Packit 1470ea
"cached, or will in fact be worked out later at a more convenient time, as long "
Packit 1470ea
"as the user gets what they expect."
Packit 1470ea
msgstr ""
Packit 1470ea
"Ξεγελάστε. Ο χρήστης χρειάζεται μόνο να νομίζει ότι ο υπολογιστής είναι "
Packit 1470ea
"γρήγορος, άσχετα αν πραγματικά είναι. Σημασία έχει ο χρόνος μεταξύ της εντολής "
Packit 1470ea
"και της απάντησης, και όχι αν η απάντηση υπολογίστηκε από πριν, ή ήταν "
Packit 1470ea
"προσωρινά αποθηκευμένη, ή ακόμα και αν θα υπολογιστεί αργότερα σε κάποιο πιο "
Packit 1470ea
"βολικό χρόνο, φτάνει ο χρήστης να πάρει αυτό που περιμένει."
Packit 1470ea
Packit 1470ea
#. (itstool) path: item/p
Packit 1470ea
#: C/introduction.page:159
Packit 1470ea
msgid ""
Packit 1470ea
"Do things in the idle loop. It is easier to program than using full multi-"
Packit 1470ea
"threading but still gets things done out of the users eye. Be careful though, "
Packit 1470ea
"if you spend too long in the idle loop your program will become sluggish. So "
Packit 1470ea
"regularly give control back to the main loop."
Packit 1470ea
msgstr ""
Packit 1470ea
"Κάντε πράγματα στον ανενεργό βρόχο. Είναι ευκολότερο στον προγραμματισμό από τη "
Packit 1470ea
"χρήση πολυνηματικότητας, αλλά και πάλι επιτυγχάνει να κάνει πράγματα χωρίς να "
Packit 1470ea
"το αντιλαμβάνεται ο χρήστης. Να είστε όμως προσεκτικοί, γιατί αν σπαταλάτε πολύ "
Packit 1470ea
"χρόνο στον ανενεργό βρόχο τότε το πρόγραμμά σας γίνεται αργό. Οπότε να δίνεται "
Packit 1470ea
"τακτικά τον έλεγχο στον κύριο βρόχο."
Packit 1470ea
Packit 1470ea
#. (itstool) path: item/p
Packit 1470ea
#: C/introduction.page:164
Packit 1470ea
msgid ""
Packit 1470ea
"If all else fails, tell the user that the code is going to be slow and put up a "
Packit 1470ea
"progress bar. They won't be as happy as if you had just presented the results, "
Packit 1470ea
"but they will at least know the program hasn't crashed and they can go get a "
Packit 1470ea
"cup of coffee."
Packit 1470ea
msgstr ""
Packit 1470ea
"Αν όλα τα υπόλοιπα αποτύχουν, πείτε στο χρήστη ότι ο κώδικας είναι αργός και "
Packit 1470ea
"βάλτε μια μπάρα προόδου. Δε θα είναι τόσο ευχαριστημένος όσο θα ήταν αν του "
Packit 1470ea
"δίνατε άμεσα αποτελέσματα, αλλά τουλάχιστον θα ξέρουν ότι το πρόγραμμα δεν "
Packit 1470ea
"κόλλησε και ότι μπορούν να σηκωθούν και να φτιάξουν ένα καφεδάκι."
Packit 1470ea
Packit 1470ea
#. (itstool) path: media
Packit 1470ea
#. This is a reference to an external file such as an image or video. When
Packit 1470ea
#. the file changes, the md5 hash will change to let you know you need to
Packit 1470ea
#. update your localized copy. The msgstr is not used at all. Set it to
Packit 1470ea
#. whatever you like once you have updated your copy of the file.
Packit 1470ea
#: C/massif.page:50
Packit 1470ea
msgctxt "_"
Packit 1470ea
msgid ""
Packit 1470ea
"external ref='figures/massif-before.png' md5='1a6b2ace548e6789ab8bfacb3727b345'"
Packit 1470ea
msgstr ""
Packit 1470ea
"external ref='figures/massif-before.png' md5='1a6b2ace548e6789ab8bfacb3727b345'"
Packit 1470ea
Packit 1470ea
#. (itstool) path: media
Packit 1470ea
#. This is a reference to an external file such as an image or video. When
Packit 1470ea
#. the file changes, the md5 hash will change to let you know you need to
Packit 1470ea
#. update your localized copy. The msgstr is not used at all. Set it to
Packit 1470ea
#. whatever you like once you have updated your copy of the file.
Packit 1470ea
#: C/massif.page:124
Packit 1470ea
msgctxt "_"
Packit 1470ea
msgid ""
Packit 1470ea
"external ref='figures/massif-after.png' md5='36d1b4ad7ab49b28b69ad3eabbaa7069'"
Packit 1470ea
msgstr ""
Packit 1470ea
"external ref='figures/massif-after.png' md5='36d1b4ad7ab49b28b69ad3eabbaa7069'"
Packit 1470ea
Packit 1470ea
#. (itstool) path: page/title
Packit 1470ea
#: C/massif.page:7
Packit 1470ea
msgid "Using <app>Massif</app> for Profiling Memory Use in GNOME Software"
Packit 1470ea
msgstr ""
Packit 1470ea
"Χρησιμοποιήστε το <app>Massif</app> για την χρήσης της μνήμης κατατομής σε "
Packit 1470ea
"εφαρμογές του GNOME"
Packit 1470ea
Packit 1470ea
#. (itstool) path: section/p
Packit 1470ea
#: C/massif.page:13
Packit 1470ea
msgid ""
Packit 1470ea
"<app>Massif</app> is a member of the 
Packit 1470ea
"\">valgrind</link> suite of memory-profiling tools. Its purpose is to give a "
Packit 1470ea
"detailed view of dynamic memory usage during the lifetime of the program. "
Packit 1470ea
"Specifically it records the memory use of the heap and the stack."
Packit 1470ea
msgstr ""
Packit 1470ea
"Η <app>Massif</app> είναι μέλος της σειράς 
Packit 1470ea
"\">valgrind</link> για εργαλεία κατατομής μνήμης. Ο σκοπός του είναι να δίνει "
Packit 1470ea
"μια λεπτομερή προβολή της δυναμικής χρήσης της μνήμης κατά τη διάρκεια του "
Packit 1470ea
"χρόνου ζωής ενός προγράμματος. Συγκεκριμένα, καταγράφει τη χρήση της μνήμης από "
Packit 1470ea
"το σωρό και τη στοίβα."
Packit 1470ea
Packit 1470ea
#. (itstool) path: section/p
Packit 1470ea
#: C/massif.page:16
Packit 1470ea
msgid ""
Packit 1470ea
"The heap is the region of memory which is allocated with functions like malloc. "
Packit 1470ea
"It grows on demand and is usually the largest region of memory in a program. "
Packit 1470ea
"The stack is where all the local data for functions is stored. This includes "
Packit 1470ea
"the \"automatic\" variables in C and the return address for subroutines. The "
Packit 1470ea
"stack is typically a lot smaller and a lot more active than the heap. We won't "
Packit 1470ea
"consider the stack explicitly since <app>Massif</app> treats it as though it "
Packit 1470ea
"were just another part of the heap. <app>Massif</app> also gives information "
Packit 1470ea
"about how much memory is used to manage the heap."
Packit 1470ea
msgstr ""
Packit 1470ea
"Ο σωρός είναι η περιοχή στη μνήμη η οποία κατανέμεται με συναρτήσεις όπως η "
Packit 1470ea
"malloc. Μεγαλώνει κατά απαίτηση και είναι συνήθως η μεγαλύτερη περιοχή της "
Packit 1470ea
"μνήμης σε ένα πρόγραμμα. Η στοίβα είναι εκεί όπου αποθηκεύονται όλα τα τοπικά "
Packit 1470ea
"δεδομένα για τις συναρτήσεις. Αυτό συμπεριλαμβάνει τις \"αυτόματες\" μεταβλητές "
Packit 1470ea
"στη C και τη διεύθυνση επιστροφής για τις υπορουτίνες. Η στοίβα είναι τυπικά "
Packit 1470ea
"πολύ μικρότερη και πολύ πιο ενεργή από το σωρό. Δε θα ασχοληθούμε ειδικά με τη "
Packit 1470ea
"στοίβα μια που το <app>Massif</app> την αντιμετωπίζει σαν να ήταν μέρος του "
Packit 1470ea
"σωρού. Το <app>Massif</app> παρέχει επίσης πληροφορίες για την ποσότητα της "
Packit 1470ea
"μνήμης που χρησιμοποιείται για τη διαχείριση του σωρού."
Packit 1470ea
Packit 1470ea
#. (itstool) path: section/p
Packit 1470ea
#: C/massif.page:18
Packit 1470ea
msgid ""
Packit 1470ea
"<app>Massif</app> produces two output files: a graphical overview in a "
Packit 1470ea
"postscript file and a detailed breakdown in a text file."
Packit 1470ea
msgstr ""
Packit 1470ea
"Η <app>Massif</app> παράγει δύο αρχεία εξόδου: μια γραφική επισκόπηση σε ένα "
Packit 1470ea
"αρχείο postscript και μια λεπτομερή ανάλυση σε ένα αρχείο κειμένου."
Packit 1470ea
Packit 1470ea
#. (itstool) path: section/title
Packit 1470ea
#: C/massif.page:23
Packit 1470ea
msgid "Using <app>Massif</app> with GNOME"
Packit 1470ea
msgstr "Χρήση της <app>Massif</app> με το GNOME"
Packit 1470ea
Packit 1470ea
#. (itstool) path: section/p
Packit 1470ea
#: C/massif.page:24
Packit 1470ea
msgid ""
Packit 1470ea
"<app>Massif</app> has very few options and for many programs does not need "
Packit 1470ea
"them. However for GNOME applications, where memory allocation might be buried "
Packit 1470ea
"deep in either glib or GTK, the number of levels down the call-stack Massif "
Packit 1470ea
"descends needs to be increased. This is achieved using the --depth parameter. "
Packit 1470ea
"By default this is 3; increasing it to 5 will guarantee the call-stack reaches "
Packit 1470ea
"down to your code. One or two more levels may also be desirable to provide your "
Packit 1470ea
"code with some context. Since the level of detail becomes quickly overwhelming "
Packit 1470ea
"it is best to start with the smaller depth parameter and only increase it when "
Packit 1470ea
"it becomes apparent that it isn't sufficient."
Packit 1470ea
msgstr ""
Packit 1470ea
"Η <app>Massif</app> έχει πολύ λίγες επιλογές και για τα περισσότερα προγράμματα "
Packit 1470ea
"δεν τις χρειάζεστε. Εντούτοις για της εφαρμογές του GNOME, όπου η κατανομή "
Packit 1470ea
"μνήμης μπορεί να θαφτεί βαθιά στο glib ή στο GTK, ο αριθμός επιπέδων κάτω από "
Packit 1470ea
"την στοίβα κλήσεων που η Massif κατεβαίνει θα πρέπει να αυξηθεί. Αυτό είναι "
Packit 1470ea
"γίνεται χρησιμοποιώντας την παράμετρο --depth. Εξ ορισμού αυτό είναι ίσο με 3· "
Packit 1470ea
"αυξάνοντας το σε 5 εγγυάται ότι η στοίβα κλήσεων θα φθάσει στον κώδικά σας. Ένα "
Packit 1470ea
"ή δύο περισσότερα επίπεδα μπορούν επίσης να είναι επιθυμητά και να παρέχουν "
Packit 1470ea
"στον κώδικά σας κάποιο πλαίσιο εφαρμογής. Δεδομένου ότι το επίπεδο λεπτομέρειας "
Packit 1470ea
"γίνεται γρήγορα συντριπτικό είναι καλύτερο να αρχίσει με μικρότερη παράμετρο "
Packit 1470ea
"βάθους και να το αυξήστε μόνο όταν γίνεται προφανές ότι αυτό δεν είναι "
Packit 1470ea
"ικανοποιητικό."
Packit 1470ea
Packit 1470ea
#. (itstool) path: section/p
Packit 1470ea
#: C/massif.page:27
Packit 1470ea
msgid ""
Packit 1470ea
"It is also useful to tell <app>Massif</app> which functions allocate memory in "
Packit 1470ea
"glib. It removes an unnecessary layer of function calls from the reports and "
Packit 1470ea
"gives you a clearer idea of what code is allocating memory. The allocating "
Packit 1470ea
"functions in glib are g_malloc, g_malloc0, g_realloc, g_try_malloc, and "
Packit 1470ea
"g_mem_chunk_alloc. You use the --alloc-fn option to tell Massif about them."
Packit 1470ea
msgstr ""
Packit 1470ea
"Είναι επίσης χρήσιμο να πείτε στο <app>Massif</app> ποιες συναρτήσεις δεσμεύουν "
Packit 1470ea
"χώρο στη μνήμη μέσω του glib. Αφαιρεί ένα περιττό στρώμα κλήσεων συναρτήσεων "
Packit 1470ea
"από τις αναφορές και σας δίνει μια σαφέστερη ιδέα ποιος κώδικας δεσμεύει χώρο "
Packit 1470ea
"στην μνήμη. Οι συναρτήσεις δέσμευσης χώρου μνήμης μέσω του glib είναι οι "
Packit 1470ea
"g_malloc, g_malloc0, g_realloc, g_try_malloc, και g_mem_chunk_alloc. "
Packit 1470ea
"Χρησιμοποιήστε την επιλογή --alloc-fn για να ενημερώστε το Masiff για αυτές."
Packit 1470ea
Packit 1470ea
#. (itstool) path: section/p
Packit 1470ea
#: C/massif.page:30
Packit 1470ea
msgid "Your command-line should therefore look something like:"
Packit 1470ea
msgstr "Η γραμμή-εντολών σας πρέπει επομένως να μοιάζει κάπως σαν:"
Packit 1470ea
Packit 1470ea
#. (itstool) path: section/code
Packit 1470ea
#: C/massif.page:33
Packit 1470ea
#, no-wrap
Packit 1470ea
msgid ""
Packit 1470ea
"\n"
Packit 1470ea
"valgrind --tool=massif --depth=5  --alloc-fn=g_malloc --alloc-fn=g_realloc --alloc-fn=g_try_malloc \\\n"
Packit 1470ea
"         --alloc-fn=g_malloc0 --alloc-fn=g_mem_chunk_alloc swell-foop\n"
Packit 1470ea
"        "
Packit 1470ea
msgstr ""
Packit 1470ea
"\n"
Packit 1470ea
"valgrind --tool=massif --depth=5  --alloc-fn=g_malloc --alloc-fn=g_realloc --alloc-fn=g_try_malloc \\\n"
Packit 1470ea
"         --alloc-fn=g_malloc0 --alloc-fn=g_mem_chunk_alloc swell-foop\n"
Packit 1470ea
"        "
Packit 1470ea
Packit 1470ea
#. (itstool) path: section/p
Packit 1470ea
#: C/massif.page:37
Packit 1470ea
msgid ""
Packit 1470ea
"<app>Swell Foop</app> is the program we will be using as an example. Be warned "
Packit 1470ea
"that, since valgrind emulates the CPU, it will run very slowly. You "
Packit 1470ea
"will also need a lot of memory."
Packit 1470ea
msgstr ""
Packit 1470ea
"Το <app>Swell Foop</app> είναι το πρόγραμμα που θα χρησιμοποιούμε σαν "
Packit 1470ea
"παράδειγμα. Σας προειδοποιούμε ότι, από την στιγμή που ο valgrind θα εξομοιώνει "
Packit 1470ea
"την ΚΜΕ, θα λειτουργεί πολύ αργά. Θα χρειαστείτε επίσης πολλή μνήμη."
Packit 1470ea
Packit 1470ea
#. (itstool) path: section/title
Packit 1470ea
#: C/massif.page:41
Packit 1470ea
msgid "Interpreting the Results"
Packit 1470ea
msgstr "Ερμηνεία των αποτελεσμάτων"
Packit 1470ea
Packit 1470ea
#. (itstool) path: section/p
Packit 1470ea
#: C/massif.page:42
Packit 1470ea
msgid ""
Packit 1470ea
"The graphical output of <app>Massif</app> is largely self explanatory. Each "
Packit 1470ea
"band represents the memory allocated by one function over time. Once you "
Packit 1470ea
"identify which bands are using the most memory, usually the big thick ones at "
Packit 1470ea
"the top you will have to consult the text file for the details."
Packit 1470ea
msgstr ""
Packit 1470ea
"Η γραφική έξοδος δεδομένων του <app>Massif</app> είναι κατά ένα μεγάλο μέρος "
Packit 1470ea
"αυτοεπεξηγηματικός. Κάθε ζώνη αντιπροσωπεύει τη μνήμη που διατίθεται από μια "
Packit 1470ea
"λειτουργία σε σχέση με τον χρόνο. Μόλις προσδιορίσετε ποιες ζώνες χρησιμοποιούν "
Packit 1470ea
"την περισσότερη μνήμη, συνήθως οι μεγάλες παχιές ζώνες στην κορυφή, θα πρέπει "
Packit 1470ea
"να συμβουλευθείτε το αντίστοιχο αρχείο κειμένου για περισσότερες λεπτομέρειες."
Packit 1470ea
Packit 1470ea
#. (itstool) path: section/p
Packit 1470ea
#: C/massif.page:45
Packit 1470ea
msgid ""
Packit 1470ea
"The text file is arranged as a hierarchy of sections, at the top is a list of "
Packit 1470ea
"the worst memory users arranged in order of decreasing spacetime. Below this "
Packit 1470ea
"are further sections, each breaking the results down into finer detail as you "
Packit 1470ea
"proceed down the call-stack. To illustrate this we will use the output of the "
Packit 1470ea
"command above."
Packit 1470ea
msgstr ""
Packit 1470ea
"Τα αρχεία κειμένων τακτοποιούνται ιεραρχικά βάση των τμημάτων, στην κορυφή "
Packit 1470ea
"είναι μία λίστα των χειρότερων χρηστών μνήμης που τακτοποιούνται κατά σειρά "
Packit 1470ea
"βάση την μείωση του χωροχρόνου. Κάτω από αυτά είναι και άλλα τμήματα, κάθε ένα "
Packit 1470ea
"διαιρεί τα αποτελέσματα σε μικρότερες λεπτομέρειες καθώς προχωράτε προς τη "
Packit 1470ea
"στοίβα κλήσεων. Για να επεξηγήσουμε αυτό θα χρησιμοποιήσουμε την έξοδος "
Packit 1470ea
"δεδομένων της εντολής παραπάνω."
Packit 1470ea
Packit 1470ea
#. (itstool) path: figure/title
Packit 1470ea
#: C/massif.page:49
Packit 1470ea
msgid ""
Packit 1470ea
"<app>Massif</app> output for the unoptimized version of the <app>Swell Foop</"
Packit 1470ea
"app> program."
Packit 1470ea
msgstr ""
Packit 1470ea
"Έξοδος δεδομένων του <app>Massif</app> για την μη-βελτιστοποιημένη έκδοση του "
Packit 1470ea
"προγράμματος <app>Swell Foop</app>."
Packit 1470ea
Packit 1470ea
#. (itstool) path: section/p
Packit 1470ea
#: C/massif.page:52
Packit 1470ea
msgid ""
Packit 1470ea
"The image above shows a typical postscript output from <app>Massif</app>. This "
Packit 1470ea
"is the result you would get from playing a single game of <app>Swell Foop</app> "
Packit 1470ea
"(version 2.8.0) and then quitting. The postscript file will have a name like "
Packit 1470ea
"<file>massif.12345.ps</file> and the text file will be called "
Packit 1470ea
"<file>massif.12345.txt</file>. The number in the middle is the process ID of "
Packit 1470ea
"the program that was examined. If you actually try this example you will find "
Packit 1470ea
"two versions of each file, with slightly different numbers, this is because "
Packit 1470ea
"<app>Swell Foop</app> starts a second process and <app>Massif</app> follows "
Packit 1470ea
"that too. We will ignore this second process, it consumes very little memory."
Packit 1470ea
msgstr ""
Packit 1470ea
"Η εικόνα παραπάνω παρουσιάζει μία χαρακτηριστική έξοδο δεδομένων σε μορφή "
Packit 1470ea
"postscript από το <app>Massif</app>. Αυτό είναι το αποτέλεσμα που θα παίρνατε "
Packit 1470ea
"παίζοντας μία πίστα από το παιχνίδι <app>Swell Foop</app> (έκδοση 2.8.0) και "
Packit 1470ea
"έπειτα το κλείνατε. Το αρχείο postscript θα έχει ένα όνομα όπως "
Packit 1470ea
"<file>massif.12345.ps</file> και το αρχείο κειμένων θα ονομάζεται "
Packit 1470ea
"<file>massif.12345.txt</file>. Ο αριθμός στη μέση είναι η ταυτότητα διαδικασίας "
Packit 1470ea
"του προγράμματος που εξετάστηκε. Εάν δοκιμάσετε πραγματικά αυτό το παράδειγμα "
Packit 1470ea
"θα βρείτε δύο εκδόσεις κάθε αρχείου, με ελαφρά διαφορετικούς νούμερα, αυτό "
Packit 1470ea
"συμβαίνει γιατί το <app>Swell Foop</app> ξεκινά μια δεύτερη διαδικασία και το "
Packit 1470ea
"<app>Massif</app> ακολουθεί και αυτή επίσης. Θα αγνοήσουμε αυτήν την δεύτερη "
Packit 1470ea
"διαδικασία, μια που καταναλώνει πολύ λίγη μνήμη."
Packit 1470ea
Packit 1470ea
#. (itstool) path: section/p
Packit 1470ea
#: C/massif.page:66
Packit 1470ea
msgid ""
Packit 1470ea
"At the top of the graph we see a large yellow band labelled gdk_pixbuf_new. "
Packit 1470ea
"This seems like an ideal candidate for optimization, but we will need to use "
Packit 1470ea
"the text file to find out what is calling gdk_pixbuf_new. The top of the text "
Packit 1470ea
"file will look something like this:"
Packit 1470ea
msgstr ""
Packit 1470ea
"Στην κορυφή της γραφικής παράστασης βλέπουμε μια μεγάλη κίτρινη ζώνη με τίτλο "
Packit 1470ea
"gdk_pixbuf_new. Αυτό φαίνεται ως ένας ιδανικός υποψήφιος για βελτιστοποίηση, "
Packit 1470ea
"αλλά θα πρέπει να χρησιμοποιήσουμε το αρχείο κειμένων για να ανακαλύψουμε τι "
Packit 1470ea
"καλεί το gdk_pixbuf_new. Στην κορυφή του αρχείου κειμένων θα εμφανίζεται κάτι "
Packit 1470ea
"σαν το επόμενο:"
Packit 1470ea
Packit 1470ea
#. (itstool) path: section/code
Packit 1470ea
#: C/massif.page:69
Packit 1470ea
#, no-wrap
Packit 1470ea
msgid ""
Packit 1470ea
"\n"
Packit 1470ea
"Command: ./swell-foop\n"
Packit 1470ea
"\n"
Packit 1470ea
"== 0 ===========================\n"
Packit 1470ea
"Heap allocation functions accounted for 90.4% of measured spacetime\n"
Packit 1470ea
"\n"
Packit 1470ea
"Called from:\n"
Packit 1470ea
"  28.8% : 0x6BF83A: gdk_pixbuf_new (in /usr/lib/libgdk_pixbuf-2.0.so.0.400.9)\n"
Packit 1470ea
"\n"
Packit 1470ea
"    6.1% : 0x5A32A5: g_strdup (in /usr/lib/libglib-2.0.so.0.400.6)\n"
Packit 1470ea
"\n"
Packit 1470ea
"    5.9% : 0x510B3C: (within /usr/lib/libfreetype.so.6.3.7)\n"
Packit 1470ea
"\n"
Packit 1470ea
"    3.5% : 0x2A4A6B: __gconv_open (in /lib/tls/libc-2.3.3.so)\n"
Packit 1470ea
"        "
Packit 1470ea
msgstr ""
Packit 1470ea
"\n"
Packit 1470ea
"Εντολή: ./swell-foop\n"
Packit 1470ea
"\n"
Packit 1470ea
"== 0 ===========================\n"
Packit 1470ea
"Συναρτήσεις κατανομής σωρών που καταμετρήθηκαν ως το 90.4% από το μετρήσιμο χωρόχρoνο\n"
Packit 1470ea
"\n"
Packit 1470ea
"Καλείται από:\n"
Packit 1470ea
"  28.8% : 0x6BF83A: gdk_pixbuf_new (in /usr/lib/libgdk_pixbuf-2.0.so.0.400.9)\n"
Packit 1470ea
"\n"
Packit 1470ea
"    6.1% : 0x5A32A5: g_strdup (στο /usr/lib/libglib-2.0.so.0.400.6)\n"
Packit 1470ea
"\n"
Packit 1470ea
"    5.9% : 0x510B3C: (μέσα στο /usr/lib/libfreetype.so.6.3.7)\n"
Packit 1470ea
"\n"
Packit 1470ea
"    3.5% : 0x2A4A6B: __gconv_open (στο /lib/tls/libc-2.3.3.so)\n"
Packit 1470ea
"        "
Packit 1470ea
Packit 1470ea
#. (itstool) path: section/p
Packit 1470ea
#: C/massif.page:84
Packit 1470ea
msgid ""
Packit 1470ea
"The line with the '=' signs indicates how far down the stack trace we are, in "
Packit 1470ea
"this case we are at the top. After this it lists the heaviest users of memory "
Packit 1470ea
"in order of decreasing spacetime. Spacetime is the product of the amount of "
Packit 1470ea
"memory used and how long it was used for. It corresponds to the area of the "
Packit 1470ea
"bands in the graph. This part of the file tells us what we already know: most "
Packit 1470ea
"of the spacetime is dedicated to gdk_pixbuf_new. To find out what called "
Packit 1470ea
"gdk_pixbuf_new we need to search further down the text file:"
Packit 1470ea
msgstr ""
Packit 1470ea
"Η γραμμή με το σύμβολο του '=' δείχνει πόσο βαθιά κάτω είμαστε στο ίχνος "
Packit 1470ea
"στοίβας, σε αυτήν την περίπτωση είμαστε στην κορυφή. Μετά από αυτό απαριθμεί "
Packit 1470ea
"τους βαρύτερους χρήστες της μνήμης έτσι ώστε να μειωθεί ο χωρόχρονος. Ο "
Packit 1470ea
"χωρόχρονος είναι το λόγος του ποσού της μνήμης που χρησιμοποιείται και του "
Packit 1470ea
"χρόνου χρησιμοποίησης του. Αντιστοιχεί στον περιοχή των ζωνών στη γραφική "
Packit 1470ea
"παράσταση. Αυτό το μέρος του αρχείου μας λέει αυτό που ξέρουμε ήδη: το "
Packit 1470ea
"μεγαλύτερο μέρος του χωροχρόνου αφιερώνεται στο gdk_pixbuf_new. Για να "
Packit 1470ea
"ανακαλύψουν τι κάλεσε το gdk_pixbuf_new πρέπει να ψάξουμε περαιτέρω μέσα στο "
Packit 1470ea
"αρχείο κειμένου:"
Packit 1470ea
Packit 1470ea
#. (itstool) path: section/code
Packit 1470ea
#: C/massif.page:87
Packit 1470ea
#, no-wrap
Packit 1470ea
msgid ""
Packit 1470ea
"\n"
Packit 1470ea
"== 4 ===========================\n"
Packit 1470ea
"Context accounted for 28.8% of measured spacetime\n"
Packit 1470ea
"  0x6BF83A: gdk_pixbuf_new (in /usr/lib/libgdk_pixbuf-2.0.so.0.400.9)\n"
Packit 1470ea
"  0x3A998998: (within /usr/lib/gtk-2.0/2.4.0/loaders/libpixbufloader-png.so)\n"
Packit 1470ea
"  0x6C2760: (within /usr/lib/libgdk_pixbuf-2.0.so.0.400.9)\n"
Packit 1470ea
"  0x6C285E: gdk_pixbuf_new_from_file (in /usr/lib/libgdk_pixbuf-2.0.so.0.400.9)\n"
Packit 1470ea
"\n"
Packit 1470ea
"Called from:\n"
Packit 1470ea
"  27.8% : 0x804C1A3: load_scenario (swell-foop.c:463)\n"
Packit 1470ea
"\n"
Packit 1470ea
"    0.9% : 0x3E8095E: (within /usr/lib/libgnomeui-2.so.0.792.0)\n"
Packit 1470ea
"\n"
Packit 1470ea
"  and 1 other insignificant place\n"
Packit 1470ea
"        "
Packit 1470ea
msgstr ""
Packit 1470ea
"\n"
Packit 1470ea
"== 4 ===========================\n"
Packit 1470ea
"Πλαίσιο καταμέτρησης για το 28.8% του υπολογίσιμου χωροχρόνου\n"
Packit 1470ea
"  0x6BF83A: gdk_pixbuf_new (στο /usr/lib/libgdk_pixbuf-2.0.so.0.400.9)\n"
Packit 1470ea
"  0x3A998998: (μέσα στο /usr/lib/gtk-2.0/2.4.0/loaders/libpixbufloader-png.so)\n"
Packit 1470ea
"  0x6C2760: (μέσα στο /usr/lib/libgdk_pixbuf-2.0.so.0.400.9)\n"
Packit 1470ea
"  0x6C285E: gdk_pixbuf_new_from_file (στο /usr/lib/libgdk_pixbuf-2.0.so.0.400.9)\n"
Packit 1470ea
"\n"
Packit 1470ea
"Καλείται από:\n"
Packit 1470ea
"  27.8% : 0x804C1A3: load_scenario (swell-foop.c:463)\n"
Packit 1470ea
"\n"
Packit 1470ea
"    0.9% : 0x3E8095E: (μέσα στο /usr/lib/libgnomeui-2.so.0.792.0)\n"
Packit 1470ea
"\n"
Packit 1470ea
"  και 1 άλλη ασήμαντη θέση\n"
Packit 1470ea
"        "
Packit 1470ea
Packit 1470ea
#. (itstool) path: section/p
Packit 1470ea
#: C/massif.page:102
Packit 1470ea
msgid ""
Packit 1470ea
"The first line tells us we are now four levels deep into the stack. Below it is "
Packit 1470ea
"a listing of the function calls that leads from here to gdk_pixbuf_new. Finally "
Packit 1470ea
"there is a list of functions that are at the next level down and call these "
Packit 1470ea
"functions. There are, of course, also entries for levels 1, 2, and 3, but this "
Packit 1470ea
"is the first level to reach right down through the GDK code to the <app>Swell "
Packit 1470ea
"Foop</app> code. From this listing, we can see instantly that the problem code "
Packit 1470ea
"is load_scenario."
Packit 1470ea
msgstr ""
Packit 1470ea
"Η πρώτη γραμμή μας λέει ότι είμαστε τώρα τέσσερα επίπεδα βαθιά μέσα στη στοίβα. "
Packit 1470ea
"Από κάτω βρίσκεται η λίστα των κλήσεων λειτουργίας που μας οδηγεί από εδώ στο "
Packit 1470ea
"gdk_pixbuf_new. Τελικά υπάρχει μία λίστα λειτουργιών που είναι στο επόμενο κάτω "
Packit 1470ea
"επίπεδο και καλούν αυτές τις λειτουργίες. Υπάρχουν, φυσικά, καταχωρίσεις για τα "
Packit 1470ea
"επίπεδα 1, 2, και 3, αλλά αυτό είναι το πρώτο επίπεδο που φθάνει ακριβώς στον "
Packit 1470ea
"κώδικα GDK του <app>Swell Foop</app>. Από αυτήν την λίστα, μπορούμε να δούμε "
Packit 1470ea
"αμέσως ότι ο προβληματικός κώδικας είναι ο load_scenario."
Packit 1470ea
Packit 1470ea
#. (itstool) path: section/p
Packit 1470ea
#: C/massif.page:105
Packit 1470ea
msgid ""
Packit 1470ea
"Now that we know what part of our code is using all the spacetime we can look "
Packit 1470ea
"at it and find out why. It turns out that the load_scenario is loading a pixbuf "
Packit 1470ea
"from file and then never freeing that memory. Having identified the problem "
Packit 1470ea
"code, we can start to fix it."
Packit 1470ea
msgstr ""
Packit 1470ea
"Τώρα που ξέρουμε ποιο μέρος του κώδικά μας χρησιμοποιεί όλο χωρόχρονο μπορούμε "
Packit 1470ea
"να εξετάσουμε και να ανακαλύψουμε το γιατί. Ως αποτέλεσμα βλέπουμε ότι το "
Packit 1470ea
"load_scenario φορτώνει την pixbuf από ένα αρχείο και έπειτα δεν απελευθερώνει "
Packit 1470ea
"ποτέ την μνήμη. Αφού προσδιορίσαμε τον προβληματικό κώδικα, μπορούμε να "
Packit 1470ea
"αρχίσουμε να τον διορθώνουμε."
Packit 1470ea
Packit 1470ea
#. (itstool) path: section/title
Packit 1470ea
#: C/massif.page:110
Packit 1470ea
msgid "Acting on the Results"
Packit 1470ea
msgstr "Ενέργειες πάνω στα αποτελέσματα"
Packit 1470ea
Packit 1470ea
#. (itstool) path: section/p
Packit 1470ea
#: C/massif.page:111
Packit 1470ea
msgid ""
Packit 1470ea
"Reducing spacetime consumption is good, but there are two ways of reducing it "
Packit 1470ea
"and they are not equal. You can either reduce the amount of memory allocated, "
Packit 1470ea
"or reduce the amount of time it is allocated for. Consider for a moment a model "
Packit 1470ea
"system with only two processes running. Both processes use up almost all the "
Packit 1470ea
"physical RAM and if they overlap at all then the system will swap and "
Packit 1470ea
"everything will slow down. Obviously if we reduce the memory usage of each "
Packit 1470ea
"process by a factor of two then they can peacefully coexist without the need "
Packit 1470ea
"for swapping. If instead we reduce the time the memory is allocated by a factor "
Packit 1470ea
"of two then the two programs can coexist, but only as long as their periods of "
Packit 1470ea
"high memory use don't overlap. So it is better to reduce the amount of memory "
Packit 1470ea
"allocated."
Packit 1470ea
msgstr ""
Packit 1470ea
"Μειώνοντας την κατανάλωση του χωροχρόνου είναι κάτι καλό, αλλά υπάρχουν δύο "
Packit 1470ea
"τρόποι για την μείωση του που δεν είναι ισότιμες. Μπορείτε είτε να μειώσετε το "
Packit 1470ea
"ποσό μνήμης που διατίθεται, ή μειώστε το χρονικό διάστημα που του διατίθεται. "
Packit 1470ea
"Εξετάστε για μια στιγμή ένα πρότυπο σύστημα με μόνο δύο διαδικασίες ενεργές. "
Packit 1470ea
"Και οι δύο διαδικασίες καταναλώνουν σχεδόν όλη την φυσική μνήμη RAM και εάν "
Packit 1470ea
"κάποια στιγμή επικαλύψει η μία την άλλη το σύστημα θα κάνει αντιμετάθεση και "
Packit 1470ea
"όλα θα επιβραδύνουν. Προφανώς εάν μειώνουμε τη χρήση μνήμης σε κάθε διαδικασία "
Packit 1470ea
"με παράγοντα του δύο θα μπορούν ειρηνικά να συνυπάρξουν χωρίς την ανάγκη για "
Packit 1470ea
"αντιμετάθεση. Εάν αντ' αυτού μειώσουμε το χρόνο που διατίθεται η μνήμη με "
Packit 1470ea
"παράγοντα του δύο τότε τα δύο προγράμματα μπορούν να συνυπάρξουν, αλλά μόνο εφ' "
Packit 1470ea
"όσον οι περίοδοι υψηλής χρήσης της μνήμης τους δεν επικαλύπτονται. Έτσι είναι "
Packit 1470ea
"καλύτερο να μειωθεί το ποσό μνήμης που διατίθεται."
Packit 1470ea
Packit 1470ea
#. (itstool) path: section/p
Packit 1470ea
#: C/massif.page:114
Packit 1470ea
msgid ""
Packit 1470ea
"Unfortunately, the choice of optimization is also constrained by the needs of "
Packit 1470ea
"the program. The size of the pixbuf data in <app>Swell Foop</app> is determined "
Packit 1470ea
"by the size of the game's graphics and cannot be easily reduced. However, the "
Packit 1470ea
"amount of time it spends loaded into memory can be drastically reduced. The "
Packit 1470ea
"image below shows the <app>Massif</app> analysis of <app>Swell Foop</app> after "
Packit 1470ea
"being altered to dispose of the pixbufs once the images have been loaded into "
Packit 1470ea
"the X server."
Packit 1470ea
msgstr ""
Packit 1470ea
"Δυστυχώς, η επιλογή της βελτιστοποίησης περιορίζεται επίσης από τις ανάγκες του "
Packit 1470ea
"προγράμματος. Το μέγεθος των δεδομένων του pixbuf στο <app>Swell Foop</app> "
Packit 1470ea
"καθορίζεται από το μέγεθος των γραφικών του παιχνιδιού και δεν μπορεί να "
Packit 1470ea
"μειωθεί εύκολα. Εντούτοις, το χρονικό διάστημα που ξοδεύει κατά την φόρτωση του "
Packit 1470ea
"στη μνήμη μπορεί να μειωθεί δραστικά. Η παραπάνω εικόνα παρουσιάζει την ανάλυση "
Packit 1470ea
"του <app>Massif</app> για το <app>Swell Foop</app> μετά από την αλλαγή του για "
Packit 1470ea
"να απορρίπτει τα pixbufs μόλις φορτωθούν οι εικόνες στον διακομιστή X."
Packit 1470ea
Packit 1470ea
#. (itstool) path: figure/title
Packit 1470ea
#: C/massif.page:123
Packit 1470ea
msgid "<app>Massif</app> output for the optimized <app>Swell Foop</app> program."
Packit 1470ea
msgstr ""
Packit 1470ea
"Έξοδος του <app>Massif</app> για την βελτιστοποιημένο πρόγραμμα <app>Swell "
Packit 1470ea
"Foop</app>."
Packit 1470ea
Packit 1470ea
#. (itstool) path: section/p
Packit 1470ea
#: C/massif.page:126
Packit 1470ea
msgid ""
Packit 1470ea
"The spacetime use of gdk_pixbuf_new is now a thin band that only spikes briefly "
Packit 1470ea
"(it is now the sixteenth band down and shaded magenta). As a bonus, the peak "
Packit 1470ea
"memory use has dropped by 200 kB since the spike occurs before other memory is "
Packit 1470ea
"allocated. If two processes like this were run together the chances of the peak "
Packit 1470ea
"memory usage coinciding, and hence the risk of swapping, would be quite low."
Packit 1470ea
msgstr ""
Packit 1470ea
"Η χρήση του χωροχρόνου από το gdk_pixbuf_new είναι τώρα μια λεπτή ζώνη που έχει "
Packit 1470ea
"σύντομες αναλαμπές (είναι τώρα η δέκατη έκτη ζώνη και βαθυπόρφυρη απόχρωση). "
Packit 1470ea
"Σαν πρόσθετο χαρακτηριστικό, η μέγιστη χρήση μνήμης έχει ελαττωθεί κατά 200 kB "
Packit 1470ea
"δεδομένου ότι η αιχμή εμφανίζεται πριν δεσμευτεί η μνήμη. Εάν δύο διαδικασίες "
Packit 1470ea
"όπως αυτή εκτελούνται από κοινού οι πιθανότητες της μέγιστης χρήσης μνήμης "
Packit 1470ea
"συμπίπτουν, και ως εκ τούτου ο κίνδυνος αντιμετάθεσης, θα είναι αρκετά χαμηλός."
Packit 1470ea
Packit 1470ea
#. (itstool) path: section/p
Packit 1470ea
#: C/massif.page:129
Packit 1470ea
msgid ""
Packit 1470ea
"Can we do better ? A quick examination of <app>Massif</app>'s text output "
Packit 1470ea
"reveals: g_strdup to be the new major offender."
Packit 1470ea
msgstr ""
Packit 1470ea
"Μπορούμε να το κάνουμε καλύτερα; Μια γρήγορη εξέταση της εξόδου κειμένου του "
Packit 1470ea
"<app>Massif</app> αποκαλύπτει ότι: το g_strdup είναι ο νέος σημαντικός ένοχος."
Packit 1470ea
Packit 1470ea
#. (itstool) path: section/code
Packit 1470ea
#: C/massif.page:132
Packit 1470ea
#, no-wrap
Packit 1470ea
msgid ""
Packit 1470ea
"\n"
Packit 1470ea
"Command: ./swell-foop\n"
Packit 1470ea
"\n"
Packit 1470ea
"== 0 ===========================\n"
Packit 1470ea
"Heap allocation functions accounted for 87.6% of measured spacetime\n"
Packit 1470ea
"\n"
Packit 1470ea
"Called from:\n"
Packit 1470ea
"    7.7% : 0x5A32A5: g_strdup (in /usr/lib/libglib-2.0.so.0.400.6)\n"
Packit 1470ea
"\n"
Packit 1470ea
"    7.6% : 0x43BC9F: (within /usr/lib/libgdk-x11-2.0.so.0.400.9)\n"
Packit 1470ea
"\n"
Packit 1470ea
"    6.9% : 0x510B3C: (within /usr/lib/libfreetype.so.6.3.7)\n"
Packit 1470ea
"\n"
Packit 1470ea
"    5.2% : 0x2A4A6B: __gconv_open (in /lib/tls/libc-2.3.3.so)\n"
Packit 1470ea
"        "
Packit 1470ea
msgstr ""
Packit 1470ea
"\n"
Packit 1470ea
"Εντολή: ./swell-foop\n"
Packit 1470ea
"\n"
Packit 1470ea
"== 0 ===========================\n"
Packit 1470ea
"Συναρτήσεις κατανομής σωρών που καταμετρήθηκαν ως το 87.6% από το μετρήσιμο χωρόχρονο\n"
Packit 1470ea
"\n"
Packit 1470ea
"Καλείται από:\n"
Packit 1470ea
"    7.7% : 0x5A32A5: g_strdup (στο /usr/lib/libglib-2.0.so.0.400.6)\n"
Packit 1470ea
"\n"
Packit 1470ea
"    7.6% : 0x43BC9F: (μέσα στο /usr/lib/libgdk-x11-2.0.so.0.400.9)\n"
Packit 1470ea
"\n"
Packit 1470ea
"    6.9% : 0x510B3C: (μέσα στο /usr/lib/libfreetype.so.6.3.7)\n"
Packit 1470ea
"\n"
Packit 1470ea
"    5.2% : 0x2A4A6B: __gconv_open (στο /lib/tls/libc-2.3.3.so)\n"
Packit 1470ea
"        "
Packit 1470ea
Packit 1470ea
#. (itstool) path: section/p
Packit 1470ea
#: C/massif.page:147
Packit 1470ea
msgid "If we look closer though we see that it is called from many, many, places."
Packit 1470ea
msgstr ""
Packit 1470ea
"Εάν το εξετάσουμε ποιο ενδελεχώς θα δούμε ότι καλείται από πολλές, πολλές, "
Packit 1470ea
"διαφορετικές θέσεις."
Packit 1470ea
Packit 1470ea
#. (itstool) path: section/code
Packit 1470ea
#: C/massif.page:150
Packit 1470ea
#, no-wrap
Packit 1470ea
msgid ""
Packit 1470ea
"\n"
Packit 1470ea
"== 1 ===========================\n"
Packit 1470ea
"Context accounted for  7.7% of measured spacetime\n"
Packit 1470ea
"  0x5A32A5: g_strdup (in /usr/lib/libglib-2.0.so.0.400.6)\n"
Packit 1470ea
"\n"
Packit 1470ea
"Called from:\n"
Packit 1470ea
"    1.8% : 0x8BF606: gtk_icon_source_copy (in /usr/lib/libgtk-x11-2.0.so.0.400.9)\n"
Packit 1470ea
"\n"
Packit 1470ea
"    1.1% : 0x67AF6B: g_param_spec_internal (in /usr/lib/libgobject-2.0.so.0.400.6)\n"
Packit 1470ea
"\n"
Packit 1470ea
"    0.9% : 0x91FCFC: (within /usr/lib/libgtk-x11-2.0.so.0.400.9)\n"
Packit 1470ea
"\n"
Packit 1470ea
"    0.8% : 0x57EEBF: g_quark_from_string (in /usr/lib/libglib-2.0.so.0.400.6)\n"
Packit 1470ea
"\n"
Packit 1470ea
"  and 155 other insignificant places\n"
Packit 1470ea
"        "
Packit 1470ea
msgstr ""
Packit 1470ea
"\n"
Packit 1470ea
"== 1 ===========================\n"
Packit 1470ea
"Πλαίσιο καταμέτρησης για το 7.7% του υπολογίσιμου χωροχρόνου\n"
Packit 1470ea
"  0x5A32A5: g_strdup (στο /usr/lib/libglib-2.0.so.0.400.6)\n"
Packit 1470ea
"\n"
Packit 1470ea
"Κλήθηκε από:\n"
Packit 1470ea
"    1.8% : 0x8BF606: gtk_icon_source_copy (στο /usr/lib/libgtk-x11-2.0.so.0.400.9)\n"
Packit 1470ea
"\n"
Packit 1470ea
"    1.1% : 0x67AF6B: g_param_spec_internal (στο /usr/lib/libgobject-2.0.so.0.400.6)\n"
Packit 1470ea
"\n"
Packit 1470ea
"    0.9% : 0x91FCFC: (μέσα στο /usr/lib/libgtk-x11-2.0.so.0.400.9)\n"
Packit 1470ea
"\n"
Packit 1470ea
"    0.8% : 0x57EEBF: g_quark_from_string (στο /usr/lib/libglib-2.0.so.0.400.6)\n"
Packit 1470ea
"\n"
Packit 1470ea
"  και 155 άλλες ασήμαντες θέσεις\n"
Packit 1470ea
"        "
Packit 1470ea
Packit 1470ea
#. (itstool) path: section/p
Packit 1470ea
#: C/massif.page:166
Packit 1470ea
msgid ""
Packit 1470ea
"We now face diminishing returns for our optimization efforts. The graph hints "
Packit 1470ea
"at another possible approach: Both the \"other\" and \"heap admin\" bands are "
Packit 1470ea
"quite large. This tells us that there are a lot of small allocations being made "
Packit 1470ea
"from a variety of places. Eliminating these will be difficult, but if they can "
Packit 1470ea
"be grouped then the individual allocations can be larger and the \"heap admin\" "
Packit 1470ea
"overhead can be reduced."
Packit 1470ea
msgstr ""
Packit 1470ea
"Τώρα αντιμετωπίζουμε την ελάττωση της ανταμοιβή μας για τις προσπάθειες "
Packit 1470ea
"βελτιστοποίησής. Οι συμβουλές γραφικών παραστάσεων είναι μια άλλη πιθανή "
Packit 1470ea
"προσέγγιση: Και οι δύο ζώνες \"other\" και \"heap admin\" είναι αρκετά μεγάλες. "
Packit 1470ea
"Αυτό μας λέει ότι υπάρχουν πολλές μικρές κατανομές που έχουν γίνει από ποικίλες "
Packit 1470ea
"θέσεις. Η εξάλειψη τους θα είναι δύσκολη, αλλά εάν μπορέσουν να ομαδοποιηθούν "
Packit 1470ea
"τότε οι μεμονωμένες κατανομές μπορούν να γίνουν μεγαλύτερες και η επιβάρυνση "
Packit 1470ea
"του \"heap admin\" μπορεί να μειωθεί."
Packit 1470ea
Packit 1470ea
#. (itstool) path: section/title
Packit 1470ea
#: C/massif.page:171
Packit 1470ea
msgid "Caveats"
Packit 1470ea
msgstr "Προειδοποιήσεις"
Packit 1470ea
Packit 1470ea
#. (itstool) path: section/p
Packit 1470ea
#: C/massif.page:172
Packit 1470ea
msgid ""
Packit 1470ea
"There are a couple of things to watch out for: Firstly, spacetime is only "
Packit 1470ea
"reported as a percentage, you have to compare it to the overall size of the "
Packit 1470ea
"program to decide if the amount of memory is worth pursuing. The graph, with "
Packit 1470ea
"its kilobyte vertical axis, is good for this."
Packit 1470ea
msgstr ""
Packit 1470ea
"Υπάρχουν μερικά πράγματα που θα πρέπει να προσέξετε: Αρχικά, ο χωρόχρονος "
Packit 1470ea
"εμφανίζεται μόνο ως ποσοστό, πρέπει να το συγκρίνετε με το γενικό μέγεθος του "
Packit 1470ea
"προγράμματος για να αποφασίσει εάν το ποσό μνήμης αξίζει να δαπανηθεί. Η "
Packit 1470ea
"γραφική παράσταση, με τον κάθετο άξονα σε kilobyte, είναι ιδανικό για κάτι "
Packit 1470ea
"τέτοιο."
Packit 1470ea
Packit 1470ea
#. (itstool) path: section/p
Packit 1470ea
#: C/massif.page:175
Packit 1470ea
msgid ""
Packit 1470ea
"Secondly, <app>Massif</app> only takes into account the memory used by your own "
Packit 1470ea
"program. Resources like pixmaps are stored in the X server and aren't "
Packit 1470ea
"considered by <app>Massif</app>. In the <app>Swell Foop</app> example we have "
Packit 1470ea
"actually only moved the memory consumption from client-side pixbufs to server-"
Packit 1470ea
"side pixmaps. Even though we cheated there are performance gains. Keeping the "
Packit 1470ea
"image data in the X server makes the graphics routines quicker and removes a "
Packit 1470ea
"lot of inter-process communication. Also, the pixmaps will be stored in a "
Packit 1470ea
"native graphics format which is often more compact than the 32-bit RGBA format "
Packit 1470ea
"used by gdk_pixbuf. To measure the effect of pixmaps, and other X resources use "
Packit 1470ea
"the <link href=\"http://www.freedesktop.org/Software/xrestop\">xrestop</link> "
Packit 1470ea
"program."
Packit 1470ea
msgstr ""
Packit 1470ea
"Αφετέρου, το <app>Massif</app> λαμβάνει υπόψη μόνο τη μνήμη που χρησιμοποιείται "
Packit 1470ea
"από τα προγράμματα σας. Οι πόροι όπως τα pixmaps αποθηκεύονται στον διακομιστή "
Packit 1470ea
"X και δεν εξετάζονται από το <app>Massif</app>. Στο παράδειγμα με το <app>Swell "
Packit 1470ea
"Foop</app> στην πραγματικότητα έχουμε μετακινήσει την κατανάλωση μνήμης μόνο "
Packit 1470ea
"την pixbufs από την πλευρά του προγράμματος πελάτη στα pixmaps από την πλευρά "
Packit 1470ea
"του διακομιστή. Αν και κάναμε μία μικρή απάτη, υπάρχουν κέρδη στην απόδοση. Αν "
Packit 1470ea
"κρατήσουμε τα δεδομένα εικόνας του διακομιστή X καθιστά τις ρουτίνες γραφικής "
Packit 1470ea
"αναπαράστασης γρηγορότερες και αφαιρεί πολύ διεπεξεργαστική επικοινωνία. "
Packit 1470ea
"Επίσης, τα pixmaps θα αποθηκευτούν σε μία εγγενή μορφή γραφικών που είναι συχνά "
Packit 1470ea
"συμπαγέστερο από τη μορφή 32-δυαδικών RGBA που χρησιμοποιείται από το "
Packit 1470ea
"gdk_pixbuf. Για να μετρηθεί η επίδραση των pixmaps και άλλων πόρων του "
Packit 1470ea
"διακομιστή X χρησιμοποιήστε το πρόγραμμα 
Packit 1470ea
"org/Software/xrestop\">xrestop</link>."
Packit 1470ea
Packit 1470ea
#~ msgid "Optimizing GNOME Software"
Packit 1470ea
#~ msgstr "Βελτιστοποίηση  λογισμικού του GNOME"
Packit 1470ea
Packit 1470ea
#~ msgid "GNOME Documentation Project"
Packit 1470ea
#~ msgstr "Πρόγραμμα τεκμηρίωσης του GNOME"
Packit 1470ea
Packit 1470ea
#~ msgid "<year>2004-2005</year> <holder>Callum McKenzie</holder>"
Packit 1470ea
#~ msgstr "<year>2004-2005</year> <holder>Callum McKenzie</holder>"
Packit 1470ea
Packit 1470ea
#~ msgid "<year>2004-2005</year> <holder>Robert Love</holder>"
Packit 1470ea
#~ msgstr "<year>2004-2005</year> <holder>Robert Love</holder>"
Packit 1470ea
Packit 1470ea
#~ msgid "<firstname>Callum</firstname> <surname>McKenzie</surname>"
Packit 1470ea
#~ msgstr "<firstname>Callum</firstname> <surname>McKenzie</surname>"
Packit 1470ea
Packit 1470ea
#~ msgid "<firstname>Robert</firstname> <surname>Love</surname>"
Packit 1470ea
#~ msgstr "<firstname>Robert</firstname> <surname>Love</surname>"
Packit 1470ea
Packit 1470ea
#~ msgid "William Johnston"
Packit 1470ea
#~ msgstr "William Johnston"
Packit 1470ea
Packit 1470ea
#~ msgid "Intial conversion to docbook format."
Packit 1470ea
#~ msgstr "Μετατροπή από Intial στην μορφή docbook."
Packit 1470ea
Packit 1470ea
#~ msgid ""
Packit 1470ea
#~ "<revnumber>0.1</revnumber> <date>November 2007</date> <_:revdescription-1/>"
Packit 1470ea
#~ msgstr ""
Packit 1470ea
#~ "<revnumber>0.1</revnumber> <date>Νοέμβριος 2007</date> <_:revdescription-1/>"
Packit 1470ea
Packit 1470ea
#~ msgid "The Quick Guide to Optimizing GNOME Programs"
Packit 1470ea
#~ msgstr "Ένας γρήγορος οδηγός για τη βελτιστοποίηση των προγραμμάτων του GNOME"
Packit 1470ea
Packit 1470ea
#~ msgid "Callum"
Packit 1470ea
#~ msgstr "Callum"
Packit 1470ea
Packit 1470ea
#~ msgid "McKenzie"
Packit 1470ea
#~ msgstr "McKenzie"
Packit 1470ea
Packit 1470ea
#~ msgid "Robert"
Packit 1470ea
#~ msgstr "Robert"
Packit 1470ea
Packit 1470ea
#~ msgid "Love"
Packit 1470ea
#~ msgstr "Love"
Packit 1470ea
Packit 1470ea
#~ msgid "0.1"
Packit 1470ea
#~ msgstr "0.1"
Packit 1470ea
Packit 1470ea
#~ msgid "November 2007"
Packit 1470ea
#~ msgstr "Νοέμβριος 2007"