সুতরাং স্কালার জাভা হিসাবে দ্রুত হওয়ার কথা। আমি কিছু প্রজেক্ট অলারের পুনর্বিবেচনা করছি সমস্যাগুলি দেখছি যা আমি জাভাতে মূলত মোকাবেলা করেছি। বিশেষত সমস্যা 5: "1 থেকে 20 পর্যন্ত সমস্ত সংখ্যার দ্বারা সমানভাবে বিভাজ্যতম ক্ষুদ্রতম ধনাত্মক সংখ্যাটি কী?"
এখানে আমার জাভা সমাধানটি রয়েছে, যা আমার মেশিনে সম্পূর্ণ হতে 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();
}
}
এখানে স্ক্যালায় আমার "সরাসরি অনুবাদ" রয়েছে, যা 103 সেকেন্ড সময় নেয় (147 গুণ বেশি সময়!)
object P005_JavaStyle {
val t:Int = 20;
def run {
var i = 10
while(!isEvenlyDivisible(i,t))
i += 2
println(i)
}
def isEvenlyDivisible(a:Int, b:Int):Boolean = {
for (i <- 2 to b)
if (a % i != 0)
return false
return true
}
def main(args : Array[String]) {
run
}
}
পরিশেষে এখানে ফাংশনাল প্রোগ্রামিংয়ে আমার প্রয়াস রয়েছে, যা 39 সেকেন্ড সময় নেয় (55 গুণ বেশি সময়)
object P005 extends App{
def isDivis(x:Int) = (1 to 20) forall {x % _ == 0}
def find(n:Int):Int = if (isDivis(n)) n else find (n+2)
println (find (2))
}
উইন্ডোজ 7 64-বিটে স্কেলা 2.9.0.1 ব্যবহার করা .1 আমি কীভাবে পারফরম্যান্সের উন্নতি করব? আমি কি ভুল কিছু করছি? নাকি জাভা কি খুব দ্রুত?
run
পদ্ধতিটির সময় নির্ধারণের চেষ্টা করেছেন ?