我编写了一个程序来构建一个巨大的搜索树。因为我的树太大了,我预计我的程序将使用超过 40% 的 cpu。而不是这个我的程序使用不超过 10% 的 cpu 即使它以高优先级运行。
如果线程在并行运行时会使用更多的 CPU,请告诉我;我可以将我的程序划分为多个线程,我确实需要减少搜索时间。
谢谢!
最佳答案
instead of this my program uses not over 10 % of cpu
您有多少个处理器,您的操作系统如何测量这 10%,即如果您有 10 个处理器并且 100% 使用其中 1 个,某些操作系统将显示 10% 的使用率。
但是,如果您没有 100% 使用处理器,则需要找出原因。也许它在某种程度上受 IO/网络限制,而您的 IO 效率低下。您还提到它是“巨大的”,那是什么意思?如果您真的是说巨大,并且您用完了机器的所有内存并开始交换,性能就会下降,您需要找到更有效的算法/内存使用或获得更多内存。
i can divide my program in threads
如果您的 1 个线程没有充分利用 CPU,您可能不会从使用线程中获得任何好处。
关于c# - 我怎样才能让我的程序运行得更快 : Is using threads a solution?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4771124/