内存和 CPU 优化器:它们是噱头吗?

内存和 CPU 优化器:它们是噱头吗?

是能够让你使用分析工具所有 CPU 核心还有那些能帮你恢复记忆的工具(暂时想不出有什么,但见过很多)是噱头吗?这些工具真的有用吗?

答案1

远离“内存优化器”。它们帮不了你。把内存管理留给操作系统吧!

以下列出了原因:http://www.t3chnophilia.com/2008/08/5-reasons-you-shouldnt-use-memory.html

答案2

内存优化器

曾经有一段时间,DOS 386/486 用户必须小心地手动优化其 config.sys 和 autoexec.bat 文件,以尽可能多地加载“高”(640K 以上)的内容。首先加载错误的内容可能会使其他所有内容占用您宝贵的 640K 应用程序空间。

后来出现了内存优化器,它可以自动帮你解决这些问题。当 Windows 95 将它们全部淘汰时,它们才真正发挥了作用并变得成熟。

系统优化器

速度优化器所做的其他事情包括清空垃圾箱、整理磁盘碎片、清理注册表、删除旧的安装日志、卸载不需要的驱动程序以及卸载旧程序的片段。

如果他们恰好在阈值处清理了某些东西,速度可能会大幅提升。通常不会。

正如您所猜测的,您可以自己完成所有这些事情,而无需花钱。

答案3

从您的用户名来看,我认为您和我一样是一名软件开发人员。

如果应用程序没有利用多线程,辅助应用程序将不会为您做任何事情。

如果您运行的是多线程应用程序,并且编写正确,Windows 中的线程调度算法将运行良好。此类程序的存在就是为了利用那些不知道内部情况的人。

几乎所有现代计算机都至少有两个处理器,通常称为“核心”。

应该是显而易见的,因为我们都知道核心和处理器是两个不同的东西。

答案4

我是一名开发人员,所以我将从 C/C++ 的角度回答这个问题。假设我正在编写一个 GUI 程序,并且没有在其中任何地方使用工作线程,CreateThread()那么它是单核的,你所做的一切都无济于事。如果我正在使用CreateThread()CreateProcess()那么我作为程序员可以尝试设置亲和性。我还可以设置调度优先级,尽管这些是基于以下描述的近似值:低、正常、高、低于正常、高于正常。实际的底层线程级别是 1-16(内核级代码为 17-32),但您无法直接映射到这些级别,只能根据调度程序计算将其放入一个容器中。我对如何控制我的线程没有更多的控制权。Windows Schedular 的内部结构在 Microsoft 之外并不为人所知,部分原因是 Microsoft 在 Windows 版本之间对其进行了更改,以确保它们始终处于系统使用率的首位并使事情尽可能顺利进行。

认为另一个应用程序会有所帮助的想法是荒谬的,除非它会破坏我的跨核心进程。如果不是在内核级别,这样做将非常困难,而且很可能会破坏应用程序。试图强制调度程序执行其他操作也是对 CPU 周期的浪费,因为您必须进行计算以加快速度,然后将其应用于线程和进程。

最后,您可以使用这些工具使您的系统更加不稳定。例如,防病毒扫描程序出于某种原因以低优先级运行。了解 Linux 下进程的良好度值(Windows 中的概念相同:基本上,如果进程占用资源,则认为它们不好。在 Linux 下,它们实际上会因为这种不良行为而获得更少的时间。在 Windows 下,它们只会占用资源并减慢一切速度)。因此,虽然程序应该能够应付,但您的工具可能会为进程提供比它们实际想要的更高的优先级,或者在它们需要时提供更低的优先级。

正如其他人所说,这最好留给操作系统。

相关内容