我今天一直在思考NodeJS及其对阻塞的态度,它让我思考,如果一块代码纯粹是非阻塞的,比如计算一些真正的长almairthm和变量都存在于堆栈等。是否应该将单核非超线程推送到CPU,因为Windows任务管理器将其定义为100%,因为它旨在尽快完成此任务?假设这通常是计算,可能需要几分钟。
答案 0 :(得分:5)
是的,它应该。该算法应该尽可能快地运行。如有必要,操作系统的工作就是安排时间到其他进程。
答案 1 :(得分:1)
如果您的非阻塞计算密集型代码不使用100%的CPU,那么您将在空闲任务中浪费周期。使用99%的CPU来查看空闲任务总是让我感到恼火。
答案 2 :(得分:0)
只要有一些需要它进行计算的CPU被“给予”其他进程,我认为没关系:为什么不使用CPU,如果它可用并且有一些工作要做?
答案 3 :(得分:0)
由于RAM可以分页到磁盘,因此所有应用程序都可能被阻止。如果算法使用的RAM多于系统上可用的RAM,则会发生这种情况。因此,它不会达到100%。