Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Chapter show pages allocate ~21k+ objects per render for large chapters (18% of app allocations)

Fermée
#2,952 0 commentaires 0 réactions 1 personne assignée Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
55/100
Type d'issue
Refactorisation
Clarté
Plutôt claire
Activité
Active
Stack technique
rails, ruby
Domaine
backend, performance

Piste de recherche

Start with ChapterController#show and re-measure current 200 responses in the allocations panel or Codebar requests dashboard. Compare the eager-load sets and the shared/sponsors, members/organisers_grid, and shared/newsletter partials, noting that EventCardComponent already fragment-caches. Done means materially lower payload.allocations for 200 responses with subscription forms unchanged for logged-in members.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

performance

Issue 2952: Chapter show pages allocate ~21k+ objects per render for large chapters (18% of app allocations)

Summary

ChapterController#show successful renders cost p50 20,880 allocations, p95 70,806 (max 438k) with 15-20 queries per request — 131.7M allocations (18% of app total) over the last 7 days from 4,308 renders. Large-chapter pages (London-style: many upcoming workshops/events) rebuild all public content per view. The 404-probe tail is already handled (#2891/#2907) and is out of scope here: ~1% of allocations.

Measured

7-day window 2026-09-21..27 (canonical logs): 131.7M allocations from 4,308 x 200s; p50 20,880, p95 70,806, max 437,968; 15 queries median, 20 at p95; view p50 11ms. Cost is driven by the controller's eager_load sets (sponsors, organisers, permissions, workshop_host for workshops; venue, sponsors, sponsorships, permissions, organisers for events) plus per-render partials (shared/sponsors, members/organisers_grid, shared/newsletter). Re-measure from current logs or the Codebar requests dashboard (allocations panel) before starting.

The page is public and mostly static. EventCardComponent already fragment-caches itself (used for the event cards); the sponsors and organisers sections do not.

Suggested directions

  1. HTTP caching for anonymous GETs — fresh_when keyed on [chapter.cache_key_with_version, latest workshop/event cache_key], gated on !logged_in? (the subscriptions partial is per-user).
  2. Fragment-cache the sponsors and organisers sections on the chapter cache key.
  3. Review the double eager-load sets — up to 20 queries on a cache-cold render suggests some loads are unused by the rendered page.

Verify

payload.allocations p50 for ChapterController#show (200s) drops materially on the allocations panel; no regression for logged-in members (subscription form renders as before).

Related: #2891, #2887, #2888 (same measurement method)

Langage dominant
Ruby
Étoiles
104
Forks
205
Merge moyen
1 j 2 h
PR mergées (30 j)
77

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de codebar/planner

Toutes les issues de codebar/planner

Issues similaires

Plus d'issues Ruby

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.