diff --git a/Readme.md b/Readme.md index fdacec0..0fce779 100644 --- a/Readme.md +++ b/Readme.md @@ -92,14 +92,14 @@ minifyFiles(["file1.json", "file2.json"], true); On AMD Ryzen 7 4800H: - minifyString: minijson is 4178 times faster than jsonMinify -- minifyFiles: minijson is 1198 times faster than jsonMinify. +- minifyFiles: minijson is 1894 times faster than jsonMinify. ``` ❯ .\dist\minijson-benchmark.exe --benchmark-minifyString --benchmark-minifyFiles Benchmark minifyString 14 ms Benchmark minifyFiles -49 ms +31 ms ❯ node .\benchmark\js-benchmark.mjs Benchmark minifyString diff --git a/src/native/lib.d b/src/native/lib.d index acab581..17ba70f 100644 --- a/src/native/lib.d +++ b/src/native/lib.d @@ -47,15 +47,13 @@ string minifyString(in string jsonString, in bool hasComment = false) @trusted { auto leftContextSubstr = match.pre()[prevFrom .. $]; const noLeftContext = leftContextSubstr.length == 0; - if (!in_string && !noLeftContext) - { - leftContextSubstr = remove_spaces(leftContextSubstr); - } - if (!noLeftContext) - { + if (!noLeftContext) { + if (!in_string) + { + leftContextSubstr = remove_spaces(leftContextSubstr); + } result ~= leftContextSubstr; } - if (matchFrontHit == "\"") { if (!in_string || noLeftContext || hasNoSlashOrEvenNumberOfSlashes(leftContextSubstr)) @@ -175,10 +173,8 @@ void minifyFiles(in string[] files, in bool hasComment = false) import std.parallelism : parallel; import std.file : readText, write; - foreach (ref file; files.parallel()) + foreach (file; files.parallel()) { - const string jsonString = readText(file); - const minifiedJsonString = minifyString(jsonString, hasComment); - write(file, minifiedJsonString); + write(file, minifyString(readText(file), hasComment)); } }