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.skyscanner.crawl;
using ln.types.threads; using ln.types.threads;
using System.Threading; using System.Threading;
using ln.logging;
using Newtonsoft.Json; using Newtonsoft.Json;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
using ln.skyscanner.checks; using ln.skyscanner.checks;
using System.Collections.Generic; using System.Collections.Generic;
using ln.skyscanner.import.skytron; using ln.skyscanner.import.skytron;
using System.Linq;
namespace ln.skyscanner namespace ln.skyscanner
{ {
[JsonConverter(typeof(StringEnumConverter))] [JsonConverter(typeof(StringEnumConverter))]
@ -51,7 +51,7 @@ namespace ln.skyscanner
Arguments = args; Arguments = args;
String skytronImport = null; String skytronImport = null;
String benchMark = null;
Queue<string> qArguments = new Queue<string>(Arguments); Queue<string> qArguments = new Queue<string>(Arguments);
while (qArguments.Count > 0) while (qArguments.Count > 0)
@ -65,6 +65,9 @@ namespace ln.skyscanner
case "--import-skytron": case "--import-skytron":
skytronImport = qArguments.Dequeue(); skytronImport = qArguments.Dequeue();
break; break;
case "--benchmark":
benchMark = qArguments.Dequeue();
break;
} }
} }
@ -77,6 +80,20 @@ namespace ln.skyscanner
si.Import(); 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() 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);
}
}
} }
} }