这几天开发后端,感觉程序开发就是一种时间换取空间 or 空间换取时间的游戏,最简单的例子就是生成缓存,很多时候把需要耗时的结果存为缓存,这样减少了时间但增加了空间,自己有时的服务器够强悍, CPU 和带宽都是顶配,但硬盘是小容量的 SSD 固态硬盘,所以就不用生成缓存,每次直接输出结果就行了,所以突然就有这么一个想法:时间===空间,刚刚网上去查了查时间和空间的论断,看到一篇文章: http://www.zhibeifw.com/fjgc/fjykx_list.php?id=7465 (篇幅较长)感觉说的很好,大家觉得是不是这么一回事
其实感觉计算机原理和宇宙都是相通的,比如知乎上一个回答: https://www.zhihu.com/question/20499013/answer/47162939
1
xjtlujoe 2016-11-30 09:39:50 +08:00
你是说能量守恒么?或者我的理解是羊毛出在羊身上。差不多的意思
|
2
misaka19000 2016-11-30 09:50:30 +08:00
这都什么和什么
缓存的发明来自于局部性原理 |
3
SoloCompany 2016-11-30 10:05:08 +08:00
当然不是
你这理论和「只要有足够长的时间,一只狗可以在打字机上打出来一首莎士比亚的完整的诗歌」有什么区别 再引申一下,随便一部电影,也能够在 pi 的若干 bit 上找到 |
4
SoloCompany 2016-11-30 10:06:19 +08:00
|
5
SilentDepth 2016-11-30 10:13:12 +08:00
在计算机理论内的很多情况下,时间和空间是可以互换,但不能说「时间 === 空间」,甚至不能说「时间 == 空间」。楼主对程序开发的感觉(主题第一句)是对的,但由此还不能引申出这么大的理论来。另外最后一句,与其说「计算机原理和宇宙都是相通的」,不如说它们遵守的都是相同的规则,这两种理解在出发点上有点微妙的区别
|
6
aitaii 2016-11-30 10:20:01 +08:00
按 规矩 来,如果人人或自然事物都遵守,就是 规律。
|
7
q397064399 2016-11-30 10:20:21 +08:00
时间换空间不是绝对的,
例如排序算法最优解就是 O(log n),你没办法通过空间来换取时间,因为这是信息论决定的 |
8
oisc 2016-11-30 10:25:02 +08:00
不要发明概念,时间就是时间。计算资源包括三种:并行时间、串行时间和空间三种.
|
9
woostundy 2016-11-30 11:17:51 +08:00
@q397064399 非比较排序可以突破,比如桶排序或者计数排序。
|
10
ryd994 2016-11-30 11:28:33 +08:00 via Android
恭喜楼主进入民科领域
你是不是还没有考虑一个很重要的维度:钱 很多时候我遇到的是:优化?优化啥?加钱上机器!你们几个人优化半个月,工资都够买机器了 |
11
SlipStupig 2016-11-30 11:56:35 +08:00
@SoloCompany 啊哈, bozo 算法
|
12
levn 2016-11-30 12:11:14 +08:00
“程序=算法+数据结构”
lisp “代码即数据 数据即代码” “整个宇宙其实只有一个电子” |
13
deeporist 2016-11-30 12:27:54 +08:00
从宇宙的角度来看时间和空间都不存在
|
14
Light3 2016-11-30 12:29:47 +08:00
让我想起了昨天那个在地铁上看见的运维..
那个运维说我在 ssd 装能比机械快百分之 60 的时间... 意思大概是为什么公司不全上 ssd.. |
15
metowolf 2016-11-30 12:50:21 +08:00
正所谓计算机学着学着就开始往玄学方面搞了
|
16
arzusyume 2016-11-30 13:14:49 +08:00
从北京到上海高铁要 4 小时,
不意味着北京到上海距离和 4 小时的时间是等价的 |
17
phoolean 2016-11-30 17:02:42 +08:00
当然不是,用多少缓存也无法将质因数分解问题的复杂度降到多项式级别
|
18
itfanr 2016-11-30 19:06:08 +08:00
哲学问题
|
19
polo2222 2016-11-30 19:54:28 +08:00
智障啊。。。。
|
20
lx1510 2016-11-30 20:31:42 +08:00
@arzusyume 您大概没懂楼主的意思吧,比如您的例子,北京到上海,针对高铁这一种交通方式,铁路局收费可以按空间距离计算,其实也可以按照乘车时间的倒数计算(然而它没有,虽然停站少高铁自身运营成本可以更低,部分乘客也可以少浪费时间,但铁路局毕竟要照顾到空间上的客观存在的利益,把自身利润最大化),导致从北京到上海的这些人更倾向于买乘车时间短的车票。可以说,空间距离“等价”于乘车时间的倒数
|
21
sgissb1 2016-11-30 20:57:26 +08:00
没太看懂,文字表达可能太抽象。
首先时间和空间不相等,也不能约等于,最多近似。因为 lz 你忽略了一个问题,生存缓存是加快时间,牺牲空间换时间没错,问题是如果不生成缓存,那么就能留住空间了吗?你提到的空间可能只是磁盘空间,而我说的空间是存储空间。 缓存这玩意不仅仅可以放到磁盘上,还能放到内存上,当某查询业务并发量到达 W 级时,为了节约空间哥几个不生成缓存,那么空间和时间一同会浪费起来。因为每次数据的重新生成不仅仅是要 cpu 时间,还需要内存空间,当并发量达到一定时,你就会发祥时间和空间都没了。 但如果在这个业务下,我们将缓存定时刷新,表面上浪费了一定的空间,但在较高的并发时,你会发现只是 cpu 读取同一份数据而已,不会占用其他太多余的空间。 |
22
onesuper 2016-12-01 10:49:11 +08:00
计算机中的空间是某种信息量的物理存储(比特位的反转),时间则是计算出相应状态的 CPU cycle 数量。
可以 trade one for another ,但不是等价关系 |
23
nozama 2016-12-01 11:24:54 +08:00
|
24
cabing 2016-12-01 13:58:40 +08:00
推荐阅读深入理解计算机原理
|