Esempio n. 1
0
        public void ParallelSearch()
        {
            LinearHashTable <int, string> hashTable = new LinearHashTable <int, string>();

            for (int i = 0; i < DataAmount; i++)
            {
                string randomString = Guid.NewGuid().ToString("n").Substring(0, DataLength);
                hashTable.Add(i, randomString);
            }
            int cpuCount = 8;

            Task <int>[] tasks     = new Task <int> [cpuCount];
            Stopwatch    stopWatch = new Stopwatch();

            stopWatch.Start();
            for (int j = 0; j < cpuCount; j++)
            {
                tasks[j] = Task <int> .Factory.StartNew(
                    (object p) =>
                {
                    int count = 0;
                    for (int i = (int)p; i < DataAmount; i += cpuCount)
                    {
                        string val = string.Empty;
                        if (hashTable[i] != null)
                        {
                            count++;
                        }
                    }
                    return(count);
                }, j);
            }
            int total = 0;

            for (int i = 0; i < cpuCount; i++)
            {
                total += tasks[i].Result;
            }
            stopWatch.Stop();
            Console.WriteLine("islygiagretintas. Elementu sk: {0} Laikas: {1}", DataAmount, stopWatch.ElapsedTicks);
        }
Esempio n. 2
0
        public void SequentialSearch()
        {
            LinearHashTable <int, string> hashTable = new LinearHashTable <int, string>();

            for (int i = 0; i < DataAmount; i++)
            {
                string randomString = Guid.NewGuid().ToString("n").Substring(0, DataLength);
                hashTable.Add(i, randomString);
            }
            int       count     = 0;
            Stopwatch stopWatch = new Stopwatch();

            stopWatch.Start();
            for (int i = 0; i < DataLength; i++)
            {
                string value = string.Empty;
                if (hashTable[i] != null)
                {
                    count++;
                }
            }
            stopWatch.Stop();
            Console.WriteLine("neislygiagretintas. Elementu sk: {0} Laikas: {1}", DataAmount, stopWatch.ElapsedTicks);
        }