Skip to content

High performance setup el GR

ArchiBot edited this page Jul 8, 2025 · 23 revisions

Ρύθμιση υψηλής απόδοσης

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


Το ASF προσπαθεί ήδη να προτιμά την απόδοση όταν πρόκειται για γενική ισορροπημένη ρύθμιση, ως εκ τούτου, δεν υπάρχουν πολλά που μπορείτε να κάνετε για να αυξήσει περαιτέρω την απόδοσή της, αν και δεν είστε εντελώς από τις επιλογές, είτε. Ωστόσο, λάβετε υπόψη ότι αυτές οι επιλογές δεν είναι ενεργοποιημένες από προεπιλογή, whichοι οποίες meansπου σημαίνει that they're not good enough to consider them balanced for majority of usagesχρήσεις, γι 'αυτό θα πρέπει να αποφασίσετε εάν η αύξηση της μνήμης που έφερε από αυτούς είναι αποδεκτή για σας.


Ρύθμιση χρόνου εκτέλεσης (προηγμένη)

Παρακάτω τα κόλπα περιλαμβάνουν σοβαρή αύξηση της μνήμης και θα πρέπει, επομένως, να χρησιμοποιείται με προσοχή.

Ο συνιστώμενος τρόπος εφαρμογής αυτών των ρυθμίσεων είναι μέσω των περιβαλλοντικών ιδιοτήτων DOTNET_. Φυσικά, θα μπορούσατε επίσης να χρησιμοποιήσετε άλλες μεθόδους, π.χ. runtimeconfig.json, αλλά μερικές ρυθμίσεις είναι αδύνατο να οριστούν με αυτόν τον τρόπο, και επιπλέον το ASF θα αντικαταστήσει το προσαρμοσμένο runtimeconfig.json με το δικό του στην επόμενη ενημέρωση, επομένως σας συνιστούμε ιδιότητες περιβάλλοντος που μπορείτε να ρυθμίσετε εύκολα πριν από την έναρξη της διαδικασίας.

.NET runtime σας επιτρέπει να tweak συλλέκτης απορριμμάτων με πολλούς τρόπους, αποτελεσματικά βελτιστοποιώντας τη διαδικασία GC σύμφωνα με τις ανάγκες σας. Έχουμε τεκμηριώσει κάτω από ιδιότητες που είναι ιδιαίτερα σημαντικές κατά τη γνώμη μας.

Ρυθμίζει αν η εφαρμογή χρησιμοποιεί τη συλλογή απορριμμάτων σταθμού εργασίας ή τη συλλογή απορριμμάτων διακομιστή.

Μπορείτε να διαβάσετε το ακριβές συγκεκριμένο του διακομιστή GC στο βασικά στοιχεία της συλλογής σκουπιδιών.

Το ASF χρησιμοποιεί συλλογή απορριμμάτων σταθμού εργασίας από προεπιλογή. Αυτό οφείλεται κυρίως στην καλή ισορροπία μεταξύ της χρήσης μνήμης και της απόδοσης, η οποία είναι περισσότερο από αρκετό για λίγα μόνο bots, όπως συνήθως ένα ενιαίο παράλληλο νήμα φόντου GC είναι αρκετά γρήγορο για να χειριστεί ολόκληρη τη μνήμη που κατανέμεται από ASF.

Ωστόσο, σήμερα έχουμε πολλούς πυρήνες CPU που ASF μπορεί να ωφεληθεί σημαντικά, έχοντας ένα ειδικό νήμα GC ανά κάθε CPU vCore που είναι διαθέσιμο. Αυτό μπορεί να βελτιώσει σημαντικά την απόδοση κατά τη διάρκεια βαριών εργασιών ASF όπως η ανάλυση σελίδων εμβλημάτων ή η απογραφή, δεδομένου ότι κάθε CPU vCore μπορεί να βοηθήσει, σε αντίθεση με μόλις 2 (κύρια και GC). Ο διακομιστής GC συνιστάται για μηχανές με 3 πυρήνες CPU και περισσότερο, σταθμός εργασίας GC αναγκάζεται αυτόματα εάν το μηχάνημά σας έχει μόλις 1 CPU vCore, και αν έχετε ακριβώς 2 τότε μπορείτε να εξετάσετε την προσπάθεια και των δύο (τα αποτελέσματα μπορεί να ποικίλλουν).

Ο ίδιος ο διακομιστής GC δεν έχει ως αποτέλεσμα μια πολύ τεράστια αύξηση μνήμης με το να είναι μόνο ενεργός, αλλά έχει πολύ μεγαλύτερα μεγέθη γενιάς, και ως εκ τούτου είναι πολύ πιο τεμπέληδες όταν πρόκειται να δώσει μνήμη πίσω στο λειτουργικό σύστημα. Μπορείτε να βρεθείτε σε ένα γλυκό σημείο όπου ο διακομιστής GC αυξάνει σημαντικά την απόδοση και θα θέλατε να συνεχίσετε να το χρησιμοποιείτε. αλλά ταυτόχρονα δεν μπορείτε να αντέξετε οικονομικά αυτή την τεράστια αύξηση της μνήμης που βγαίνει από τη χρήση της. Ευτυχώς για σας, υπάρχει μια «καλύτερη από τους δύο κόσμους» σκηνή, με τη χρήση διακομιστή GC με GCLatencyLevel ιδιότητα ρύθμισης παραμέτρων οριστεί σε 0, που θα επιτρέψει ακόμα διακομιστή GC, αλλά να περιορίσει τα μεγέθη γενιάς και να επικεντρωθεί περισσότερο στη μνήμη. Εναλλακτικά, μπορείτε επίσης να πειραματιστείτε με μια άλλη ιδιότητα, **GCHeapHardLimitPercent**ή ακόμα και με τις δύο ταυτόχρονα.

Ωστόσο, αν η μνήμη δεν είναι ένα πρόβλημα για σας (όπως GC εξακολουθεί να λαμβάνει υπόψη τη διαθέσιμη μνήμη σας και να τροποποιήσει), είναι μια πολύ καλύτερη ιδέα να μην αλλάξετε αυτές τις ιδιότητες καθόλου, επιτυγχάνοντας ανώτερη απόδοση στο αποτέλεσμα.


Μπορείτε να ενεργοποιήσετε τις επιλεγμένες ιδιότητες ορίζοντας τις κατάλληλες μεταβλητές περιβάλλοντος. Για παράδειγμα, στα Linux (shell):

εξαγωγή DOTNET_gcServer=1

./ArchiSteamFarm # Για συγκεκριμένο OS-build
./ArchiSteamFarm.sh # Για γενική κατασκευή

Ή στα Windows (powershell):

$Env:DOTNET_gcServer=1

.\ArchiSteamFarm.exe # Για OS-συγκεκριμένο build
.\ArchiSteamFarm.cmd # Για γενική κατασκευή

Προτεινόμενη βελτιστοποίηση

  • Βεβαιωθείτε ότι χρησιμοποιείτε την προεπιλεγμένη τιμή OptimizationMode η οποία είναι MaxPerformance. Αυτή είναι μακράν η πιο σημαντική ρύθμιση, καθώς η χρήση της αξίας MinMemoryUsage έχει δραματικά αποτελέσματα στην απόδοση.
  • Ενεργοποίηση GC διακομιστή. GC διακομιστή μπορεί να θεωρηθεί αμέσως ως ενεργός από σημαντική αύξηση της μνήμης σε σύγκριση με το σταθμό εργασίας GC. Αυτό θα δημιουργήσει ένα νήμα GC για κάθε νήμα CPU που έχει το μηχάνημά σας προκειμένου να εκτελέσει λειτουργίες GC παράλληλα με τη μέγιστη ταχύτητα.
  • Εάν δεν μπορείτε να αντέξετε οικονομικά την αύξηση της μνήμης λόγω του διακομιστή GC, εξετάσει το tweaking GCLatencyLevel και/ή GCHeapHardLimitPercent για την επίτευξη "του καλύτερου και των δύο κόσμων". Ωστόσο, αν η μνήμη σας μπορεί να την αντέξει, τότε είναι καλύτερο να το κρατήσετε στην προεπιλογή - ο διακομιστής GC ήδη αλλάζει κατά τη διάρκεια του χρόνου εκτέλεσης και είναι αρκετά έξυπνος για να χρησιμοποιήσει λιγότερη μνήμη όταν το λειτουργικό σας σύστημα θα το χρειαστεί.

Εφαρμόζοντας τις παραπάνω συστάσεις σας επιτρέπει να έχετε ανώτερη απόδοση ASF που θα πρέπει να ψήνονται γρήγορα ακόμη και με εκατοντάδες ή χιλιάδες ενεργοποιημένα bots. Ο επεξεργαστής δεν πρέπει πλέον να είναι μια συμφόρηση, καθώς το ASF είναι σε θέση να χρησιμοποιήσει ολόκληρη την ισχύ του επεξεργαστή σας όταν χρειάζεται, κόβοντας τον απαιτούμενο χρόνο για να γυμνώσει το ελάχιστο. Το επόμενο βήμα θα ήταν αναβαθμίσεις CPU και RAM, ή διαχωρισμός φόρτου εργασίας σε διάφορους διακομιστές και ASF περιπτώσεις.

Clone this wiki locally