V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
alwayshere
V2EX  ›  程序员

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

  •  
  •   alwayshere · 2016-11-30 09:35:41 +08:00 · 4404 次点击
    这是一个创建于 2916 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

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

    可以 trade one for another ,但不是等价关系
    nozama
        23
    nozama  
       2016-12-01 11:24:54 +08:00
    我也思考过这个问题。我觉得:是。

    @q397064399 假如用多线程来排序,某种角度上,就可以认为是“空间换时间”。用 cpu 的空间、 Ram 的空间 来换取宏观上的时间。
    cabing
        24
    cabing  
       2016-12-01 13:58:40 +08:00
    推荐阅读深入理解计算机原理
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2948 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 14:17 · PVG 22:17 · LAX 06:17 · JFK 09:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.