c#程序定期把内存信息记录到log日志示例
发布时间:2022-01-11 16:33:31
设立一个定时器tmrMonitor,该定时器会在程序运行时不断把程序的占用内存和占用线程数写到LOG\MEM目录下。
我设置的定时器间隔是3000毫秒,记录后的信息可以用来分析一段时间内程序的运行状况,比如内存泄漏问题。
/// <summary>
/// Timer组件tmrMonitor的Tick事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void tmrMonitor_Tick(object sender, EventArgs e)
{
string LogAddress = Environment.CurrentDirectory + "\\Log";
if (!Directory.Exists(LogAddress + "\\MEM")) //需要System.IO
{
Directory.CreateDirectory(LogAddress + "\\MEM");
}
LogAddress = String.Concat(LogAddress, "\\MEM\\",
DateTime.Now.Year, '-', DateTime.Now.Month, '-',
DateTime.Now.Day, "_mem.log");
//需要 System.Diagnostics;
Process currentProcess = Process.GetCurrentProcess();
StreamWriter sw = new StreamWriter(LogAddress, true);
sw.WriteLine('[' + DateTime.Now.ToString() + ']');
sw.WriteLine("进程标识: " + currentProcess.Id.ToString());
sw.WriteLine("进程名称: " + currentProcess.ProcessName.ToString());
sw.WriteLine("占用内存: " +
(currentProcess.WorkingSet64 / 1024).ToString() + "KB");
sw.WriteLine("线程数量: " + currentProcess.Threads.Count.ToString());
sw.WriteLine();
sw.Close();
}
猜你喜欢
- 一、Maven项目使用步骤一般包含两步,1)引入依赖 2)特定的 IDE 引入对应的插件1)在POM中引入依赖<!-- https:/
- 本文主要讲解如何通过RabbitMQ实现定时任务(延时队列)环境准备需要在MQ中进行安装插件 地址链接插件介绍地址:https://www.
- Spark_SQL的UDF使用用户自定义函数,也叫UDF,可以让我们使用Python/Java/Scala注册自定义函数,并在SQL中调用。
- 实现消息队列的两种方式Apache ActiveMQ官方实例发送消息直接在Apache官网http://activemq.apache.or
- 前言最近遇到了这样一个工作场景,需要写一批dubbo接口,再将dubbo接口注册到网关中,但是当dubbo接口异常的时候会给前端返回非常不友
- Android权限Android安全架构规定:默认情况下,任何应用都没有权限执行对其他应用、操作系统或用户有不利影响的任何操作。这包括读写用
- Maven本地jar引用的实现方法有的时候需要在maven工程项目中引用本地的jar,pom.xml配置如下:<dependency&
- 流程如图:MainActivity 跳转至 MainActivity2 再跳转至 MainActivity3MainActivity3跳转至
- 写在前面 众所周知,kafka是现代流行的消息队列,它使用经典的消息订阅发布模式实现消息的流转,大部分代码结合kaf
- 启动Springboot项目时候报错java: 无法访问org.springframework.boot.SpringApplication
- 本文实例讲述了Java使用Jdbc连接Oracle执行简单查询操作。分享给大家供大家参考,具体如下:Java Jdbc 连接 Oracle
- 应用开发的时候,有时我们需要将一些图片进行预览,例如:相片管理的应用。这个时候用ListView的话就显得不是太合适了,因为Li
- 本文实例为大家分享了Java实现简单ATM机功能的具体代码,供大家参考,具体内容如下项目介绍基于大家使用银行卡在ATM机取款操作,进行相对应
- 本文实例讲述了Android编程之消息机制。分享给大家供大家参考,具体如下:一、角色描述1.Looper: 一个线程可以产生一个Looper
- 一、概念HttpClientAndroid 6中移除(API数量多扩展困难)。HttpURLConnection目前官方集成的。OKHttp
- Java读文件修改默认换行符Java默认换行符是'\n'。但有时数据并不以'\n'进行换行方法如下publi
- 目录前言实现思路实现方法最简单的实现方法如果多线程乱入?线程安全的单例模式Lock版本静态构造器版本Lazy版本总结前言Singleton是
- 1,编写一个程序,读取文件test.txt的内容并在控制台输出。如果源文件不存在,则显示相应的错误信息。 package src;impor
- 一、跨域认证的问题互联网服务离不开用户认证。一般流程是下面这样。1、用户向服务器发送用户名和密码。2、服务器验证通过后,在当前对话(sess
- 1 问题实现任意view经过自定义带4圆角或者2圆角的效果2 原理1) 实现view 4圆角我们只需要把左边的图嵌入到右边里面去,最终显示左