Skip to content

Commit c7e5d2e

Browse files
committed
Conflicts fixed on "Garbage collection" page in french language
1 parent 8a8c30a commit c7e5d2e

File tree

1 file changed

+5
-41
lines changed
  • 1-js/04-object-basics/03-garbage-collection

1 file changed

+5
-41
lines changed

1-js/04-object-basics/03-garbage-collection/article.md

Lines changed: 5 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -74,11 +74,7 @@ Maintenant si nous faisons la même chose :
7474
user = null;
7575
```
7676

77-
<<<<<<< HEAD
7877
… Ensuite, l’objet est toujours accessible via la variable globale `admin`, il est donc encore en mémoire. Si nous écrasons également `admin`, alors il sera supprimé.
79-
=======
80-
...Then the object is still reachable via `admin` global variable, so it must stay in memory. If we overwrite `admin` too, then it can be removed.
81-
>>>>>>> bf7d8bb1af3b416d393af1c15b03cb1352da1f9c
8278

8379
## Objets liés
8480

@@ -173,19 +169,11 @@ La première étape marque les racines :
173169

174170
![](garbage-collection-2.svg)
175171

176-
<<<<<<< HEAD
177-
Ensuite, leurs références sont marquées :
172+
Ensuite, nous suivons leurs références et marquons les objets référencés :
178173

179174
![](garbage-collection-3.svg)
180175

181-
… Et leurs références, autant que possible :
182-
=======
183-
Then we follow their references and mark referenced objects:
184-
185-
![](garbage-collection-3.svg)
186-
187-
...And continue to follow further references, while possible:
188-
>>>>>>> bf7d8bb1af3b416d393af1c15b03cb1352da1f9c
176+
...Et continuons à suivre d'autres références, dans la mesure du possible :
189177

190178
![](garbage-collection-4.svg)
191179

@@ -195,54 +183,30 @@ Désormais, les objets qui n'ont pas pu être visités sont considérés comme i
195183

196184
Nous pouvons également imaginer que le processus consiste à renverser un énorme seau de peinture à la racine, qui traverse toutes les références et marque tous les objets accessibles. Les non marqués sont ensuite supprimés.
197185

198-
<<<<<<< HEAD
199186
C'est le concept de la façon dont la garbage collection fonctionne. Les moteurs JavaScript appliquent de nombreuses optimisations pour accélérer l’exécution et ne pas affecter l’exécution.
200-
=======
201-
That's the concept of how garbage collection works. JavaScript engines apply many optimizations to make it run faster and not introduce any delays into the code execution.
202-
>>>>>>> bf7d8bb1af3b416d393af1c15b03cb1352da1f9c
203187

204188
Certaines des optimisations :
205189

206-
<<<<<<< HEAD
207-
- **Collection générationnelle** -- les objets sont divisés en deux ensembles : les "nouveaux" et les "anciens". De nombreux objets apparaissent, font leur travail et meurent rapidement, ils peuvent être nettoyés de manière agressive. Ceux qui survivent assez longtemps deviennent "vieux" et sont examinés moins souvent.
208-
- **Collection incrémentale** -- s'il y a beaucoup d'objets et que nous essayons de circuler et de marquer le jeu d'objets entier en même temps, cela peut prendre un certain temps et introduire des retards visibles dans l'exécution. Le moteur essaie donc de scinder le garbage collection (ramassage de miettes) en morceaux. Ensuite, ces parties sont exécutées une par une, séparément. Cela nécessite une comptabilité supplémentaire entre elles pour suivre les changements, mais nous avons beaucoup de petits retards au lieu d'un gros.
209-
- **Collection par inactivité** -- le garbage collector tente de s'exécuter uniquement lorsque le processeur (CPU) est inactif, afin de réduire les conséquences sur l'exécution.
210-
=======
211-
- **Generational collection** -- objects are split into two sets: "new ones" and "old ones". In typical code, many objects have a short life span: they appear, do their job and die fast, so it makes sense to track new objects and clear the memory from them if that's the case. Those that survive for long enough, become "old" and are examined less often.
212-
- **Incremental collection** -- if there are many objects, and we try to walk and mark the whole object set at once, it may take some time and introduce visible delays in the execution. So the engine splits the whole set of existing objects into multiple parts. And then clear these parts one after another. There are many small garbage collections instead of a total one. That requires some extra bookkeeping between them to track changes, but we get many tiny delays instead of a big one.
213-
- **Idle-time collection** -- the garbage collector tries to run only while the CPU is idle, to reduce the possible effect on the execution.
214-
>>>>>>> bf7d8bb1af3b416d393af1c15b03cb1352da1f9c
190+
- **Collecte générationnelle** -- les objets sont divisés en deux ensembles : "nouveaux" et "anciens". Dans un code typique, de nombreux objets ont une courte durée de vie : ils apparaissent, font leur travail et meurent rapidement, il est donc logique de suivre les nouveaux objets et d'en effacer la mémoire si c'est le cas. Ceux qui survivent assez longtemps deviennent "vieux" et sont examinés moins souvent.
191+
- **Collecte incrémentielle** -- s'il y a beaucoup d'objets et que nous essayons de parcourir et de marquer l'ensemble d'objets en une seule fois, cela peut prendre un certain temps et introduire des retards visibles dans l'exécution. Ainsi, le moteur divise l'ensemble des objets existants en plusieurs parties. Et puis nettoie ces parties les unes après les autres. Il existe de nombreux petits garbage collections au lieu d'un total. Cela nécessite une comptabilité supplémentaire entre eux pour suivre les changements, mais nous obtenons de nombreux petits retards au lieu d'un gros.
192+
- **Collecte en cas d'inactivité** -- le garbage collector essaie de s'exécuter uniquement lorsque le processeur est inactif, afin de réduire l'effet possible sur l'exécution.
215193

216194
Il existe d'autres optimisations et variantes d'algorithmes de récupération de place. Même si je souhaite les décrire ici, je dois m'abstenir, car différents moteurs implémentent différentes techniques et ajustements. Et, ce qui est encore plus important, les choses changent à mesure que les moteurs se développent. Donc aller plus loin de manière plus poussée, sans réel besoin, n’en vaut probablement pas la peine. À moins, bien sûr, que ce soit une question qui vous intéresse vraiment, vous trouverez quelques liens pour vous ci-dessous.
217195

218196
## Résumé
219197

220198
Les principales choses à savoir :
221199

222-
<<<<<<< HEAD
223200
- La garbage collection est effectuée automatiquement. Nous ne pouvons ni forcer ni empêcher cela.
224201
- Les objets sont conservés en mémoire tant qu'ils sont accessibles.
225202
- Être référencé n'est pas la même chose qu'être accessible (depuis une racine): un groupe d'objets liés entre eux peut devenir inaccessible dans son ensemble.
226-
=======
227-
- Garbage collection is performed automatically. We cannot force or prevent it.
228-
- Objects are retained in memory while they are reachable.
229-
- Being referenced is not the same as being reachable (from a root): a pack of interlinked objects can become unreachable as a whole, as we've seen in the example above.
230-
>>>>>>> bf7d8bb1af3b416d393af1c15b03cb1352da1f9c
231203

232204
Les moteurs modernes implémentent des algorithmes avancés de récupération de place.
233205

234206
Un livre général intitulé "The Garbage Collection Handbook: The Art of Automatic Memory Management" (R. Jones et al.) En parle.
235207

236-
<<<<<<< HEAD
237208
Si vous êtes familiarisé avec la programmation de bas niveau, les informations plus détaillées sur le garbage collecor V8 se trouvent dans l'article [A tour of V8: Garbage Collection](http://jayconrod.com/posts/55/a-tour-of-v8-garbage-collection).
238209

239210
[V8 blog](https://v8.dev) publie également des articles sur les modifications de la gestion de la mémoire de temps à autre. Naturellement, pour apprendre la récupération de place, vous feriez mieux de vous préparer en vous renseignant sur les éléments internes de V8 en général et en lisant le blog de [Vyacheslav Egorov](http://mrale.ph) qui a travaillé comme l'un des ingénieurs V8. Je dis: «V8», car c'est le plus couvert d'articles sur Internet. Pour d'autres moteurs, de nombreuses approches sont similaires, mais la récupération de place diffère à de nombreux égards.
240211

241212
Une connaissance approfondie des moteurs est utile lorsque vous avez besoin d'optimisations de bas niveau. Il serait sage de planifier cela comme prochaine étape après la connaissance du langage.
242-
=======
243-
If you are familiar with low-level programming, more detailed information about V8's garbage collector is in the article [A tour of V8: Garbage Collection](http://jayconrod.com/posts/55/a-tour-of-v8-garbage-collection).
244-
245-
The [V8 blog](https://v8.dev/) also publishes articles about changes in memory management from time to time. Naturally, to learn more about garbage collection, you'd better prepare by learning about V8 internals in general and read the blog of [Vyacheslav Egorov](http://mrale.ph) who worked as one of the V8 engineers. I'm saying: "V8", because it is best covered by articles on the internet. For other engines, many approaches are similar, but garbage collection differs in many aspects.
246-
247-
In-depth knowledge of engines is good when you need low-level optimizations. It would be wise to plan that as the next step after you're familiar with the language.
248-
>>>>>>> bf7d8bb1af3b416d393af1c15b03cb1352da1f9c

0 commit comments

Comments
 (0)