public static PerfomanceData GetPerformanceInfo()
        {
            PsApiPerformanceInformation perfInfo = new PsApiPerformanceInformation();

            if (UnsafeNativeMethods.GetPerformanceInfo(out perfInfo, Marshal.SizeOf(perfInfo)))
            {
                Int64 pageSize = perfInfo.PageSize.ToInt64();

                return(new PerfomanceData
                {
                    /// data in pages
                    CommitTotalPages = perfInfo.CommitTotal.ToInt64(),
                    CommitLimitPages = perfInfo.CommitLimit.ToInt64(),
                    CommitPeakPages = perfInfo.CommitPeak.ToInt64(),
                    /// data in bytes
                    PhysicalTotalBytes = perfInfo.PhysicalTotal.ToInt64() * pageSize,
                    PhysicalAvailableBytes = perfInfo.PhysicalAvailable.ToInt64() * pageSize,
                    SystemCacheBytes = perfInfo.SystemCache.ToInt64() * pageSize,
                    KernelTotalBytes = perfInfo.KernelTotal.ToInt64() * pageSize,
                    KernelPagedBytes = perfInfo.KernelPaged.ToInt64() * pageSize,
                    KernelNonPagedBytes = perfInfo.KernelNonPaged.ToInt64() * pageSize,
                    PageSizeBytes = pageSize,
                    /// counters
                    HandlesCount = perfInfo.HandlesCount,
                    ProcessCount = perfInfo.ProcessCount,
                    ThreadCount = perfInfo.ThreadCount
                });
            }
            return(null);
        }
Beispiel #2
0
        public static PerfomanceInfoData GetPerformanceInfo()
        {
            PerfomanceInfoData          data     = new PerfomanceInfoData();
            PsApiPerformanceInformation perfInfo = new PsApiPerformanceInformation();

            if (GetPerformanceInfo(out perfInfo, Marshal.SizeOf(perfInfo)))
            {
                /// data in pages
                data.CommitTotalPages = perfInfo.CommitTotal.ToInt64();
                data.CommitLimitPages = perfInfo.CommitLimit.ToInt64();
                data.CommitPeakPages  = perfInfo.CommitPeak.ToInt64();

                /// data in bytes
                Int64 pageSize = perfInfo.PageSize.ToInt64();
                data.PhysicalTotalBytes     = perfInfo.PhysicalTotal.ToInt64() * pageSize;
                data.PhysicalAvailableBytes = perfInfo.PhysicalAvailable.ToInt64() * pageSize;
                data.SystemCacheBytes       = perfInfo.SystemCache.ToInt64() * pageSize;
                data.KernelTotalBytes       = perfInfo.KernelTotal.ToInt64() * pageSize;
                data.KernelPagedBytes       = perfInfo.KernelPaged.ToInt64() * pageSize;
                data.KernelNonPagedBytes    = perfInfo.KernelNonPaged.ToInt64() * pageSize;
                data.PageSizeBytes          = pageSize;

                /// counters
                data.HandlesCount = perfInfo.HandlesCount;
                data.ProcessCount = perfInfo.ProcessCount;
                data.ThreadCount  = perfInfo.ThreadCount;
            }
            return(data);
        }
Beispiel #3
0
        public static PerfomanceInfoData GetPerformanceInfo()
        {
            PerfomanceInfoData data = new PerfomanceInfoData();
            PsApiPerformanceInformation perfInfo = new PsApiPerformanceInformation();
            if (GetPerformanceInfo(out perfInfo, Marshal.SizeOf(perfInfo)))
            {
                /// data in pages
                data.CommitTotalPages = perfInfo.CommitTotal.ToInt64();
                data.CommitLimitPages = perfInfo.CommitLimit.ToInt64();
                data.CommitPeakPages = perfInfo.CommitPeak.ToInt64();

                /// data in bytes
                Int64 pageSize = perfInfo.PageSize.ToInt64();
                data.PhysicalTotalBytes = perfInfo.PhysicalTotal.ToInt64() * pageSize;
                data.PhysicalAvailableBytes = perfInfo.PhysicalAvailable.ToInt64() * pageSize;
                data.SystemCacheBytes = perfInfo.SystemCache.ToInt64() * pageSize;
                data.KernelTotalBytes = perfInfo.KernelTotal.ToInt64() * pageSize;
                data.KernelPagedBytes = perfInfo.KernelPaged.ToInt64() * pageSize;
                data.KernelNonPagedBytes = perfInfo.KernelNonPaged.ToInt64() * pageSize;
                data.PageSizeBytes = pageSize;

                /// counters
                data.HandlesCount = perfInfo.HandlesCount;
                data.ProcessCount = perfInfo.ProcessCount;
                data.ThreadCount = perfInfo.ThreadCount;
            }

            return data;
        }
Beispiel #4
0
        public static long GetMemoryUsageInBytes()
        {
            long MemoryUsage = 0;
            PsApiPerformanceInformation PerfInfo = new PsApiPerformanceInformation();

            if (GetPerformanceInfo(out PerfInfo, Marshal.SizeOf(PerfInfo)))
            {
                Int64 pageSize = PerfInfo.PageSize.ToInt64();
                MemoryUsage = (PerfInfo.PhysicalTotal.ToInt64() * pageSize) - (PerfInfo.PhysicalAvailable.ToInt64() * pageSize);
                return(MemoryUsage);
            }
            else
            {
                return(-1);
            }
        }
        public static PerfomanceInfoData GetPerformanceInfo()
        {
            var data     = new PerfomanceInfoData();
            var perfInfo = new PsApiPerformanceInformation();

            if (!GetPerformanceInfo(out perfInfo, Marshal.SizeOf(perfInfo)))
            {
                return(data);
            }

            // data in pages
            data.CommitTotalPages = perfInfo.CommitTotal.ToInt64();
            data.CommitLimitPages = perfInfo.CommitLimit.ToInt64();
            data.CommitPeakPages  = perfInfo.CommitPeak.ToInt64();

            // data in bytes
            var pageSize = perfInfo.PageSize.ToInt64();

            data.PhysicalTotalMb     = perfInfo.PhysicalTotal.ToInt64() * pageSize / 1048576;
            data.PhysicalAvailableMb = perfInfo.PhysicalAvailable.ToInt64() * pageSize / 1048576;
            data.PhysicalPercentFree = (decimal)data.PhysicalAvailableMb / data.PhysicalTotalMb * 100;
            data.PhysicalOccupied    = 100 - data.PhysicalPercentFree;

            data.SystemCacheMb    = perfInfo.SystemCache.ToInt64() * pageSize / 1048576;
            data.KernelTotalMb    = perfInfo.KernelTotal.ToInt64() * pageSize / 1048576;
            data.KernelPagedMb    = perfInfo.KernelPaged.ToInt64() * pageSize / 1048576;
            data.KernelNonPagedMb = perfInfo.KernelNonPaged.ToInt64() * pageSize / 1048576;
            data.PageSizeMb       = pageSize / 1048576;

            // counters
            data.HandlesCount = perfInfo.HandlesCount;
            data.ProcessCount = perfInfo.ProcessCount;
            data.ThreadCount  = perfInfo.ThreadCount;

            return(data);
        }
Beispiel #6
0
 private static extern bool GetPerformanceInfo([Out] out PsApiPerformanceInformation PerformanceInformation, [In] int Size);
Beispiel #7
0
        public QTF.TestVerdict TestMetricTest()
        {
            try
            {
                Setup();

                PerfomanceInfoData          data     = new PerfomanceInfoData();
                PsApiPerformanceInformation perfInfo = new PsApiPerformanceInformation();
                if (GetPerformanceInfo(out perfInfo, Marshal.SizeOf(perfInfo)))
                {
                    /// data in pages
                    data.CommitTotalPages = perfInfo.CommitTotal.ToInt64();
                    data.CommitLimitPages = perfInfo.CommitLimit.ToInt64();
                    data.CommitPeakPages  = perfInfo.CommitPeak.ToInt64();

                    /// data in bytes
                    Int64 pageSize = perfInfo.PageSize.ToInt64();
                    data.PhysicalTotalBytes     = perfInfo.PhysicalTotal.ToInt64() * pageSize;
                    data.PhysicalAvailableBytes = perfInfo.PhysicalAvailable.ToInt64() * pageSize;
                    data.SystemCacheBytes       = perfInfo.SystemCache.ToInt64() * pageSize;
                    data.KernelTotalBytes       = perfInfo.KernelTotal.ToInt64() * pageSize;
                    data.KernelPagedBytes       = perfInfo.KernelPaged.ToInt64() * pageSize;
                    data.KernelNonPagedBytes    = perfInfo.KernelNonPaged.ToInt64() * pageSize;
                    data.PageSizeBytes          = pageSize;

                    /// counters
                    data.HandlesCount = perfInfo.HandlesCount;
                    data.ProcessCount = perfInfo.ProcessCount;
                    data.ThreadCount  = perfInfo.ThreadCount;
                }


                var bob = new PerformanceCounter("Processor", @"% Processor Time", @"_Total");

                bob.NextValue();
                var name = bob.CategoryName;
                Thread.Sleep(5000);

                //cpuCounter = new PerformanceCounter("Processor", @"% Processor Time", @"_Total");
                //var percent = cpuCounter.NextValue();
                //percent = cpuCounter.NextValue();
                //percent = cpuCounter.NextValue();
                //percent = cpuCounter.NextValue();

                //memory = new PerformanceCounter("Memory");

                TestVerdict = QTF.TestVerdict.Pass;
                TestMessage = "This is the initial test message.";
            }
            catch (Exception e)
            {
                TestMessage += e.ToString();
                TestVerdict  = QTF.TestVerdict.Error;
            }
            finally
            {
                Teardown();
            }

            return(TestVerdict);
        }