CPU通俗演义及代码级性能优化实例分析
道理跟前面一个是一样的,还是那个存储金字塔。如果你的程序有很多对磁盘的访问,性能通常不会好到那去。通常的方法是使用内存作为缓存。在磁盘方面性能优化最经典的例子恐怕就是文件系统的页缓存了。也就是文件系统写入的数据不会马上写到磁盘,而是先写到缓存(内存)中。而读数据的时候则是通过预读机制提前将数据读入内存,文件系统从内存读数据,而不是从磁盘。由于内存的性能是机械磁盘的十万倍以上,因此文件系统的性能得以大大提高(这里有场景限制,我们后面再详细介绍)。 另外一个经典案例还是文件系统相关的,这个就是Linux的虚拟文件系统(VFS)。我们知道文件系统每个文件都对应着一个inode,而inode也是存储在磁盘上的。如果我们要打开一个文件,首先需要从磁盘找到inode,然后读取到内存,然后才能进行后续的读写操作。 在VFS中,在文件打开的时候,VFS会将inode放入一个内存中的哈希表中,而且在关闭文件的情况下并不释放。这样,当应用程序再次打开文件的时候就可以直接从内存找到该inode,而不用重新读磁盘了。 上面这些都是特例,大家要融会贯通,希望对大家的软件设计有所帮助。最后,性能优化本质,还是那一句话,尽量少的使用计算资源,尽量多的用金字塔顶部的部件存储要访问数据。 【编辑推荐】
点赞 0 (编辑:西安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |