Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ GetCpuUsage()

static int System.Diagnostics.Tracing.RuntimeEventSourceHelper.GetCpuUsage ( )
inlinestaticpackage

Definition at line 13 of file RuntimeEventSourceHelper.cs.

14 {
15 int result = 0;
16 if (Interop.Kernel32.GetProcessTimes(Interop.Kernel32.GetCurrentProcess(), out var _, out var exit, out var kernel, out var user) && Interop.Kernel32.GetSystemTimes(out exit, out var kernel2, out var user2))
17 {
18 long num = user - s_prevProcUserTime + (kernel - s_prevProcKernelTime);
19 long num2 = kernel2 - s_prevSystemUserTime + (user2 - s_prevSystemKernelTime);
20 if (s_prevSystemUserTime != 0L && s_prevSystemKernelTime != 0L && num2 != 0L)
21 {
22 result = (int)(num * 100 / num2);
23 }
24 s_prevProcUserTime = user;
25 s_prevProcKernelTime = kernel;
26 s_prevSystemUserTime = kernel2;
28 }
29 return result;
30 }
static bool GetProcessTimes(SafeProcessHandle handle, out long creation, out long exit, out long kernel, out long user)
static IntPtr GetCurrentProcess()
static bool GetSystemTimes(out long idle, out long kernel, out long user)

References Interop.Kernel32.GetCurrentProcess(), Interop.Kernel32.GetProcessTimes(), Interop.Kernel32.GetSystemTimes(), System.L, System.Diagnostics.Tracing.RuntimeEventSourceHelper.s_prevProcKernelTime, System.Diagnostics.Tracing.RuntimeEventSourceHelper.s_prevProcUserTime, System.Diagnostics.Tracing.RuntimeEventSourceHelper.s_prevSystemKernelTime, and System.Diagnostics.Tracing.RuntimeEventSourceHelper.s_prevSystemUserTime.

Referenced by System.Diagnostics.Tracing.RuntimeEventSource.OnEventCommand().