[SCRIPT] Optimiser le Garbage Collector d'Unity.

Présentation des outils annexes/externes à Unity.
Avatar de l’utilisateur
ZJP
Messages : 5748
Inscription : 15 Déc 2009 06:00

[SCRIPT] Optimiser le Garbage Collector d'Unity.

Message par ZJP » 22 Fév 2013 18:21

Salut,

Une des "plaies" récurrentes d'Unity est son Garbage Collector.
Parmi les solutions possibles, figure le Pooling. Kézako?

Simplement la possibilité de ré-utiliser (recycler) les GameObjects afin d'éviter le cycle chronophage de création (Instanciate) - destruction. Opérations vous vous en doutez, très pénalisantes pour le GC.

Ici, une compilation de liens (à compléter) qui traite du sujet, ou apportent une solution.

Pooling ( gratuit )

PoolManager ( $29.95 )

Pooling Manager ( gratuit )

Easy Objects Pool ( 2$ )

GameObjectPool ( Gratuit )

Sujet sur le forum officiel

Question sur Unity Answers

Documentation d'Unity.

Sur l'Asset Store

SmartPool ( 10$ )

Spawner - Free ( Gratuit )

Spawner - Pro ( 20$ )

Spawn Controller ( 15$ )

Ultimate Collections ( 20$ )

Generic Object Recycler ( 25$ )

Flexible Object Pool (10$)

De plus, je vous recommande la lecture de ce sujet ( Garbage Collection, Allocations, and Third Party Assets in the Asset Store ) très instructif, qui contrairement au titre ne parle pas uniquement de l'Asset Store, bien qu'il est été initié à la base pour critiquer le manque d'optimisation de certains produits y figurant. :mrgreen:


JP

TAG [Garbage Collector]

Avatar de l’utilisateur
ZJP
Messages : 5748
Inscription : 15 Déc 2009 06:00

Re: Optimiser le Garbage Collector d'Unity.

Message par ZJP » 13 Août 2013 19:30

A suivre à partir d'ici. Vous découvrirez aussi comment utiliser du code "Unsafe" dans Unity. 8-)


Avatar de l’utilisateur
Max
Messages : 8773
Inscription : 30 Juil 2011 13:57
Contact :

Re: Optimiser le Garbage Collector d'Unity.

Message par Max » 13 Août 2013 20:08

artemisart a écrit :Comprendre le GC en bd (très intéressant !).
http://assets.red-gate.com/products/dot ... Poster.pdf
En effet, excellente cette BD, à tous les points de vue :mrgreen:
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Avatar de l’utilisateur
Max
Messages : 8773
Inscription : 30 Juil 2011 13:57
Contact :

Re: [SCRIPT] Optimiser le Garbage Collector d'Unity.

Message par Max » 29 Oct 2014 18:51

Pour ceux qui seraient intéressé, PoolManager est la promo du jour, prix pour 24 heures à 8.55€ TTC
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Avatar de l’utilisateur
giyomuSan
Messages : 1799
Inscription : 09 Déc 2009 14:52
Localisation : Japon

Re: [SCRIPT] Optimiser le Garbage Collector d'Unity.

Message par giyomuSan » 30 Oct 2014 11:14

Y a pas d inspector , mais ca pool tout autant :mrgreen:

Code : Tout sélectionner

using System;
using System.Collections.Generic;

public class ObjectPoolGeneric<T>
{
  Stack<T> store = new Stack<T>();

  public int MaxStored;
  public Func<T> CreateLogic;
  public Func<T, T> SaveLogic;
  public Action<T> DestroyLogic;

  public T Get()
  {
    if (store.Count > 0) return store.Pop();
    else if (CreateLogic != null) return CreateLogic();
    return default(T);
  }

  public void Save(T item)
  {
    if (store.Count < MaxStored)
    {
      if (SaveLogic != null) item = SaveLogic(item);
      store.Push(item);
    }
    else if (DestroyLogic != null) DestroyLogic(item);
  }
}

Avatar de l’utilisateur
Thyriax
Messages : 221
Inscription : 09 Mars 2011 11:57
Contact :

Re: [SCRIPT] Optimiser le Garbage Collector d'Unity.

Message par Thyriax » 30 Oct 2014 11:36

Max a écrit :Pour ceux qui seraient intéressé, PoolManager est la promo du jour, prix pour 24 heures à 8.55€ TTC
Et compatible PlayMaker pour ceux que ça intéresse ! ;)

Répondre

Revenir vers « Les outils externes »