我刚刚安装了 dot tracer 来监控我编写的一个巨大的自助服务亭管理器应用程序,现在正在解决它的性能问题。该解决方案由近 40 个不同的项目组成,这些项目由主程序集加载(取决于客户的要求),主程序集是在运行时使用反射的 WPF 可执行文件。
在具有 3 GB RAM 和显卡(6% - 12% 的 CPU 使用率,80 MB 的 RAM 和 20% - 40% 的 GPU 使用率)的 3 GHz 机器上,性能是完全可以接受的,但是 3 天前我运行了它在其中一个客户端的非常弱的机器(0.6 GHz CPU,1 GB RAM 和无显卡)上,CPU 使用率高于 60%,所以我想去寻找瓶颈所在!无论如何,点跟踪器告诉我大部分时间都花在等待上(主要是Thread.Sleep
部分),因为我的应用程序有不同的线程在某些循环中等待某些东西(即套接字上的传入消息、设备上的按键等)。 ) 即将发生。
那么,我的应用程序正在使用它是不是很糟糕Thread.Sleep()
?我还有其他选择吗?
这是测试结果: