工程中发现引起的问题:

  结合别的朋友的意见,我的优化思路是:

    1、排查是否内存泄漏

        经过反复查询代码,未发现有内存泄漏(可以自己百度搜索C#内存泄漏的原因)。可以通过任务管理器分析是否有内存泄漏,打开任务管理器-性能-打开资源监视器,然后可以检查CPU、内存、磁盘、网络等信息

    2、排查是否有线程未关闭

        线程未关闭引起的话,开辟线程后在不用时记得

        thread.DisableComObjectEagerCleanup();
                      thread.Abort();

3、另外可以通过控制程序在那些个CPU中使用,从而避免打开不必要的CPU消耗。具体实现代码找度娘。

      参考:Process来控制主线程

      

 public static void SetProcess()
{
Process p = new Process();
p.StartInfo.FileName = System.IO.Directory.GetCurrentDirectory() + "\\Test.exe";
p.StartInfo.RedirectStandardError = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.UseShellExecute = false;
p.StartInfo.CreateNoWindow = true;
p.Start(); //设置CPU使用数,这里使用了CPU0和CPU1
p.ProcessorAffinity= (IntPtr)(0x0001 | 0x0002);
p.Close();
p.Dispose();
}

    4、CPU的使用率太高的话,线程上可以加上 时间间隔来减少分子,比如你的线程跑的速度是10秒每次和10毫秒每次效果上就完全就不同了(根据电脑的配置不同效果不一样的),或者直接用while(true);l来检测CPU的使用率更能直观看出。

    5、读完垃圾回收机制后,重写做一个垃圾回收处理。比如一个线程中1秒钟强制回收一次。这样处理后代码消耗内存基本稳定了,不会爆表。在没有内存泄漏的情况,推荐这种方式,暴力回收。

代码:

 /// <summary>
/// 获取为关联的进程分配的专用内存量(以字节为kb)。
/// </summary>
/// <returns></returns>
public static long ReadProcessMemory()
{
long usedMemory = ;
try
{
Process proc = Process.GetCurrentProcess();
usedMemory = proc.PrivateMemorySize64 / ;
}
catch (Exception ex)
{
Utils.Log.Log.DataExport("logs", ex.ToString());
}
return usedMemory;
}

  6、SetProcessWorkingSetSize,然后特别注意下https://blog.csdn.net/weixin_30607659/article/details/97205705与http://blog.sina.com.cn/s/blog_49f8960e0100081x.html的说法,现在内存消耗一直是以龟速慢慢增加,又要砸时间搞这事了 。看我C#垃圾回收机制详解https://www.cnblogs.com/wwj1992/p/8387360.html,搞到最后估计大家也会经放弃治疗了。最后 希望看完的朋友有啥好意见可以分享给我,谢谢。

      

分析CPU使用率不断增加的原因的更多相关文章

  1. 服务器CPU使用率高的原因分析与解决办法

    我们的服务器在使用操作系统的时候,用着用着系统就变慢了,打开“ 任务管理器 ”一看,才发现CPU使用率达到80%以上.这是怎么回事情呢?遇到病毒了吗?硬件有问题?还是系统设置有问题呢?在本文中将从硬件 ...

  2. MySQL CPU 使用率高的原因和解决方法

    用户在使用 MySQL 实例时,会遇到 CPU 使用率过高甚至达到 100% 的情况.本文将介绍造成该状况的常见原因以及解决方法,并通过 CPU 使用率为 100% 的典型场景,来分析引起该状况的原因 ...

  3. 找出程序cpu使用率高的原因

    确定是CPU过高 使用top观察是否存在CPU使用率过高现象 找出线程 对CPU使用率过高的进程的所有线程进行排序 ps H -e -o pid,tid,pcpu,cmd --sort=pcpu |g ...

  4. 交换机CPU使用率高的原因

    交换机CPU的功能 1.管理已配置的软件协议,例如: – 生成树协议(STP) – 路由协议,例如OSPF和EIGRP – 热备路由协议(HSRP) – 思科发现协议(CDP) – 端口聚合协议(PA ...

  5. 排查MongoDB CPU使用率高的问题

    1.公司业务调整,把一部分数据由Redis转至MongoDB,业务在测试环境正常,生产环境上线后发现压力一上来MongoDB的服务直接把CPU占满了,和开发的同学分析了一下也参考了一下百度上类似的问题 ...

  6. 查询执行成本高(查询访问表数据行数多)而导致实例 CPU 使用率高是 MySQL 非常常见的问题

    MySQL CPU 使用率高的原因和解决方法_产品性能_常见问题_云数据库 RDS 版-阿里云 https://help.aliyun.com/knowledge_detail/51587.html ...

  7. 理解Linux CPU负载和 CPU使用率

    CPU负载和 CPU使用率 这两个从一定程度上都可以反映一台机器的繁忙程度. cpu使用率反映的是当前cpu的繁忙程度,忽高忽低的原因在于占用cpu处理时间的进程可能处于io等待状态但却还未释放进入w ...

  8. 06 案例篇:系统的 CPU 使用率很高,但为啥却找不到高 CPU 的应用?

    上一节我讲了 CPU 使用率是什么,并通过一个案例教你使用 top.vmstat.pidstat 等工具,排查高 CPU 使用率的进程,然后再使用 perf top 工具,定位应用内部函数的问题.不过 ...

  9. 某个应用的CPU使用率居然达到100%,我该怎么做?(三)

    某个应用的CPU使用率居然达到100%,我该怎么做?(三) 1. 引 你们好,可爱的小伙伴们^_^! 咱们最常用什么指标来描述系统的CPU性能呢?我想你的答案,可能不是平均负载,也不是CPU上下文切换 ...

随机推荐

  1. Xcode无法退出,报错提示 The document “xxx.h” could not be saved. The file doesn’t exist.

    记录一个问题 场景:Xcode编辑一个工程时直接在工程内部修改了某个目录的文件夹名字,而后删除了其下的某 .h.m 文件 之后总是提示上述错误且无法强制退出Xcode,clean等操作基本没用 查找本 ...

  2. 解决uploadify插件不同浏览器下的兼容性问题

    http://www.thinkphp.cn/code/2138.html uploadify在部分浏览器上没法使用,或者各种报错的解决方法.uploadify插件上传图片是很爽的体验. 如果用chr ...

  3. 永久设置anaconda的环境变量

    安装anaconda后都显示install seccessful,可是输入anaconda 终端却显示“未找到命令” 原因是没有添加环境变量,按照如下方式将环境变量添加的安装路径下: emport P ...

  4. ajax的状态

    readyState:ajax对象的状态值,客户端与客户的交互过程 0:未初始化 1:已经调用了open方法 2:已经接收到响应头 3:已经接受了一部分数据(存在相应正文里) 4:已经接受了全部数据 ...

  5. jq操作class类

    https://www.cnblogs.com/sandraryan/ 鼠标移入移除切换样式 方法一: css .menu { color: green; } .active { color: red ...

  6. Fragment学习(二): 管理Fragment和Fragment通讯

    一. 管理Fragment 首先,如果你想在Android3.0及以下版本使用Fragment,你必须引用android-support-v4.jar这个包 然后你写的activity不能再继承自Ac ...

  7. Python--day70--ORM一对一表结构

    ORM一对一表结构:

  8. 蝶式套利(butterfly spread)

    多头蝶式套利.预期市场价格趋于稳定,希望在这个价格区间内能获利,可选用多头蝶式套利,以较低的议定价格买进一个看涨期权,又以较高的议定价格买进一个看涨期权,同时又以介于上述2个议定价格之间的中等的议定价 ...

  9. Python--day38--进程同步控制的---锁\信号量\事件的方法名

  10. 机器学习——集成学习之Boosting

    整理自: https://blog.csdn.net/woaidapaopao/article/details/77806273?locationnum=9&fps=1 AdaBoost GB ...