29 lines
665 B
C#
29 lines
665 B
C#
// Copyright The OpenTelemetry Authors
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
using System.Runtime.InteropServices;
|
|
|
|
namespace OpenTelemetry.Tests.Stress;
|
|
|
|
internal static class StressTestNativeMethods
|
|
{
|
|
public static ulong GetCpuCycles()
|
|
{
|
|
if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
if (!QueryProcessCycleTime((IntPtr)(-1), out var cycles))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return cycles;
|
|
}
|
|
|
|
[DllImport("kernel32.dll")]
|
|
[return: MarshalAs(UnmanagedType.Bool)]
|
|
private static extern bool QueryProcessCycleTime(IntPtr hProcess, out ulong cycles);
|
|
}
|