5 public ArrayCache(IEnumerable<int> bucketSizes,
float minCacheRatio1,
float minCacheTime1,
float minCacheRatio2,
float minCacheTime2) {
17 public T[]
Rent(
int capacity,
bool clearArray) {
23 if (bucket.Stack.Count > 0) {
24 T[] array = bucket.Stack.Pop();
26 Array.Clear(array, 0, array.Length);
34 array2 =
new T[bucket.Capacity];
38 array2 =
new T[capacity];
49 bucket.Stack.Push(array);
67 if ((num < m_minCacheRatio1 && Time.FrameStartTime - m_minCacheRatioLastTime1 >
m_minCacheDuration1)
68 || (num < m_minCacheRatio2 && Time.FrameStartTime - m_minCacheRatioLastTime2 >
m_minCacheDuration2)) {
76 for (
int i = 0; i <
m_buckets.Length; i++) {
86 for (
int i = 0; i < buckets.Length; i++) {
87 buckets[i].Stack.Clear();
static int Min(int x1, int x2)
static void QueueTimeDelayedExecution(double time, Action action)
static double FrameStartTime
Bucket GetBucket(int capacity)
double m_minCacheRatioLastTime2
float CalculateCacheRatio()
float m_minCacheDuration1
double m_minCacheRatioLastTime1
ArrayCache(IEnumerable< int > bucketSizes, float minCacheRatio1, float minCacheTime1, float minCacheRatio2, float minCacheTime2)
float m_minCacheDuration2
T[] Rent(int capacity, bool clearArray)