在c++中锁定互斥锁和读取磁盘之间,通常更有效?
如果这取决于我正在运行的系统,检查这个的好方法是什么?100万个锁和100万次磁盘读取是否有效?
一般来说,互斥锁的操作要比读磁盘快得多。这是因为它们的预期用途需要最大速度。实际上,我敢说,任何内存操作都可能比磁盘操作快。
当然,可能会有奇怪的边缘情况,磁盘信息缓存在内存中你一遍又一遍地读取同一个字节但这并不是真正的磁盘读取,对吧?
如果你发现自己想要检查这一点(我建议这不是真正必要的),只需编写几个程序,第一个程序锁定和解锁互斥锁一百万次,第二个程序从磁盘上读取一百万条不同的信息。
运行它们并比较它们。如果,由于某些奇怪的因素,磁盘读取返回得更快,请向我们展示您的代码,我们将解释您做错了什么:-)
锁定互斥锁,by far。RAM + CPU 比最快的SSD快得多