Example #1
0
        public async Task RunAsync()
        {
            var httpClient = new HttpClient();

            var timeStamp = Stopwatch.StartNew();

            var queries = await httpClient.GetStringAsync(_parameters.QueryUrl);

            var stream = await httpClient.GetStreamAsync(_parameters.SourceUrl);

            var queryLines = queries.Split('\n');

            using (var reader = new StreamReader(stream))
            {
                while (!reader.EndOfStream)
                {
                    var line = reader.ReadLine();
                    DictionaryBased2LineHandler.Handle(line, queryLines);
                }
            }

            timeStamp.Stop();

            Console.WriteLine($"Calculation time: {timeStamp.ElapsedMilliseconds}ms");
        }
Example #2
0
        internal async Task RunAsync()
        {
            var httpClient = new HttpClient();

            var timeStamp = Stopwatch.StartNew();

            var queries = await httpClient.GetStringAsync(_parameters.QueryUrl);

            var content = await httpClient.GetStringAsync(_parameters.SourceUrl);

            timeStamp.Stop();
            Console.WriteLine($"Download time: {timeStamp.ElapsedMilliseconds}ms");

            timeStamp.Restart();
            var queryLines = queries.Split('\n');
            var lines      = content.Split('\n');

            timeStamp.Stop();
            Console.WriteLine($"Split time: {timeStamp.ElapsedMilliseconds}ms");

            timeStamp.Restart();

            foreach (var line in lines)
            {
                DictionaryBased2LineHandler.Handle(line, queryLines);
            }

            timeStamp.Stop();

            Console.WriteLine($"Calculation time: {timeStamp.ElapsedMilliseconds}ms");
        }
Example #3
0
 public void DictionaryBased2LineHandlerTest()
 {
     foreach (var line in _lines)
     {
         DictionaryBased2LineHandler.Handle(line, _queries);
     }
 }
Example #4
0
 private Task[] PrepareConsumers(string[] queryLines)
 {
     return(Enumerable.Range(1, MaxThreads).Select(w => Task.Factory.StartNew(x =>
     {
         foreach (var block in _queue.GetConsumingEnumerable())
         {
             for (var k = 0; k < block.Counter; k++)
             {
                 DictionaryBased2LineHandler.Handle(block.Buffer[k], queryLines);
             }
         }
     }, CancellationToken.None, TaskCreationOptions.LongRunning)).ToArray());
 }