diff --git a/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Windows/Interop/ProcessInfo.cs b/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Windows/Interop/ProcessInfo.cs
index cb5febeff55..fb5223f3d02 100644
--- a/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Windows/Interop/ProcessInfo.cs
+++ b/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Windows/Interop/ProcessInfo.cs
@@ -1,6 +1,7 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
+using System;
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
@@ -41,7 +42,6 @@ public ulong GetMemoryUsage()
public ulong GetCurrentProcessMemoryUsage()
{
- using Process process = Process.GetCurrentProcess();
- return (ulong)process.WorkingSet64;
+ return (ulong)Environment.WorkingSet;
}
}
diff --git a/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Windows/WindowsSnapshotProvider.cs b/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Windows/WindowsSnapshotProvider.cs
index 7197499afd9..da828a2d064 100644
--- a/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Windows/WindowsSnapshotProvider.cs
+++ b/src/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring/Windows/WindowsSnapshotProvider.cs
@@ -109,8 +109,7 @@ internal static long GetCpuTicks()
internal static long GetMemoryUsageInBytes()
{
- using var process = Process.GetCurrentProcess();
- return process.WorkingSet64;
+ return Environment.WorkingSet;
}
internal static ulong GetTotalMemoryInBytes()
diff --git a/test/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring.Tests/Windows/ProcessInfoTests.cs b/test/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring.Tests/Windows/ProcessInfoTests.cs
new file mode 100644
index 00000000000..ab83f2677df
--- /dev/null
+++ b/test/Libraries/Microsoft.Extensions.Diagnostics.ResourceMonitoring.Tests/Windows/ProcessInfoTests.cs
@@ -0,0 +1,23 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+
+using Microsoft.Extensions.Diagnostics.ResourceMonitoring.Windows.Interop;
+using Microsoft.TestUtilities;
+using Xunit;
+
+namespace Microsoft.Extensions.Diagnostics.ResourceMonitoring.Windows.Test;
+
+///
+/// Process Info Interop Tests.
+///
+/// These tests are added for coverage reasons, but the code doesn't have
+/// the necessary environment predictability to really test it.
+public sealed class ProcessInfoTests
+{
+ [ConditionalFact]
+ public void GetCurrentProcessMemoryUsage()
+ {
+ var workingSet64 = new ProcessInfo().GetCurrentProcessMemoryUsage();
+ Assert.True(workingSet64 > 0);
+ }
+}