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.
JP
TAG [Garbage Collector]
[SCRIPT] Optimiser le Garbage Collector d'Unity.
Re: Optimiser le Garbage Collector d'Unity.
A suivre à partir d'ici. Vous découvrirez aussi comment utiliser du code "Unsafe" dans Unity.
- artemisart
- Messages : 1893
- Inscription : 21 Juin 2011 19:51
- Localisation : Centre
- Contact :
Re: Optimiser le Garbage Collector d'Unity.
Comprendre le GC en bd (très intéressant !).
http://assets.red-gate.com/products/dot ... Poster.pdf
http://assets.red-gate.com/products/dot ... Poster.pdf
Re: Optimiser le Garbage Collector d'Unity.
En effet, excellente cette BD, à tous les points de vueartemisart a écrit :Comprendre le GC en bd (très intéressant !).
http://assets.red-gate.com/products/dot ... Poster.pdf
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
Re: [SCRIPT] Optimiser le Garbage Collector d'Unity.
Pour ceux qui seraient intéressé, PoolManager est la promo du jour, prix pour 24 heures à 8.55€ TTC
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
Re: [SCRIPT] Optimiser le Garbage Collector d'Unity.
Y a pas d inspector , mais ca pool tout autant
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);
}
}
Re: [SCRIPT] Optimiser le Garbage Collector d'Unity.
Et compatible PlayMaker pour ceux que ça intéresse !Max a écrit :Pour ceux qui seraient intéressé, PoolManager est la promo du jour, prix pour 24 heures à 8.55€ TTC