static void Main(string[] args) { if (args == null || args.Length != 2) { Console.WriteLine("arguments error. md [input] [output]"); return; } if (!args[0].IsFile()) { Console.WriteLine("input file not found."); return; } var md = ""; using (var inputStream = new StreamReader(args[0], Encoding.UTF8)) { md = inputStream.ReadToEnd(); } var translator = new MarkdownTranslator(); var html = translator.Transform(md); using (var outputStream = new StreamWriter(args[1], false, Encoding.UTF8)) { outputStream.WriteLine(html); } }
private long GetElapsedMsForLine(string line) { GC.Collect(); var oldMode = GCSettings.LatencyMode; GCSettings.LatencyMode = GCLatencyMode.LowLatency; var renderer = new HtmlRenderer(); var translator = new MarkdownTranslator(); var watch = new Stopwatch(); watch.Start(); var translatedText = translator.Translate(line); watch.Stop(); var elapsedOnTranslate = watch.ElapsedMilliseconds; PrintOperationPerformanceResult("translating", line.Length, elapsedOnTranslate); watch.Restart(); renderer.Render(translatedText); watch.Stop(); var elapsedOnRendering = watch.ElapsedMilliseconds; PrintOperationPerformanceResult("rendering", translatedText.Length, elapsedOnRendering); GCSettings.LatencyMode = oldMode; GC.Collect(); var totalTime = elapsedOnTranslate + elapsedOnRendering; TestContext.WriteLine("-----TOTAL:\n" + $"Reading of {line.Length} characters consumed {totalTime} ms\n" + $"{line.Length / totalTime} characters per ms\n\n\n"); return(totalTime); }