菜鸟请教有关程序运行时内存占用方面的问题

54phoenix 54phoenix 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
C#初学小白,请教几个问题,请前辈指点,多谢!
要写个程序持续的每秒ping一个IP用以监控网络,期间如果有没ping通的时候输出时间,用户结束程序时计算丢包率等。
源代码如下(做过简化),主要思路是通过timer计时器每秒调用theout方法,theout方法为ping指定IP
写完测试时发现有关内存方面的问题:
1.当ping1放在theout方法内,程序运行没有问题,但在.NET3.5下运行时内存会持续增加,而在4.0下运行内存则是不断循环变化,不知3.5和4.0为何有这区别?
2.当ping1放在theout方法外,如果从不丢包,则程序调试运行没问题,且不管是3.5还是4.0下运行内存都能维持在一个较低水平不变,貌似比较完美,但如果有ping不通的情况时就会出现调试错误,因为ping不通时该线程需要五秒左右才能结束,而下一秒一个新的线程又开始ping了,就会在“ping1.SendAsync("127.0.0.1", null);”这句报“异步调用已在进行中。必须先完成或者取消此调用,然后才能调用此方法。”错误(将IP改成任意ping不通的即可测试),不知这种情况有没有其他好的处理方法(当然不是1中的方法)。

内存变化情况如下:
框架_变量位置 开始运行时内存 运行1小时内存情况
3.5_in: 2,740K 240,000K左右,且一直持续增加,每秒增加几十K左右
3.5_out: 2,712K 3,400K,且几乎维持不变
4.0_in: 2,964K 循环变化,先每秒增加几十K到一定值(如31,000K)后回落(如4,700K),重复过程
4.0_out: 2,948K 3,580K,且几乎维持不变

源码如下:

using System;
using System.Collections.Generic;
using System.Text;
using System.Net.NetworkInformation;

namespace MemTest
{
class Program
{
Ping ping1 = new Ping();//如果将ping1放在theout方法外面,结果见3.5或4.0_out

static void Main(string[] args)
{
Program p1 = new Program();

System.Timers.Timer t = new System.Timers.Timer();
//订阅t.Elapsed事件发生时执行theout方法
t.Elapsed += new System.Timers.ElapsedEventHandler(p1.theout);
//间隔时间,毫秒
t.Interval = 1000;
//设置是执行一次(false)还是一直执行(true);
t.AutoReset = true;
//是否执行System.Timers.Timer.Elapsed事件;
t.Enabled = true;
Console.Read();
}

private void theout(object source, System.Timers.ElapsedEventArgs e)
{
//Ping ping1 = new Ping();//如果将ping1放在theout方法里面,结果见3.5或4.0_in
ping1.SendAsync("127.0.0.1", null);
}
}
}
...全文

相关推荐

TrintyCore菜鸟工具

用于T端简单修改配置文件使用。

jieshu

菜鸟成长手册2009——CPU-内存-硬盘篇 - 硬件知识精华

菜鸟成长手册2009——CPU-内存-硬盘篇 - 硬件知识精华菜鸟成长手册2009——CPU-内存-硬盘篇 - 硬件知识精华菜鸟成长手册2009——CPU-内存-硬盘篇 - 硬件知识精华菜鸟成长手册2009——CPU-内存-硬盘篇 - 硬件知识精华菜鸟成长手册2009——CPU-内存-硬盘篇 - 硬件知识精华菜鸟成长手册2009——CPU-内存-硬盘篇 - 硬件知识精华菜鸟成长手册2009——CPU-内存-硬盘篇 - 硬件知识精华菜鸟成长手册2009——CPU-内存-硬盘篇 - 硬件知识精华菜鸟成长手册2009——CPU-内存-硬盘篇 - 硬件知识精华菜鸟成长手册2009——CPU-内存-硬盘篇 - 硬件知识精华菜鸟成长手册2009——CPU-内存-硬盘篇 - 硬件知识精华菜鸟成长手册2009——CPU-内存-硬盘篇 - 硬件知识精华菜鸟成长手册2009——CPU-内存-硬盘篇 - 硬件知识精华菜鸟成长手册2009——CPU-内存-硬盘篇 - 硬件知识精华菜鸟成长手册2009——CPU-内存-硬盘篇 - 硬件知识精华菜鸟成长手册2009——CPU-内存-硬盘篇 - 硬件知识精华菜鸟成长手册2009——CPU-内存-硬盘篇 - 硬件知识精华

hbystudio

菜鸟浏览器

用来搜索qq空间背景音乐,输入搜索的qq,就可以知道qq空间的背景音乐

jqr123456w

菜鸟物流云平台商家授权.docx

菜鸟物流云平台商家授权指引,用于指导商家使用注册的商家菜鸟账号登录到物流云平台对ISV进行授权,授权完成后,商家将TOKEN复制给到ISV进行绑定。备注:Token的有效期为一年,Token到期后需商家对ISV进行重新授权。

norway23021

菜鸟数据中台技术演进

菜鸟数据中台是什么? 数据中台和数据平台区别是什么? 菜鸟怎么做数据中台? 怎么考核数据中台? 菜鸟数据中台技术演进的路程是什么? 菜鸟数据中台 和 阿里数据中台的区别是什么? 大家的疑问 数据中台解决什么实际问题?

日供一卒
评论 16
收藏 已收藏
分享
返回顶部
54phoenix
C# 111,128 成员 642,536 内容