cache 为什么翻译成缓存?

2020-12-29 22:08:39 +08:00
 yayiji

注意,我不是问缓存是什么意思或作用,而是翻译者何以翻译成缓存,这里的缓指的是什么,翻译者是从哪种角度考虑的。我有点无法把缓存的字面意思对应他的英文定义上。反而台湾的翻译“快取”则明白的多

Cache:A part of a computer's memory that stores copies of data that is often needed while a program is running. This data can be accessed very quickly.

4346 次点击
所在节点    问与答
40 条回复
Xusually
2020-12-29 22:20:04 +08:00
确实 cache 多数场景是你理解的这样。
但是在另一些场景,比如系统中要写数据到 HDD,数据从 RAM 往 HDD 写入的时候,会先标记写,依据不同的配置去 flush 脏页数据到 HDD 的 Cache,HDD 最终执行写入。

所以可能读写的时候 缓(冲)存(储) 的意思就出来了?
ruimz
2020-12-29 22:23:34 +08:00
个人以为缓存取自 cache 的第一个特性,因为只存常用的数据,所以存的慢,有选择;快取取自 cache 的第二个特性,读取的时候快。
DarkCat123
2020-12-29 22:25:19 +08:00
@Xusually 这种是不是应该叫 buffer?
Xusually
2020-12-29 22:31:08 +08:00
@DarkCat123 buffer 的核心是缓冲,不是存。

提供一个 in 和 out 的中间地带。Cache 有存储,cache 速度快。

buffer 没有说要快,可能甚至更慢。

摘自 wiki:

Buffers are often used in conjunction with I/O to hardware, such as disk drives, sending or receiving data to or from a network, or playing sound on a speaker. A line to a rollercoaster in an amusement park shares many similarities. People who ride the coaster come in at an unknown and often variable pace, but the roller coaster will be able to load people in bursts (as a coaster arrives and is loaded). The queue area acts as a buffer—a temporary space where those wishing to ride wait until the ride is available. Buffers are usually used in a FIFO (first in, first out) method, outputting data in the order it arrived.

Buffers can increase application performance by allowing synchronous operations such as file reads or writes to complete quickly instead of blocking while waiting for hardware interrupts to access a physical disk subsystem; instead, an operating system can immediately return a successful result from an API call, allowing an application to continue processing while the kernel completes the disk operation in the background. Further benefits can be achieved if the application is reading or writing small blocks of data that do not correspond to the block size of the disk subsystem, allowing a buffer to be used to aggregate many smaller read or write operations into block sizes that are more efficient for the disk subsystem, or in the case of a read, sometimes to completely avoid having to physically access a disk.
smdbh
2020-12-29 22:34:47 +08:00
我觉得没有为什么,汉化的第一波没有问题,后面人就沿用了
DarkCat123
2020-12-29 22:34:58 +08:00
@Xusually 非常感谢。
作为一个业余计算机考古学家,很喜欢这样的知识。
johnwood
2020-12-29 22:35:17 +08:00
“快取”更像一个动作,没体现出来“存”这个功能
Xusually
2020-12-29 22:38:19 +08:00
@johnwood @yayiji @DarkCat123 我甚至都觉得台湾翻译成 快取 有谐音的意思[ kæʃ ] “开市”。
also24
2020-12-29 22:48:09 +08:00
我翻看了一下 《计算机科学技术名词》( 2018 第三版)

实际上这里面 Cache 的翻译并不是 『缓存』,而是 『高速缓冲存储器』,定义为:
一种在主存储器与中央处理器之间、对程序员透明的快速小容量存储器。可用以改进存储器的有效传输率。

而它对 Buffer 的翻译是 『缓冲存储器』,定义为:
一种为匹配不同传输速率的数据而设置的存储区。可作为两种不同速度的存储器或两种计算机部件之间的同步装置,分为输入缓冲器和输出缓冲器。

而被叫做为『缓存』的是 caching,定义为:
为了减少客户端能感知到的访问延迟以及服务器 /网络负载,将频繁使用的数据储存在接近客户代理的技术。


我觉得这里实际上可以看到一点命名思路,实际上是把 Cache 当做一类特殊的 Buffer 来进行命名了。
既然如此,那对 Buffer 的『缓冲存储器』加上一些限定,起名 『高速 Buffer 』就好了。

然而这么长的名字,大家肯定不会喜欢啊,久而久之又简称为了『缓存』,这实际上也间接导致了在面对 Buffer 和 Cache 的时候,很容易出现混淆不清的情况。

由于暂时找不到前两版的相关文献,不太确定是否有其他的演化关系。
hx1997
2020-12-29 22:52:26 +08:00
更迷惑的是“高速缓存”这个词... 难道“缓”字在这里不是“慢”的意思?
johnwood
2020-12-29 22:59:26 +08:00
> Cache:A part of a computer's memory that stores copies of data that is often needed while a program is running. This data can be accessed very quickly.

@also24 这段定义引用自字典:oxfordlearnersdictionaries 。com,比较狭义。

“缓存”在硬件软件里都有,维基百科总结的比较全面:Cache_(computing)
Xusually
2020-12-29 22:59:39 +08:00
@hx1997 缓是 缓冲 的意思
johnwood
2020-12-29 23:01:56 +08:00
@hx1997 “缓”有延迟的意思
存更秒:本义是问候;引申为寄托或心中有某种想法,“存”与“在”同为“才”声字,故又通“在”,表示存在、生存。--百度百科
Xusually
2020-12-29 23:02:16 +08:00
@also24 wikipedia 上对于计算机领域内二者的意思和场景解释的比较详细,你可以参考一下,比你发的中文版的要明确。
特别是对于 buffer 的。buffer 并不是速度不匹配的缓冲。比如音频输出的信号,要去驱动喇叭,这块缓冲就叫 buffer 。
sagaxu
2020-12-29 23:03:57 +08:00
缓存是高速缓冲存储器的简写,一种场景是合并读取,把多次慢速数据源的读取变成 1 次,另一种场景是合并写入,比如多次更新一个计数器,定期刷入慢速数据源,这就是缓缓存之。
also24
2020-12-29 23:04:08 +08:00
@johnwood #11
可能你理解错我的意思了,如楼主所说,我这里主要还是想去寻找一下翻译者的思路,而不是这个词的原本含义。

技术名词的翻译,要么是大家自发统一,要么是国家层面定基调,考虑到 Cache 这个词应该是最早一批被翻译的。

《全国科学技术名词审定委员会》就是这样一个机构,目前 《计算机科学技术名词》已经出了三版,可以称作相应的标准。

我是希望通过查找这份标准中的详细描述,来推测一开始的翻译思路。
also24
2020-12-29 23:05:43 +08:00
@Xusually #14
如楼上所说,我这里并不是在讨论这个词的真正含义,选择这份文献是因为这份文献类似『国家标准』。

楼主在发帖时也强调了 『不是问缓存是什么意思或作用,而是翻译者何以翻译成缓存』,更侧重于寻找到这样翻译的原因。
also24
2020-12-29 23:10:08 +08:00
@Xusually #14
另外补充一下,我这里引用的是 《计算机科学技术名词》。

你提到的音频信号的例子,可能和 《通信科学技术名词》中对 buffer memory 的定义有些类似:
通过临时存储,能使数据在具有不同传递特性的两个功能单元之间传递的专用存储器或存储区。
sagaxu
2020-12-29 23:11:20 +08:00
@also24 翻译的不同,更多的是偶然性,还有就是译者的文化经历。外婆和姥姥都统一不了,更别说架空的外来词的翻译了。有用音译的,比如马赛克,麦克风,还有完全忽略字面意思的,比如飘翻译成乱世佳人。
eason1874
2020-12-29 23:12:42 +08:00
@hx1997 #10 缓不一定是慢,也有放松的意思——缓和、缓解、缓冲。

Cache 高速缓冲存储器,缓存。我一开始就理解为:为减缓读写压力设置的存储器,能提高读取效率。我一直觉得很形象。直到几年前看到有人质疑这个翻译,当时他也是说缓不就是慢吗,我才发现,原来还有人这么理解。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/740142

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX