• 请不要在回答技术问题时复制粘贴 AI 生成的内容
alwayshere
V2EX  ›  程序员

从计算机角度来推断,时间是不是就是空间?

  •  
  •   alwayshere · Nov 30, 2016 · 5559 views
    This topic created in 3631 days ago, the information mentioned may be changed or developed.

    这几天开发后端,感觉程序开发就是一种时间换取空间 or 空间换取时间的游戏,最简单的例子就是生成缓存,很多时候把需要耗时的结果存为缓存,这样减少了时间但增加了空间,自己有时的服务器够强悍, CPU 和带宽都是顶配,但硬盘是小容量的 SSD 固态硬盘,所以就不用生成缓存,每次直接输出结果就行了,所以突然就有这么一个想法:时间===空间,刚刚网上去查了查时间和空间的论断,看到一篇文章: http://www.zhibeifw.com/fjgc/fjykx_list.php?id=7465 (篇幅较长)感觉说的很好,大家觉得是不是这么一回事

    其实感觉计算机原理和宇宙都是相通的,比如知乎上一个回答: https://www.zhihu.com/question/20499013/answer/47162939

    24 replies  •  2016-12-01 13:58:40 +08:00
    xjtlujoe
    xjtlujoe
    Nov 30, 2016
    1
    你是说能量守恒么?或者我的理解是羊毛出在羊身上。差不多的意思
    misaka19000
    misaka19000
    Nov 30, 2016
    2
    这都什么和什么

    缓存的发明来自于局部性原理
    SoloCompany
    SoloCompany
    Nov 30, 2016
    3
    当然不是
    你这理论和「只要有足够长的时间,一只狗可以在打字机上打出来一首莎士比亚的完整的诗歌」有什么区别
    再引申一下,随便一部电影,也能够在 pi 的若干 bit 上找到
    SoloCompany
    SoloCompany
    Nov 30, 2016
    4
    SilentDepth
    SilentDepth
    Nov 30, 2016
    5
    在计算机理论内的很多情况下,时间和空间是可以互换,但不能说「时间 === 空间」,甚至不能说「时间 == 空间」。楼主对程序开发的感觉(主题第一句)是对的,但由此还不能引申出这么大的理论来。另外最后一句,与其说「计算机原理和宇宙都是相通的」,不如说它们遵守的都是相同的规则,这两种理解在出发点上有点微妙的区别
    aitaii
    aitaii
    Nov 30, 2016
    6
    按 规矩 来,如果人人或自然事物都遵守,就是 规律。
    q397064399
    q397064399
    Nov 30, 2016
    7
    时间换空间不是绝对的,
    例如排序算法最优解就是 O(log n),你没办法通过空间来换取时间,因为这是信息论决定的
    oisc
    oisc
    Nov 30, 2016
    8
    不要发明概念,时间就是时间。计算资源包括三种:并行时间、串行时间和空间三种.
    woostundy
    woostundy
    Nov 30, 2016
    9
    @q397064399 非比较排序可以突破,比如桶排序或者计数排序。
    ryd994
    ryd994
    Nov 30, 2016 via Android
    10
    恭喜楼主进入民科领域
    你是不是还没有考虑一个很重要的维度:钱
    很多时候我遇到的是:优化?优化啥?加钱上机器!你们几个人优化半个月,工资都够买机器了
    SlipStupig
    SlipStupig
    Nov 30, 2016
    11
    @SoloCompany 啊哈, bozo 算法
    levn
    levn
    Nov 30, 2016
    12
    “程序=算法+数据结构”
    lisp “代码即数据 数据即代码”
    “整个宇宙其实只有一个电子”
    deeporist
    deeporist
    Nov 30, 2016
    13
    从宇宙的角度来看时间和空间都不存在
    Light3
    Light3
    Nov 30, 2016
    14
    让我想起了昨天那个在地铁上看见的运维..
    那个运维说我在 ssd 装能比机械快百分之 60 的时间...
    意思大概是为什么公司不全上 ssd..
    metowolf
    metowolf
    Nov 30, 2016
    15
    正所谓计算机学着学着就开始往玄学方面搞了
    arzusyume
    arzusyume
    Nov 30, 2016
    16
    从北京到上海高铁要 4 小时,
    不意味着北京到上海距离和 4 小时的时间是等价的
    phoolean
    phoolean
    Nov 30, 2016
    17
    当然不是,用多少缓存也无法将质因数分解问题的复杂度降到多项式级别
    itfanr
    itfanr
    Nov 30, 2016
    18
    哲学问题
    polo2222
    polo2222
    Nov 30, 2016
    19
    智障啊。。。。
    lx1510
    lx1510
    Nov 30, 2016
    20
    @arzusyume 您大概没懂楼主的意思吧,比如您的例子,北京到上海,针对高铁这一种交通方式,铁路局收费可以按空间距离计算,其实也可以按照乘车时间的倒数计算(然而它没有,虽然停站少高铁自身运营成本可以更低,部分乘客也可以少浪费时间,但铁路局毕竟要照顾到空间上的客观存在的利益,把自身利润最大化),导致从北京到上海的这些人更倾向于买乘车时间短的车票。可以说,空间距离“等价”于乘车时间的倒数
    sgissb1
    sgissb1
    Nov 30, 2016
    21
    没太看懂,文字表达可能太抽象。

    首先时间和空间不相等,也不能约等于,最多近似。因为 lz 你忽略了一个问题,生存缓存是加快时间,牺牲空间换时间没错,问题是如果不生成缓存,那么就能留住空间了吗?你提到的空间可能只是磁盘空间,而我说的空间是存储空间。

    缓存这玩意不仅仅可以放到磁盘上,还能放到内存上,当某查询业务并发量到达 W 级时,为了节约空间哥几个不生成缓存,那么空间和时间一同会浪费起来。因为每次数据的重新生成不仅仅是要 cpu 时间,还需要内存空间,当并发量达到一定时,你就会发祥时间和空间都没了。

    但如果在这个业务下,我们将缓存定时刷新,表面上浪费了一定的空间,但在较高的并发时,你会发现只是 cpu 读取同一份数据而已,不会占用其他太多余的空间。
    onesuper
    onesuper
    Dec 1, 2016
    22
    计算机中的空间是某种信息量的物理存储(比特位的反转),时间则是计算出相应状态的 CPU cycle 数量。

    可以 trade one for another ,但不是等价关系
    nozama
    nozama
    Dec 1, 2016
    23
    我也思考过这个问题。我觉得:是。

    @q397064399 假如用多线程来排序,某种角度上,就可以认为是“空间换时间”。用 cpu 的空间、 Ram 的空间 来换取宏观上的时间。
    cabing
    cabing
    Dec 1, 2016
    24
    推荐阅读深入理解计算机原理
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2653 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 60ms · UTC 04:10 · PVG 12:10 · LAX 20:10 · JFK 23:10
    ♥ Do have faith in what you're doing.