相关疑难解决方法(0)

如何优化Scala中的for-understanding和循环?

所以Scala应该和Java一样快.我正在重新审视我最初用Java解决的Scala中的一些Project Euler问题.具体问题5:"从1到20的所有数字均可被整除的最小正数是多少?"

这是我的Java解决方案,在我的机器上完成需要0.7秒:

public class P005_evenly_divisible implements Runnable{
    final int t = 20;

    public void run() {
        int i = 10;
        while(!isEvenlyDivisible(i, t)){
            i += 2;
        }
        System.out.println(i);
    }

    boolean isEvenlyDivisible(int a, int b){
        for (int i = 2; i <= b; i++) {
            if (a % i != 0) 
                return false;
        }
        return true;
    }

    public static void main(String[] args) {
        new P005_evenly_divisible().run();
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我对Scala的"直接翻译",需要103秒(147倍!)

object P005_JavaStyle {
    val t:Int = 20;
    def run {
        var …
Run Code Online (Sandbox Code Playgroud)

java performance for-loop scala while-loop

131
推荐指数
5
解决办法
2万
查看次数

Haskell,Scala,Clojure,如何选择高性能模式匹配和并发

在阅读了很多关于FP的并发执行和性能优势的博客和帖子后,我最近开始研究FP.我对FP的需求在很大程度上受到我正在开发的应用程序的影响.我的应用程序是一个基于状态的数据注入到另一个子系统,其中时间非常关键(接近每秒200万个事务).我有几个这样的子系统需要测试.我正在认真考虑使用FP来实现其并行性,并希望采用正确的方法,SO上的许多帖子都谈到了Scala,Haskell和Clojure wrt语言结构,库和JVM支持的缺点和优点.从语言的角度来看,我可以学习任何语言,只要它能帮助我实现结果.

某些帖子支持Haskell进行模式匹配和语言简单,基于JVM的FP lang在使用现有Java库方面具有很大的优势.JaneStreet是OCAML的重要支持者,但我真的不确定OCAML的开发者支持和帮助论坛.

如果有人处理过这么大的数据,请分享您的经验.

ocaml haskell programming-languages scala clojure

41
推荐指数
2
解决办法
4万
查看次数