函数编程的数字压缩性能(使用java 8)
我主要使用C/Fotran/numpy进行一些数值/物理模拟,我使用Java(尤其是和)只是为了在代码原型化过程中获得一些实时交互 最近我读到了Java 8的新特性,即:函数编程的数字压缩性能(使用java 8),java,performance,functional-programming,numerical-methods,Java,Performance,Functional Programming,Numerical Methods,我主要使用C/Fotran/numpy进行一些数值/物理模拟,我使用Java(尤其是和)只是为了在代码原型化过程中获得一些实时交互 最近我读到了Java 8的新特性,即: Lambda表情(观看) 建议支持并行、异构计算(GPGPU、OpenCL)项目 对我来说,这似乎有点矛盾——函数编程和数值性能。也许这只是我的偏见 典型的论点如下: 函数样式声明使代码更易于并行化和 给予编译器比严格意义上更大的优化机会 顺序循环和可变数据类型 好的,从理论上讲这是有道理的,但在实践中,像haskell、
- Lambda表情(观看)
- 建议支持并行、异构计算(GPGPU、OpenCL)项目
- Java8中函数编程的期望。我是否应该关心并尝试了解我感兴趣的领域是否是性能关键的数字代码
- 使用函数构造而不是带循环的普通命令式代码是否会导致性能损失?(我的意思是在简单的任务中,比如质数测试,或者计算点积)
因此,您的问题的答案是:不,如果您对Java7和性能不感兴趣,那么您关心的不是编码的方便性
对于数字粉碎来说,它肯定会更有趣,但很难说它什么时候会出现在Java中(如果有的话)。我发现新的功能特性并不是最优化的方式,而是给老化的Java语言注入更多活力的一种方式。事实上,在我的工作环境中,我尽量避免使用函数语法,直到代码质量工具等能够解析它为止 使用函数特性很好,但是为什么不选择一种从函数开始的语言,比如Scala呢。或者至少是比Java更现代的东西,比如Ruby 当然,新语法很好,但仍然感觉像是在XML文件中编写yaml。它本身看起来不错,但也有点可笑,因为周围的一切都是老式的