【发布时间】:2014-12-21 12:14:34
【问题描述】:
如果一个进程通过套接字将数据发送到同一台机器上的另一个进程,那么在传输过程中发生磁盘读/写的可能性有多大?似乎有一个套接字文件类型,如果有空闲内存,这些文件是否保证在内存中?
【问题讨论】:
-
您能详细说明您的设计和要求吗?
-
没有真正的具体设计。我正在尝试衡量像 pico 这样的平面文件 cms 与使用 redis 这样的全内存数据库的类似简单文件的性能。我记得几年前在一篇关于 winsock 的 MSDN 文章中读到它使用文件来实现 posix。至少那是我记得的,我有一个模糊的概念,也许磁盘写入可能发生在某些系统上。因为如果在 IPC 期间发生阻塞磁盘写入,那么就速度而言,任何数据库的游戏都结束了,即使整个事情都在内存中。
-
@Kaan 我建议您找到您的来源并再次阅读。你的记忆力似乎让你失望了。
-
我认为这个问题很值得回答,可惜人们没有看到这个。也许答案取决于操作系统。显然,在 Win32 中作为文件实现并不意味着它们是磁盘支持的文件。显然,没有人期望套接字 I/O 涉及磁盘 I/O。但也许 POSIX 规范有影响,也许有保证......现在已经很晚了,我在一个显然只有套接字的地方看到磁盘活动,我不知道我是否应该抓住巴赫的书或“4.4BSD OS 的设计”或 POSIX 规范......一个好的答案应该有书籍参考。