Add --benchmark option

broken
Harald Wolff 2019-07-03 10:54:46 +02:00
parent 07062a2c3a
commit ef93682ef9
1 changed files with 38 additions and 2 deletions

View File

@ -7,12 +7,12 @@ using System.IO;
using ln.skyscanner.crawl;
using ln.types.threads;
using System.Threading;
using ln.logging;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using ln.skyscanner.checks;
using System.Collections.Generic;
using ln.skyscanner.import.skytron;
using System.Linq;
namespace ln.skyscanner
{
[JsonConverter(typeof(StringEnumConverter))]
@ -51,7 +51,7 @@ namespace ln.skyscanner
Arguments = args;
String skytronImport = null;
String benchMark = null;
Queue<string> qArguments = new Queue<string>(Arguments);
while (qArguments.Count > 0)
@ -65,6 +65,9 @@ namespace ln.skyscanner
case "--import-skytron":
skytronImport = qArguments.Dequeue();
break;
case "--benchmark":
benchMark = qArguments.Dequeue();
break;
}
}
@ -77,6 +80,20 @@ namespace ln.skyscanner
si.Import();
}
if (benchMark != null)
{
switch (benchMark)
{
case "odb":
BenchmarkODB();
break;
default:
Logging.Log(LogLevel.ERROR, "Unknown Benchmark: {0}", benchMark);
break;
}
throw new Exception("Quitting after benchmarking");
}
}
private SkyScanner()
{
@ -192,7 +209,26 @@ namespace ln.skyscanner
}
}
public void BenchmarkODB()
{
int maxIterations = 10000;
for (int i = 0; i < maxIterations; i++)
{
int n = 0;
Logging.Log(LogLevel.INFO, "Benchmark ODB: Iteration {0} of {1}", i, maxIterations);
foreach (SkyCheckState checkState in SkyScanner.Instance.Entities.SkyCheckStates.ToArray())
{
SkyScanner.Instance.Entities.SkyCheckStates.Upsert(checkState);
n++;
}
Logging.Log(LogLevel.INFO, "Saved {0} SkyCheckStates", n);
}
}
}
}