所以我在C#中做了一个暴力攻击者,我做了一些研究,因为我希望它更快,现在我想知道为什么程序运行速度不如计算机允许的那样快?我的意思是,我知道你拥有的计算机越好,程序运行速度越快/越好,但运行程序占用CPU的25%,仍有60%可用。
虽然我知道如果允许程序使用最大CPU功率(除非有限制器),它可能会造成严重破坏,为什么他们不这样做呢?一个例子是下载,如果你下载了一件东西,你可以获得全速下载,但是如果你一次下载两件东西,它就会减少一半,然后一起下载。
此外,如何让我的程序获得更好的性能(不是代码,而是它们运行的实际速度)?
答案 0 :(得分:3)
因为有多种因素限制了速度。通过下载(根据您的示例),它通常是网络连接,而不是CPU。其他因素包括磁盘负载,内存负载等。
对于CPU密集型工作,您仍然受限于单个CPU核心可以执行的操作。您可以构建使用多个线程和CPU内核的软件来划分工作并充分利用可用的CPU功率,但这需要额外的工作,这并不是每个人都有兴趣做的工作。
如果您希望快速划分工作,请查看TPL(Parallel.ForEach
等方法)。