使用秒表对应用程序使用情况进行基准测试

本文关键字:情况 基准测试 用情 应用程序 | 更新日期: 2023-09-27 18:34:38

嗨,我

正在尝试创建一个可以在我的项目中使用的全局类,我打算将其用作我的默认模板,我是新手,所以请耐心等待;)

Stopwatch Masterstopwatch = new Stopwatch();
#if DEBUG
    private static void ApplicationLogStart()
    {
        StartTime = DateTime.Now;
        Masterstopwatch.Start();
        String eventName = "Program Loaded";
        String errorDetails = "Program has started Succesfully";
        DataLogEntry(eventName, errorDetails);
    }
    private static void ApplicationLogclosing()
    {
        String eventName = "Program is closing";
        String errorDetails = "Program has closed Succesfully";
        DataLogEntry(eventName, errorDetails);
        StopTime = DateTime.Now;
        Masterstopwatch.Stop();
        Benchmark(StartTime,StopTime,Masterstopwatch.Elapsed);
    }
#endif

我怀疑我的设计存在严重缺陷,因为我希望秒表主秒表 = 新的秒表((; 在不使用方法的情况下全局声明,我怀疑这是不可能的,但我需要问谢谢

使用秒表对应用程序使用情况进行基准测试

听起来你需要单例模式。

如果按如下方式声明秒表的包装器,则可以在应用中的任何位置使用它并访问秒表的同一实例。

// Declare singleton wrapper of a stopwatch, which instantiates stopwatch
// on construction
public class StopwatchProxy 
{
    private Stopwatch _stopwatch;
    private static readonly StopwatchProxy _stopwatchProxy = new StopwatchProxy();
    private StopwatchProxy()
    {
        _stopwatch = new Stopwatch();
    }
    public Stopwatch Stopwatch { get { return _stopwatch; } } 
    public static StopwatchProxy Instance
    { 
        get { return _stopwatchProxy; }
    }
}
// Use singleton
class Foo
{
    void Foo()
    {
        // Stopwatch instance here
        StopwatchProxy.Instance.Stopwatch.Start();
    }
}
class Bar
{
    void Bar()
    {
        // Is the same instance as here
        StopwatchProxy.Instance.Stopwatch.Stop();
    }
}