• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

zestedesavoir / zds-site / 9228 / 1
89%
dev: 89%

Build:
DEFAULT BRANCH: dev
Ran 29 Oct 2017 07:33PM UTC
Files 200
Run time 6s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

29 Oct 2017 07:24PM UTC coverage: 55.815% (+0.02%) from 55.795%
ZDS_TEST_JOB="zds.tutorialv2"

push

travis-ci

artragis
Met un cache d’une heure sur get_git_version()

Depuis la version 2 de GitPython, à chaque fois qu’un objet Repo est
détruit par le ramasse-miettes, deux nouveaux ramassages de miettes
sont forcés :

https://github.com/gitpython-developers/GitPython/blob/2.1.7/git/repo/base.py#L203-L214

Étant donné que la fonction `get_git_version()` est appellée à chaque
requête une fois (pour le numéro de version dans le pied de page) et
que chaque appel à `get_git_version()` crée un objet `Repo` de
GitPython, il y a de quoi s’inquiéter d’avoir des problèmes de GC qui
se déclenche trop fréquemment et que ça dégrade les performances (en
tout cas, ça avait l’air d’être le cas chez moi).

J’ai donc mis un cache tout simple d’une heure sur la fonction
`get_git_version()`. Ça a l’inconvénient d’avoir des informations de
version erronées pendant jusqu’à une heure, mais bon.

Aussi, je n’ai pas d’instance de memcached chez moi et je ne pense
vraiment pas que se soit nécéssaire pendant le développement. J’ai
donc modifié les réglages pour utiliser le backend de cache de Django
écrit en Python (à éviter en production car pas très économique en
RAM).

=== Contrôle qualité ================================================

Commencez par logger tous les lancements du GC en mettant ça quelque
part dans le code :

```python
import gc
gc.set_debug(gc.DEBUG_STATS)
```

Désactivez les lancements automatiques du GC en rajoutant ça juste en
dessous :

```
gc.set_threshold(0)
```

Maintenant, seul les lancements forcés du GC (avec `gc.collect()`)
seront affichés sur la console. Avant ce commit, vous en verrez
exactement deux par requête (qui fait un rendu des templates, les
requêtes vers l’API ne comptent pas) à cause de `Repo.__del__`. Avec
ce commit, vous n’en verrez aucun.

1679 of 3894 branches covered (43.12%)

9052 of 16218 relevant lines covered (55.81%)

0.56 hits per line

Source Files on job 9228.1 (ZDS_TEST_JOB="zds.tutorialv2")
  • Tree
  • List 0
  • Changed 2
  • Source Changed 2
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Build 9228
  • Travis Job 9228.1
  • 56c3126c on github
  • Prev Job for ZDS_TEST_JOB="zds.tutorialv2" on dev (#9213.1)
  • Next Job for ZDS_TEST_JOB="zds.tutorialv2" on dev (#9245.1)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc