public void UnsafeHashMap_Performance_GetKeyArray([Values(10, 100, 1000, 10000, 100000, 1000000, 2500000, 10000000)] int capacity)
    {
        using (var container = new UnsafeHashMap <int, int>(capacity, Allocator.Persistent))
        {
            container.Add(1, 1);

            Measure.Method(() =>
            {
                var keys = container.GetKeyArray(Allocator.Persistent);
                keys.Dispose();
            })
            .WarmupCount(10)
            .MeasurementCount(10)
            .Run();
        }
    }
Ejemplo n.º 2
0
        /**
         * Serializes an object along with all of its fields back into JSON format.
         */
        void SerializeObject(ref UnsafeHashMap <FixedString128, JsonKeyHandle> objMap, ref HeapString buffer)
        {
            buffer.Append((FixedString32)"{");

            // print out fields in alphabetical order
            var keyList = objMap.GetKeyArray(Allocator.Temp);

            keyList.Sort();

            for (int i = 0; i < keyList.Length; i++)
            {
                buffer.AppendFormat((FixedString32)"\"{0}\": ", keyList[i]);
                SerializeValueView(objMap[keyList[i]], ref buffer);
                if (i < keyList.Length - 1)
                {
                    buffer.Append((FixedString32)", ");
                }
            }

            buffer.Append((FixedString32)"}");
        }