[ VB.NET / C# ] システム情報の取得 ( 稼働時間とCPU数 )

Pocket

ここでは、システム( OS )が起動してから現在までの経過時間と、システムのプロセッサ( CPU )数を取得するサンプルコードを掲載しています。

スポンサーリンク

システム( OS )が起動してから現在までの経過時間

Environment.TickCount プロパティから取得する方法と PerformanceCounter クラス( System / System UpTime )で取得するサンプルコードになります。

VB.NET

Class PerfCounter

    Public Shared Sub Main()

        Dim upTime As Single

        Dim pc As New PerformanceCounter("System", "System Up Time")

        pc.NextValue()          ' 最初の1回目は常に0が返される
        upTime = pc.NextValue() ' システムが起動してからの秒数
        Console.WriteLine("System Up Time : " + upTime.ToString())

        Dim upTime2 As Integer = Environment.TickCount And Int32.MaxValue
        ' ミリ秒で単位で取得されるため秒単位に整形して出力
        Console.WriteLine("TickCount: {0}", upTime2 / 1000)

        Console.ReadKey()
    End Sub

End Class

C#

using System.Diagnostics;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            float upTime;

            PerformanceCounter pc = new PerformanceCounter("System", "System Up Time");

            pc.NextValue();          // 最初の1回目は常に0が返される
            upTime = pc.NextValue(); // システムが起動してからの秒数
            Console.WriteLine("System Up Time : " + upTime.ToString());

            int upTime2 = Environment.TickCount & Int32.MaxValue;
            // ミリ秒で単位で取得されるため秒単位に整形して出力
            Console.WriteLine("TickCount: {0}", upTime2 / 1000);

            Console.ReadKey();
        }
    }
}
プロセッサ ( CPU ) 数を取得する

次に、現在のコンピュータ上のプロセッサ(CPU)数を取得するサンプルコードになります。 具体的には、Environment.ProcessorCount プロパティ( .Net Framework2.0 以降 ) で取得しています。用途としては、CPU 数に応じて並列化で動作させるスレッド数やプロセス数を動的に最適化する場合などに使用することができると思います。

VB.NET

Class TestProcessorCount

    Public Shared Sub Main(ByVal args() As String)

        Console.WriteLine("CPU 数 : " + Environment.ProcessorCount.ToString())
        Console.ReadKey()
    End Sub
End Class

C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("CPU 数 : " + Environment.ProcessorCount.ToString());
            Console.ReadKey();
        }
    }
}
参考

 

スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *