我正在研究一种耗时的计算算法,希望尽可能快地运行它。
操作系统(Windows或Linux)的存在会使得算法运行变慢吗?
是否有特别实现为运行预定义程序的“操作系统”示例?
我正在研究一种耗时的计算算法,希望尽可能快地运行它。
操作系统(Windows或Linux)的存在会使得算法运行变慢吗?
是否有特别实现为运行预定义程序的“操作系统”示例?
首先,我想介绍一下我也正在处理一个非常类似的主题费时的计算算法
!这里有很多共同点,或者只是巧合...
现在,让我们来看看答案的部分:
操作系统中的进程(正在运行的算法)的存在受到守护程序和其他可用用户程序的影响,这取决于操作系统所应用的调度算法。通常,守护程序始终在运行,并且一些与系统应用程序相关的进程会抢占其他低优先级进程(如果您的进程具有较低的优先级,则一般系统进程和守护程序会抢占所有其他进程)。操作系统(Windows或Linux)的存在本身并不会受到影响,因为内核是操作系统和所有进程和任务的管理器。因此,它们不会降低进程速度,但守护程序和系统进程比较繁重,确实会对您的程序产生重大影响。我也希望我们可以禁用所有守护程序,但它们只是为了操作系统的高效工作(如鼠标控制、电源效率等),总之...
举个例子,在Linux和Unix系统上,top
命令提供了实时处理器活动的持续查看。它显示了系统上最消耗CPU的任务
的列表。powerd
、moused
等,以及其他系统进程,如Xorg
、kdeinit4
等...这些都会影响用户进程!强烈计算算法
进程更多的内存!比例会更小,可能是八分之一,四分之一!!
根据评论更新:
如果您特别想在本地硬件上运行进程而无需操作系统的便利/安装——您有两个选择。
要么使用机器级语言、汇编语言或其他低级语言开发代码,这将直接在硬件上运行您的进程,无需操作系统管理内存部分和其他系统进程和守护程序!www.operatingsystems.stackexchange.com
——请去那里试试!我觉得你会得到更深入的细节。我会在那里关注你的问题,因为我已经是其中的一员! - Am_I_Helpful图示说明
当操作系统想要同时执行一些任务时,它不能一次性将处理器分配给所有任务。因为处理器一次只能处理一个操作,无法同时处理多个任务的处理。因此,操作系统以时间片轮换的方式在所有任务之间共享它。换句话说,每个任务只允许在其自己的时间片中使用处理器,并且在时间片结束时应将处理器交还给操作系统。
操作系统使用调度程序组件来选择和分派待处理的任务,以将处理器分配给它。不同操作系统之间的区别在于调度程序是如何工作的。简单地说,典型的调度程序做什么?
回答您的问题
操作系统(Windows或Linux)的存在(在其下运行算法)会使进程变慢多少,这取决于以下因素:尝试在单用户模式下启动。
来自debian-administration.org和debianadmin.com:
运行级别1被称为“单用户”模式。更恰当的描述应该是“救援”或“故障排除”模式。在运行级别1中,没有守护程序(服务)被启动。希望单用户模式能让您修复导致转换到救援模式必要的任何问题。
我猜“没有守护程序”并不完全正确,因为wiki.debian.org声称:
例如,可以配置守护程序仅在计算机处于单用户模式(运行级别1)或更常见的多用户模式(运行级别2-5)时运行。
但我想单用户模式肯定会关闭大部分守护程序。
这有点像是一个hack,但它可能对你有用。
Real
减去 User+Sys
(假设进程在单核上运行);请参考 https://dev59.com/4XRB5IYBdhLWcg3wroyB。但如果你对其他分析工具更有信心,可以随意使用它们。 - Ruud Helderman