木子冬
程序就是规范流程下的替代品,互联网就是对应需求下的一个产业链!

导航

 
   /// <summary>
        /// 监测性能
        /// </summary>
        /// <returns></returns>
        private bool MonitorPerformance()
        {
            bool res = false;
            int times = 1;
            int interval = 1000;//Sleep的时间间隔
            TimeSpan prevCpuTime = TimeSpan.Zero; //上次记录CPU的时间
            try
            {
                while (true)
                {
                    Process[] pros = Process.GetProcessesByName(ProcessName);
                    if (pros.Length > 0)
                    {
                        foreach (Process item in pros)
                        {
                            PerformanceCounter curpc = new PerformanceCounter("Process", "Working Set", item.ProcessName);
                            //当前时间
                            TimeSpan curCpuTime = item.TotalProcessorTime;
                            //计算
                            double value = (curCpuTime - prevCpuTime).TotalMilliseconds / interval / Environment.ProcessorCount * 100;
                            prevCpuTime = curCpuTime;
                            //这个工作集是动态更新的
                            Console.WriteLine("{0}:{1}  {2:N}KB CPU使用率:{3}", item.ProcessName, "工作集", curpc.NextValue() / 1024, value);
                            if (value < 5)
                            {
                                res = true;
                                item.Kill();
                            }
                            Thread.Sleep(interval);
                        }
                    }
                    else
                    {
                        break;
                    }
                    if (times * interval == 900000)//十五分钟后超时
                    {
                        foreach (Process item in pros)
                        {
                            KillProcessAndChildren(item.Id);
                        }
                        break;
                    }
                    times++;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Function: MonitorPerformance " + ex.Message);
            }
            return res;
        }

 

posted on 2014-11-28 15:32  木子_冬  阅读(1819)  评论(0编辑  收藏  举报