函数式编程千方百计的让信息和信息的处理聚集在一起,避免信息污染到各处的流程。函数式编程非常适合现代的硬件环境,使用函数式编程在很大程度上会增加对存储空间的需要,但是一方面现代计算机存储空间大增,另一方面这种处理的稳定性易于早期发现问题,同时非常有利于对数据进行并行的处理。并行处理大大提升了数据的处理效率,如果最终的结果需要汇总,那么也可以分块处理数据,最终再进行汇总。这样的处理大量数据的性能压力就可以用使用更多处理管道的方式简单的对付,系统具有极好的弹性。这种方式可以大大强化并行计算的特点,发挥出现代计算环境的优势,是非常符合现代编程潮流的。
在这个思路中计算机系统对信息的处理基本原则非常简单,就是重视数据流,这包括重视数据的分布,重视数据的处理步骤。系统通过合理的规划数据流的结构,达到更高的设计性能。一般来说,数据总是在信息系统里面不断流动的,在这个流动的过程里面那里成为了处理的瓶颈,就需要给这个位置提升处理能力,把数据的处理逻辑部署在这里,对外只传递数据处理的结果,从而降低系统的压力。总体看,不断的研究数据的流动模式,找到高负载的位置,然后提升这里的处理能力,或者把数据设法进行压缩都可以让整个系统的处理能力得到提升。典型的数据流动过程就是两种,一种是串行结构,就是一步做完,再做下一步;另外一种是并行结构,就是数据处理之间互不相干,可以同时进行。整个数据处理结构的设计就是不断的从处理的过程里面挖掘出能够并行的部分,并行的越多,处理的效率就越高。
从上面的分析也明显看出一点,就是信息系统的设计,必须要有一套性能度量系统,没有这个,那么让信息系统不断提升效能就没有了方向,很多时候,我们甚至可以说效能度量系统是信息系统的最基本的部分。和现实世界比较,这套测量系统就是我们对信息系统进行测量和交互的系统,这里又回到了我们和现实系统的交互模式,一切从测量开始,有了测量能够干预,我们才真正了解了这个系统。常见的测试指标是记录每个记录的处理时间,查看这其中处理时间最长的作为系统的性能指标。另外一个常见指标是计算单位时间内系统处理的数据量的多少,反应系统的处理效能。
通过的不断深入分析处理的步骤,函数式开发往往可以把处理的步骤提取出来,形成配置数据。这样每个步骤之间也变得相互独立,可以灵活的搭配了。这种灵活性使得函数式软件的处理管道是高度的灵活,可定制的。各种参数