Skip to content

Commit f0a9942

Browse files
committed
Optimize Measurement
1 parent 1496667 commit f0a9942

File tree

3 files changed

+19
-13
lines changed

3 files changed

+19
-13
lines changed

DnsCrypt.Measurement/DnsCrypt.Measurement.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
<ItemGroup>
2020
<PackageReference Include="DNS" Version="3.0.0" />
21-
<PackageReference Include="NSec.Cryptography" Version="18.1.0-alpha-190337" />
21+
<PackageReference Include="NSec.Cryptography" Version="18.2.0-preview1" />
2222
</ItemGroup>
2323

2424
<ItemGroup>

Measurement/Measurement.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<OutputType>Exe</OutputType>
55
<TargetFramework>netcoreapp2.0</TargetFramework>
66
<RuntimeIdentifiers>win-x64;osx-x64;linux-x64</RuntimeIdentifiers>
7-
<Version>0.1.0</Version>
7+
<Version>0.2.0</Version>
88
<Authors>Christiann Hermann</Authors>
99
</PropertyGroup>
1010

Measurement/Program.cs

+17-11
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using DnsCrypt.Stamps;
44
using System;
55
using System.Collections.Generic;
6+
using System.Diagnostics;
67
using System.IO;
78
using System.Linq;
89
using System.Threading.Tasks;
@@ -116,24 +117,27 @@ private static async Task Main(string[] args)
116117
if (File.Exists(list))
117118
{
118119
var stamps = StampTools.ReadStampFile(list, noLogs, noFilter, onlyDnssec);
119-
var measurementResults = new List<MeasurementResult>();
120120
if (!json)
121121
{
122-
Console.WriteLine("Stay tuned . . . i`am working");
122+
Console.WriteLine("measuring . . .");
123123
}
124-
124+
var stopWatch = new Stopwatch();
125+
stopWatch.Start();
126+
var measurementTasks = new List<Task<MeasurementResult>>();
125127
foreach (var stamp in stamps)
126128
{
127129
if (stamp.Protocol == StampProtocol.DnsCrypt)
128130
{
129-
var measurement = await MeasurementTools.Proxy(stamp).ConfigureAwait(false);
130-
if (!measurement.Failed)
131-
{
132-
measurementResults.Add(measurement);
133-
}
131+
measurementTasks.Add(MeasurementTools.Proxy(stamp));
134132
}
135133
}
136-
measurementResults.Sort((a, b) => a.Time.CompareTo(b.Time));
134+
135+
var measurements = await Task.WhenAll(measurementTasks);
136+
var measurementResults = measurements.Where(measurement => !measurement.Failed).ToList();
137+
138+
stopWatch.Stop();
139+
var ts = stopWatch.Elapsed;
140+
measurementResults.Sort((a, b) => a.Time.CompareTo(b.Time));
137141
if (!json)
138142
{
139143
Console.WriteLine("=====================================");
@@ -142,6 +146,8 @@ private static async Task Main(string[] args)
142146
Console.WriteLine($"Only NoLogs: {noLogs}");
143147
Console.WriteLine($"Only NoFilter: {noFilter}");
144148
Console.WriteLine("=====================================");
149+
150+
Console.WriteLine();
145151
foreach (var measurement in measurementResults)
146152
{
147153
Console.WriteLine(
@@ -151,7 +157,8 @@ private static async Task Main(string[] args)
151157
$"DNSSEC: {measurement.Stamp.Properties.DnsSec}, " +
152158
$"Certificate Valid: {measurement.Certificate.Valid}");
153159
}
154-
}
160+
Console.WriteLine("Total processing time: " + string.Format("{0} min {1} seconds", Math.Floor(ts.TotalMinutes), ts.ToString("ss\\.ff")));
161+
}
155162
else
156163
{
157164
Console.WriteLine(JsonConvert.SerializeObject(measurementResults.Where(m => m.Failed == false).ToList(), Formatting.Indented));
@@ -161,7 +168,6 @@ private static async Task Main(string[] args)
161168
{
162169
Console.WriteLine("Missing resolvers.md");
163170
}
164-
Console.ReadLine();
165171
}
166172

167173
private static void ShowHelp(OptionSet p)

0 commit comments

Comments
 (0)