Γρήγορη αναφορά

Συνοπτικός οδηγός συμβουλών και κόλπων Rails

Ένας γρήγορος οδηγός αναφοράς για συμβουλές απόδοσης Rails, συντομεύσεις κονσόλας, βελτιστοποιήσεις ερωτημάτων και παραγωγικότητα.

· Δημοσιεύτηκε

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

Βελτιστοποιήσεις ερωτημάτων & μνήμης

1. pluck έναντι map

Το pluck εκτελεί απευθείας ερώτημα στις στήλες της βάσης χωρίς να δημιουργεί αντικείμενα ActiveRecord στη μνήμη:

# ΑΡΓΟ: Δημιουργεί 10.000 αντικείμενα User στη μνήμη
User.all.map(&:email)

# ΓΡΗΓΟΡΟ: Επιλέγει μόνο τη στήλη email ως πίνακα συμβολοσειρών
User.pluck(:email)

2. Μαζική επεξεργασία με find_each

Αποφύγετε τη φόρτωση τεράστιων πινάκων στη μνήμη ταυτόχρονα:

# Φόρτωση σε παρτίδες των 1.000 εγγραφών
User.find_each(batch_size: 1000) do |user|
  user.sync_with_crm
end

Συντομεύσεις παραγωγικότητας κονσόλας

# Πρόσβαση στο αποτέλεσμα της τελευταίας έκφρασης
user = User.find(1)
_ # Επιστρέφει το αντικείμενο user

# Μέτρηση χρόνου εκτέλεσης στην κονσόλα
Benchmark.ms { 1000.times { User.count } }

# Επαναφόρτωση κώδικα Rails χωρίς επανεκκίνηση της κονσόλας
reload!

Ενημέρωση χρονικών σημάνσεων (touch)

Ενημέρωση του updated_at του γονικού μοντέλου όταν αλλάζει ένας συσχετισμένος απόγονος:

class Comment < ApplicationRecord
  belongs_to :article, touch: true
end

Πηγές & Αναφορές

Σχετικά θέματα