Skip to content

Commit ba5d7f4

Browse files
committed
* Added GUI function to fill the RAM
1 parent a578a36 commit ba5d7f4

File tree

3 files changed

+53
-3
lines changed

3 files changed

+53
-3
lines changed

MemPlus/Business/RAM/RamController.cs

Lines changed: 38 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,7 @@ private void OnTimedEvent(object source, ElapsedEventArgs e)
290290
/// <summary>
291291
/// Clear all non-essential RAM
292292
/// </summary>
293-
/// <returns>A Task</returns>
293+
/// <returns>A Task object</returns>
294294
internal async Task ClearMemory()
295295
{
296296
_lastAutoOptimizeTime = DateTime.Now;
@@ -348,10 +348,45 @@ await Task.Run(async () =>
348348
_logController.AddLog(new ApplicationLog("Done clearing RAM memory"));
349349
}
350350

351+
/// <summary>
352+
/// Fill the RAM
353+
/// </summary>
354+
/// <returns>A Task object</returns>
355+
internal async Task FillRamData()
356+
{
357+
_logController.AddLog(new ApplicationLog("Filling RAM"));
358+
359+
await Task.Run(() =>
360+
{
361+
try
362+
{
363+
UpdateRamUsage();
364+
365+
double oldUsage = _ramUsageHistory[_ramUsageHistory.Count - 1].TotalUsed;
366+
367+
_ramOptimizer.FillRam(_info, FillRamMaxRuns);
368+
369+
UpdateRamUsage();
370+
371+
double newUsage = _ramUsageHistory[_ramUsageHistory.Count - 1].TotalUsed;
372+
373+
RamSavings = oldUsage - newUsage;
374+
}
375+
catch (Exception ex)
376+
{
377+
_logController.AddLog(new ErrorLog(ex.Message));
378+
}
379+
});
380+
381+
RamClearingCompletedEvent?.Invoke();
382+
383+
_logController.AddLog(new ApplicationLog("Done filling RAM"));
384+
}
385+
351386
/// <summary>
352387
/// Clear the working set of all processes, excluding the exclusion list
353388
/// </summary>
354-
/// <returns>A Task</returns>
389+
/// <returns>A Task object</returns>
355390
internal async Task ClearWorkingSets()
356391
{
357392
_logController.AddLog(new ApplicationLog("Clearing process working sets"));
@@ -388,7 +423,7 @@ await Task.Run(async () =>
388423
/// <summary>
389424
/// Clear the FileSystem cache
390425
/// </summary>
391-
/// <returns>A Task</returns>
426+
/// <returns>A Task object</returns>
392427
internal async Task ClearFileSystemCaches()
393428
{
394429
_logController.AddLog(new ApplicationLog("Clearing FileSystem cache"));

MemPlus/Views/Windows/MainWindow.xaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,8 @@
274274
Click="ClearWorkingSetsDropDownMenuItem_OnClick" />
275275
<syncfusion:DropDownMenuItem Header="{DynamicResource ClearFileSystemCache}"
276276
Click="ClearFileSystemCacheDropDownMenuItem_OnClick" />
277+
<syncfusion:DropDownMenuItem Header="{DynamicResource FillRam}"
278+
Click="FillRamDropDownMenuItem_OnClick" />
277279
</syncfusion:DropDownMenuGroup>
278280
</syncfusion:SplitButtonAdv>
279281
</Grid>

MemPlus/Views/Windows/MainWindow.xaml.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1043,6 +1043,16 @@ private void ClearFileSystemCacheDropDownMenuItem_OnClick(object sender, RoutedE
10431043
ClearMemory(2);
10441044
}
10451045

1046+
/// <summary>
1047+
/// Method that is called when the RAM should be filled
1048+
/// </summary>
1049+
/// <param name="sender">The object that called this method</param>
1050+
/// <param name="e">The RoutedEventArgs</param>
1051+
private void FillRamDropDownMenuItem_OnClick(object sender, RoutedEventArgs e)
1052+
{
1053+
ClearMemory(3);
1054+
}
1055+
10461056
/// <summary>
10471057
/// Clear the memory
10481058
/// </summary>
@@ -1071,6 +1081,9 @@ private async void ClearMemory(int index)
10711081
case 2:
10721082
await _ramController.ClearFileSystemCaches();
10731083
break;
1084+
case 3:
1085+
await _ramController.FillRamData();
1086+
break;
10741087
}
10751088
}
10761089
catch (Exception ex)

0 commit comments

Comments
 (0)