mirror of
https://github.com/ryujinx-mirror/ryujinx.git
synced 2024-11-27 12:33:00 +00:00
82 lines
No EOL
2.3 KiB
C#
82 lines
No EOL
2.3 KiB
C#
using System.Diagnostics;
|
||
|
||
namespace Ryujinx.Common
|
||
{
|
||
public static class PerformanceCounter
|
||
{
|
||
private static double _ticksToNs;
|
||
|
||
/// <summary>
|
||
/// Represents the number of ticks in 1 day.
|
||
/// </summary>
|
||
public static long TicksPerDay { get; }
|
||
|
||
/// <summary>
|
||
/// Represents the number of ticks in 1 hour.
|
||
/// </summary>
|
||
public static long TicksPerHour { get; }
|
||
|
||
/// <summary>
|
||
/// Represents the number of ticks in 1 minute.
|
||
/// </summary>
|
||
public static long TicksPerMinute { get; }
|
||
|
||
/// <summary>
|
||
/// Represents the number of ticks in 1 second.
|
||
/// </summary>
|
||
public static long TicksPerSecond { get; }
|
||
|
||
/// <summary>
|
||
/// Represents the number of ticks in 1 millisecond.
|
||
/// </summary>
|
||
public static long TicksPerMillisecond { get; }
|
||
|
||
/// <summary>
|
||
/// Gets the number of milliseconds elapsed since the system started.
|
||
/// </summary>
|
||
public static long ElapsedTicks
|
||
{
|
||
get
|
||
{
|
||
return Stopwatch.GetTimestamp();
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// Gets the number of milliseconds elapsed since the system started.
|
||
/// </summary>
|
||
public static long ElapsedMilliseconds
|
||
{
|
||
get
|
||
{
|
||
long timestamp = Stopwatch.GetTimestamp();
|
||
|
||
return timestamp / TicksPerMillisecond;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// Gets the number of nanoseconds elapsed since the system started.
|
||
/// </summary>
|
||
public static long ElapsedNanoseconds
|
||
{
|
||
get
|
||
{
|
||
long timestamp = Stopwatch.GetTimestamp();
|
||
|
||
return (long)(timestamp * _ticksToNs);
|
||
}
|
||
}
|
||
|
||
static PerformanceCounter()
|
||
{
|
||
TicksPerMillisecond = Stopwatch.Frequency / 1000;
|
||
TicksPerSecond = Stopwatch.Frequency;
|
||
TicksPerMinute = TicksPerSecond * 60;
|
||
TicksPerHour = TicksPerMinute * 60;
|
||
TicksPerDay = TicksPerHour * 24;
|
||
|
||
_ticksToNs = 1000000000.0 / (double)Stopwatch.Frequency;
|
||
}
|
||
}
|
||
} |