首页 > 其他分享 >8、.NET Core 实践 2024-03-29 11:44 CPU过高

8、.NET Core 实践 2024-03-29 11:44 CPU过高

时间:2024-03-29 12:00:00浏览次数:18  
标签:11 Core 00 Thread 03 System days Threading using

Windbg 指令记录

0:008> !runaway
 User Mode Time
  Thread       Time
    7:35c0     0 days 0:03:04.953
    8:111c     0 days 0:03:01.640
    6:4d30     0 days 0:02:57.281
    5:8424     0 days 0:02:52.640
    0:6fe8     0 days 0:00:00.031
    2:6c28     0 days 0:00:00.015
    4:6430     0 days 0:00:00.000
    3:7188     0 days 0:00:00.000
    1:4d0      0 days 0:00:00.000
0:008> ~8
.  8  Id: 6b50.111c Suspend: 0 Teb: 000000d0`f1d77000 Unfrozen
      Start: coreclr!Thread::intermediateThreadProc (00007ffb`e0c63440)
      Priority: 0  Priority class: 32  Affinity: fff
0:008> !clrstack
OS Thread Id: 0x111c (8)
        Child SP               IP Call Site
000000D0F2E7EDA0 00007ffb8117631b Sx.WinDbg.Program.StressCPU()
000000D0F2E7EE30 00007ffbe04a20eb System.Threading.ThreadHelper.ThreadStart_Context(System.Object) [/_/src/System.Private.CoreLib/src/System/Threading/Thread.CoreCLR.cs @ 44]
000000D0F2E7EE60 00007ffbe0499296 System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) [/_/src/System.Private.CoreLib/shared/System/Threading/ExecutionContext.cs @ 172]
000000D0F2E7EEE0 00007ffbe048553b System.Threading.ThreadHelper.ThreadStart() [/_/src/System.Private.CoreLib/src/System/Threading/Thread.CoreCLR.cs @ 93]
000000D0F2E7F0F8 00007ffbe0c76ca3 [GCFrame: 000000d0f2e7f0f8] 
000000D0F2E7F360 00007ffbe0c76ca3 [DebuggerU2MCatchHandlerFrame: 000000d0f2e7f360] 

对应的测试代码

using System;
using System.Diagnostics;
using System.Threading;

namespace Sx.WinDbg
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("CPU Stress Test");
            int numThreads = 4; // 可以根据需要调整线程数
            Thread[] threads = new Thread[numThreads];

            for (int i = 0; i < numThreads; i++)
            {
                threads[i] = new Thread(new ThreadStart(ThreadMatch.StressCPU));
                threads[i].Start();
            }

            Console.ReadLine(); // 等待输入以防止程序立即退出
        }

       
    }
}

 

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Text;
using System.Threading;

namespace Sx.WinDbg
{
    internal class ThreadMatch
    {
        internal static void StressCPU()
        {
            double result = 0;
            Stopwatch sw = new Stopwatch();

            while (true)
            {
                sw.Start();
                for (int i = 0; i < 1000000; i++)
                {
                    result += Math.Sqrt(i);
                }
                sw.Stop();

                // 大约计算1秒钟,以保持大约100%的CPU使用率
                if (sw.ElapsedMilliseconds < 1000)
                {
                    Thread.Sleep(1000 - (int)sw.ElapsedMilliseconds);
                }
            }
        }
    }
}

 

标签:11,Core,00,Thread,03,System,days,Threading,using
From: https://www.cnblogs.com/sunxi/p/18103497

相关文章

  • Acwing 1111. 字母
    https://www.acwing.com/problem/content/1113/#include<bits/stdc++.h>usingnamespacestd;typedeflonglongLL;typedefpair<int,int>PII;constLLMAXN=1e18,MINN=-MAXN,INF=0x3f3f3f3f;constLLN=200200,M=2020;LLn,m,maxn=1;charc[M][M];ma......
  • 前端学习-UI框架学习-Bootstrap5-011-徽章(Badges)
    菜鸟教程链接<template><divclass="containermt-3"><h3>徽章<spanclass="badgebg-success">new</span></h3><h3>药丸形状徽章<spanclass="badgebg-dangerrounded-pill">new</span&g......
  • EFCore
    《1》数据更新方法//方法1批量更新数据库数据,直接使用SQL语句ctx.Database.ExecuteSql($"UPDATE[T_Books]SET[Price]=[Price]+2");//方法2EFCore仍会为每个本书发送UPDATE语句,并且数据库必须单独执行每个语句......
  • LeetCodeHot100 动态规划 70. 爬楼梯 118. 杨辉三角 198. 打家劫舍 279. 完全平方
    70.爬楼梯https://leetcode.cn/problems/climbing-stairs/description/?envType=study-plan-v2&envId=top-100-likedpublicintclimbStairs(intn){if(n<=1)returnn;int[]dp=newint[n+1];dp[1]=1;dp[2]=2;......
  • 【NC23036】华华听月月唱歌
    题目华华听月月唱歌区间合并(注意边界),贪心思路贪心的区间合并因为是区间合并,所以我们先将区间从小到大排序,以方便合并,排序的时候还是按照区间左端点从小到大排序就行了。排好序之后我们得到类似下面这样的区间段:由于只是按左端点从小到大排序,所以当左端点相同时,......
  • Android 11.0 系统Settings横屏状态下wifi扫码不能识别功能修复
    1.前言在11.0的系统rom产品定制化开发过程中,在对于wifi扫描二维码的时候,可以看到相关的wifi信息,在竖屏的情况下不会有什么问题,但是如何在系统settings横屏的情况下扫描wifi的二维码的时候,发现识别不了,接下来就来分析下相关的wifi扫描相关流程,看如何实现相关功能2.系统Sett......
  • 【2024-03-28】吾日再省
    20:00要想养成某种习惯,那就去付诸行动。不想养成某种习惯,那就避而远之。要想改变一个习惯,那就做点别的事来取代它。                                                 —......
  • [幻灯片]软件需求设计方法学全程实例剖析-03-业务用例图和业务序列图
    DDD领域驱动设计批评文集做强化自测题获得“软件方法建模师”称号《软件方法》各章合集pdf已上传至本号的CSDN资源,或到以下地址下载:http://umlchina.com/training/umlchina_03_bm.pdf......
  • CorelDraw (CDR) VBA 实现导出贴图坐标
    创作上位机动画时,喜欢用Corel做画面设计,毕竟不管是亚控还是力控还是wincc,画图都太难受了.贴图动画要贴准的话,最好用坐标精确对齐.所以写了这段代码,用来把Corel中的坐标写入文本文件,做上位机画面时,就可以使用这些坐标进行贴图了.上代码1SubMacro1()2Di......
  • stm32f103c8t6学习笔记(学习B站up江科大自化协)-DMA
    DMA简介    ·DMA主要用于协助CPU完成数据转运的工作    ·DMA,英文全称DirectMemoryAccess,DMA这个外设是可以直接访问STM32内部存储器的,包括运行内存SRAM,程序存储器flash和寄存器等等,DMA都有权限访问,所以DMA能完成数据转运的工作    ·第二行的外......