Mat*_*ley 4 language-agnostic data-processing
对于使用大量数据的"数字运算"风格的应用程序(读取:"数百MB,但不是GB",即它可以很好地适应操作系统旁边的内存),将所有数据读入内存是否有意义首先在开始处理之前避免在读取大型相关数据集时可能使程序IO绑定,而是从RAM中加载它们?
这个答案在使用不同的数据支持之间是否有所改变 也就是说,无论你使用的是XML文件,平面文件,完整的DBMS等,答案都是一样的吗?
你的程序和它的瓶颈一样快.如果可以提高整体性能,那么将数据存储在内存中是很有意义的.没有严格的规则表明它会提高性能.当你修复一个瓶颈时,新的东西就成了瓶颈.因此,解决一个问题可能会使性能提高1%或1000%,具体取决于下一个瓶颈.你正在改进的东西可能仍然是瓶颈.
我认为这些东西通常适合三个层次之一:
从中得出的教训是唐纳德·克努特(Donald Knuth)引用的"有些过度使用且经常引用错误"的说法,"过早的优化是所有邪恶的根源".渴望和过度渴望的解决方案增加了大量的复杂性,因此没有必要为那些不会产生有用益处的东西做这些.
程序员经常犯错误,在确定是否需要以及是否有用之前创建一些高度(据称)优化版本的东西.
我自己拿的是这样的:直到你不解决问题有一个问题.
归档时间: |
|
查看次数: |
681 次 |
最近记录: |