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"); }
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"); }
public void DictionaryBased2LineHandlerTest() { foreach (var line in _lines) { DictionaryBased2LineHandler.Handle(line, _queries); } }
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()); }