手机软件吧 关注:526,580贴子:5,450,397
  • 1回复贴,共1

手机软件阿达姆定律

只看楼主收藏回复

在需要执行一系列的任务时,我们就会想起阿姆达尔定律。这条定律告诉我们,仅通过加速某一项任务而获得的整体速度提升有硬性限制。
假设把水烧开需要10分钟,然后煮面条也需要10分钟。即便你找到一种方法加快烧开水的速度,做饭的时间也不会少于10分钟。任凭炉子再旺,也不可能将做饭的速度提高到两倍。
该定律的数学公式为:假设某件事的总时间比为p,则你永远无法获得大于1/(1 – p)的加速比。假设这部分工作占用了90%的时间,即p = 0.90,在优化的过程中,如果将这部分的时间降至0,则整体的工作速度将提高1/(1 – 0.90) = 10倍。
阿姆达尔定律的关键在于,你能够获取的最大速度提升受限于优化的工作所占的比例。
造成编程工作难度非常大的原因有很多。简单来说,我们可以认为这是由于我们需要处理的工作必须按照一定的顺序完成。毕竟人类 m不是很擅长同时处理多项任务。在某个时间点,你可能在使用构建工具、阅读文档、编写代码或参加会议。当然你也有可能在开会的时候忘我地写代码,但你只能做一样工作,无法同时兼顾写代码和开会。因此,我们可以应用阿姆达尔定律,假设你能设法将构建时间降至0,但项目的整体速度也只能加快一点点。你的工作效率仍然会受到其他因素的限制。
曾经,将程序转化成计算机可以运行的代码非常困难。很久以前,我们甚至需要将程序转换成1和0,然后不厌其烦地将其输入到计算机。我不知道这中间需要花费多少时间,但我们可以假设这项工作占据了90%的编程时间。这意味着,如果我们能找到一种更好的办法(比如Python)告诉计算机干什么,就可以将编程效率提高10倍之多。
然而,如今我们的编程语言越来越好了,告诉计算机干什么的时间也越来越少了,将程序转化成代码也不需要花费90%的时间了。假设现在我们只需要10%的时间。这意味着,如今即便将这部分工作的时间降至0,也只能提高1.11倍的效率。效率提升比以前减少了81倍。
这是因为其余90%的软件开发工作都是非常艰巨的任务,即便编程语言再好也无法(直接)减轻我们的负担。


IP属地:河南来自Android客户端1楼2022-05-10 20:26回复
    什么吗


    IP属地:河南来自Android客户端3楼2022-05-11 00:35
    回复