首页 新闻 会员 周边 捐助

asp.net core mvc编写的程序,CPU时不时的会跑到100%

0
悬赏园豆:20 [已解决问题] 解决于 2017-04-21 16:26

asp.net core mvc+entity framewrok/dapper.net 编写的程序,总会出现CPU过高的情况,可是看代码也没有找到什么问题,比如类似死循环的,不知道大家有没有遇到过类似的问题,希望大家能指点一下。谢谢

另外,使用asp.net webapi(.net framework不是.net core)编写的程序也出现过这样的情况,难道是跟服务器环境有关吗,很费解。

杜现鹏的主页 杜现鹏 | 菜鸟二级 | 园豆:206
提问于:2017-04-20 17:29
< >
分享
最佳答案
1

有没有在同步方法中调用异步方法?

收获园豆:20
dudu | 高人七级 |园豆:29737 | 2017-04-20 21:02

确实有这样的情况

杜现鹏 | 园豆:206 (菜鸟二级) | 2017-04-21 15:36

@杜现鹏: 千万千万不要在同步方法中调用异步方法!参考 又踩.NET Core的坑:在同步方法中调用异步方法Wait时发生死锁(deadlock)

dudu | 园豆:29737 (高人七级) | 2017-04-21 15:41

@dudu: 谢谢,确实程序会在高并发情况下出现,并发低的时候倒不出现,我先调整下代码,看看效果

杜现鹏 | 园豆:206 (菜鸟二级) | 2017-04-21 15:55

@dudu: 我刚在网上查询死锁的问题,有人回复说死锁并不会造成CPU使用过高,不知道这个理论对不对

杜现鹏 | 园豆:206 (菜鸟二级) | 2017-04-21 15:57

@杜现鹏: .NET Core 中的这个死锁会锁住整个线程池,随之会创建越来越多的线程,随着线程数的增加,CPU的消耗也会增加,我们也实际遇到过,详见 .NET Core中遇到奇怪的线程死锁问题:内存与线程数不停地增长

dudu | 园豆:29737 (高人七级) | 2017-04-21 16:08

@dudu: 谢谢您的指点

杜现鹏 | 园豆:206 (菜鸟二级) | 2017-04-21 16:25
其他回答(2)
0

用了快半年了没出现过这情况

Jeffcky | 园豆:2789 (老鸟四级) | 2017-04-20 18:37
0

代码的问题,就我们这些coder,一辈子可能就能碰到一两个bug,那也是下半辈子的事儿。微软不是虚的。

codingHeart | 园豆:1511 (小虾三级) | 2017-04-20 19:21
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册