Skip to content

Commit a944245

Browse files
committed
Performance improvements
1 parent 97fc236 commit a944245

File tree

6 files changed

+13
-15
lines changed

6 files changed

+13
-15
lines changed

src/WebCompiler/Config/ConfigFileProcessor.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public class ConfigFileProcessor
2222
/// <param name="configs">Optional configuration items in the config file</param>
2323
/// <param name="force">Forces compilation of all config items.</param>
2424
/// <returns>A list of compiler results.</returns>
25-
public IEnumerable<CompilerResult> Process(string configFile, IEnumerable<Config> configs = null, bool force = false)
25+
public IEnumerable<CompilerResult> Process(string configFile, Config[] configs = null, bool force = false)
2626
{
2727
if (_processing.Contains(configFile))
2828
return Enumerable.Empty<CompilerResult>();
@@ -36,8 +36,8 @@ public IEnumerable<CompilerResult> Process(string configFile, IEnumerable<Config
3636
string directory = info.Directory.FullName;
3737
configs = configs ?? ConfigHandler.GetConfigs(configFile);
3838

39-
if (configs.Any())
40-
OnConfigProcessed(configs.First(), 0, configs.Count());
39+
if (configs.Length > 0)
40+
OnConfigProcessed(configs.First(), 0, configs.Length);
4141

4242
int i = 0;
4343
foreach (Config config in configs)
@@ -56,7 +56,7 @@ public IEnumerable<CompilerResult> Process(string configFile, IEnumerable<Config
5656
list.Add(ProcessConfig(directory, config));
5757
}
5858

59-
OnConfigProcessed(config, i, configs.Count());
59+
OnConfigProcessed(config, i, configs.Length);
6060
}
6161
}
6262
}

src/WebCompiler/Config/ConfigHandler.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,16 +95,15 @@ public void CreateDefaultsFile(string fileName)
9595
/// </summary>
9696
/// <param name="fileName">A relative or absolute file path to the configuration file.</param>
9797
/// <returns>A list of Config objects.</returns>
98-
public static IEnumerable<Config> GetConfigs(string fileName)
98+
public static Config[] GetConfigs(string fileName)
9999
{
100100
FileInfo file = new FileInfo(fileName);
101101

102102
if (!file.Exists)
103-
return Enumerable.Empty<Config>();
103+
return new Config[0];
104104

105105
string content = File.ReadAllText(fileName);
106-
var configs = JsonConvert.DeserializeObject<IEnumerable<Config>>(content);
107-
string folder = Path.GetDirectoryName(file.FullName);
106+
Config[] configs = JsonConvert.DeserializeObject<Config[]>(content);
108107

109108
foreach (Config config in configs)
110109
{

src/WebCompiler/Program.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ private static void EventHookups(ConfigFileProcessor processor, string configPat
5050
FileMinifier.AfterWritingGzipFile += (s, e) => { Console.WriteLine($" \x1B[32mGZipped"); };
5151
}
5252

53-
private static IEnumerable<Config> GetConfigs(string configPath, string file)
53+
private static Config[] GetConfigs(string configPath, string file)
5454
{
5555
var configs = ConfigHandler.GetConfigs(configPath);
5656

@@ -60,9 +60,9 @@ private static IEnumerable<Config> GetConfigs(string configPath, string file)
6060
if (file != null)
6161
{
6262
if (file.StartsWith("*"))
63-
configs = configs.Where(c => Path.GetExtension(c.InputFile).Equals(file.Substring(1), StringComparison.OrdinalIgnoreCase));
63+
configs = configs.Where(c => Path.GetExtension(c.InputFile).Equals(file.Substring(1), StringComparison.OrdinalIgnoreCase)).ToArray();
6464
else
65-
configs = configs.Where(c => c.InputFile.Equals(file, StringComparison.OrdinalIgnoreCase));
65+
configs = configs.Where(c => c.InputFile.Equals(file, StringComparison.OrdinalIgnoreCase)).ToArray();
6666
}
6767

6868
return configs;

src/WebCompilerTest/Config/ConfigHandlerTest.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,9 @@ public void AddConfig()
4545
[TestMethod, TestCategory("Config")]
4646
public void NonExistingConfigFileShouldReturnEmptyList()
4747
{
48-
var expectedResult = Enumerable.Empty<WebCompiler.Config>();
49-
5048
var result = ConfigHandler.GetConfigs("../NonExistingFile.config");
5149

52-
Assert.AreEqual(expectedResult, result);
50+
Assert.AreEqual(0, result.Length);
5351
}
5452
}
5553
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
body {
2+
background: black
23
}

src/WebCompilerVsix/CompilerService.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ private static void ConfigProcessed(object sender, ConfigProcessedEventArgs e)
5151
_dte.StatusBar.Progress(true, "Compiling...", e.AmountProcessed, e.Total);
5252
}
5353

54-
public static void Process(string configFile, IEnumerable<Config> configs = null, bool force = false)
54+
public static void Process(string configFile, Config[] configs = null, bool force = false)
5555
{
5656
ThreadPool.QueueUserWorkItem((o) =>
5757
{

0 commit comments

Comments
 (0)