在使用C ++锁定互斥锁和执行磁盘读取之间,哪些通常更有效?
如果它取决于我正在运行的系统,有什么好办法检查这个?做100万次锁定和100万次磁盘读取会有效吗?
答案 0 :(得分:5)
通常,互斥操作远比磁盘读取更快。那是因为他们的预期目的需要最大的速度。事实上,我建议任何内存操作可能比磁盘操作更快。
当然,可能存在奇怪的边缘情况,其中磁盘信息被缓存在内存中 你一遍又一遍地读同一个字节,但这不是真正的磁盘读取,是吗?
如果你自己发现想要检查这个(我建议它不是真的有必要),只需编写几个程序,第一个锁定和解锁互斥锁一百万次,第二个从磁盘上读取数百万条不同的信息。
运行它们并进行比较。如果由于某些奇怪的因素,磁盘读取速度更快,请向我们展示您的代码,我们将解释您做错了什么: - )
答案 1 :(得分:4)
按远锁定互斥锁。即使是最快的SSD,RAM + CPU也要快得多。