コード例 #1
0
 public void Serialize(FastEnumerable<LSAgent> selectedAgents)
 {
     Array.Clear(Data, 0, 64);
     Header = 0;
     selectedAgentLocalIDs.FastClear ();
     bufferAgents.FastClear ();
     selectedAgents.Enumerate (bufferAgents);
     for (int i = 0; i < bufferAgents.Count; i++) {
         SerializeAgent(bufferAgents[i]);
     }
 }
コード例 #2
0
 public void Serialize(FastEnumerable <LSAgent> selectedAgents)
 {
     Array.Clear(Data, 0, 64);
     Header = 0;
     selectedAgentLocalIDs.FastClear();
     bufferAgents.FastClear();
     selectedAgents.Enumerate(bufferAgents);
     for (int i = 0; i < bufferAgents.Count; i++)
     {
         SerializeAgent(bufferAgents[i]);
     }
 }
コード例 #3
0
ファイル: Program.cs プロジェクト: zyj0021/reactive
        static void Sync(int n)
        {
            Console.WriteLine("IEnumerable<T> and IFastEnumerable<T>");
            Console.WriteLine();

            var sw = new Stopwatch();

            var N = 10_000_000;

            var next = new Action <int>(_ => { });

            var slowRange = Enumerable.Range(0, N);
            var fastRange = FastEnumerable.Range(0, N);
            var brdgRange = slowRange.ToFastEnumerable();

            var slow = slowRange.Where(x => x % 2 == 0).Select(x => x + 1);
            var fast = fastRange.Where(x => x % 2 == 0).Select(x => x + 1);
            var brdg = brdgRange.Where(x => x % 2 == 0).Select(x => x + 1).ToEnumerable();

            Console.WriteLine("slow.Sum() = " + slow.Aggregate(0, (sum, x) => sum + x));
            Console.WriteLine("fast.Sum() = " + fast.Aggregate(0, (sum, x) => sum + x));
            Console.WriteLine("brdg.Sum() = " + brdg.Aggregate(0, (sum, x) => sum + x));
            Console.WriteLine();

            for (var i = 0; i < n; i++)
            {
                sw.Restart();
                {
                    slow.ForEach(next);
                }
                Console.WriteLine("SLOW " + sw.Elapsed);

                sw.Restart();
                {
                    fast.ForEach(next);
                }
                Console.WriteLine("FAST " + sw.Elapsed);

                sw.Restart();
                {
                    brdg.ForEach(next);
                }
                Console.WriteLine("BRDG " + sw.Elapsed);

                Console.WriteLine();
            }

            Console.WriteLine();
        }
コード例 #4
0
        public void Serialize(FastEnumerable <LSAgent> selectedAgents)
        {
            Data.FastClear();
            selectedAgentLocalIDs.FastClear();
            bufferAgents.FastClear();
            selectedAgents.Enumerate(bufferAgents);
            ushort highestID = 0;

            for (int i = 0; i < bufferAgents.Count; i++)
            {
                ushort id = bufferAgents[i].LocalID;
                if (id > highestID)
                {
                    highestID = id;
                }
            }
            int headerLength = (highestID + 1 - 1) / 8 + 1;

            Header = new BitArray(headerLength, false);
            for (int i = 0; i < bufferAgents.Count; i++)
            {
                SerializeAgent(bufferAgents[i]);
            }
        }
コード例 #5
0
 public Selection(FastEnumerable <RTSAgent> selectedAgents)
 {
     bufferAgents.FastClear();
     selectedAgents.Enumerate(bufferAgents);
     this.AddAgents(bufferAgents.ToArray());
 }
コード例 #6
0
 public Selection(FastEnumerable <LSAgent> selectedAgents)
 {
     Serialize(selectedAgents);
 }
コード例 #7
0
 public Selection(FastEnumerable<LSAgent> selectedAgents)
 {
     Serialize(selectedAgents);
 }