谈一点关于内存和性能

来源:互联网 发布:java文件上传下载 编辑:程序博客网 时间:2024/05/20 23:58

      今天读<编程珠玑>,里面有一章讲到了节省空间。里面引用了一句话:在系统及其软件方面,总是存在着相当严重的空间约束,如果同事对合理的效率和强大的能力提出要求,那么空间约束不仅具有经济上的意义,还会使设计更优雅一些。

      离职之前看过一段代码,关于闰年的计算的,作者将200年的天数记录在一个200个元素的数组里,第一眼看的时候,有点惊讶,然后笑了半天。然后老专家过来说,也许这样能提升性能呢?但是我想了半天还是觉得,这就是作者不知道怎么写这个函数,就初始化了这么大一个数组,好大一屏幕的数字。前几天读了深入理解计算机系统,重新回忆一下关于存储器方面的内容。不管怎么说,计算某一年的天数这个函数不可能被非常大量的访问,最多被访问n次,但是这n次的将会导致cache刷新2*n次,虽然cache刷新很快,但是依然会导致流水线中断,除非这个表能常驻cache。但是如果使用一个简单的函数,流水线不会中断,那么事实上效率不会有什么大的影响,甚至在某些环境下,性能会更高。(这是个人臆测,没试验证实过)。

     这里不管怎么说,都是因为写代码的人懒惰,结果就是代码很丑,而且性能未必好。个人觉得,如果确实这里是一个简单的公式没办法计算出结果的表格的话,那么可以多对数据分析一下,至少可以分成多个小的表格,每个表格分别用一个简单的函数映射结果。

原创粉丝点击