scalacl plugin을 사용하는 데는 어떤 단점이 있습니까?배열 성능으로 스칼라 작업 수행 (scalacl 플러그인)
내 프로젝트에서 scala를 사용할 계획입니다. 나는 실행 시간을보기 위해 약간의 코드를 스칼라로 작성했다.
플러그인없이
은(1 to 1000000).map(1 + _).sum
1. 이런 식으로 컴파일 : 약 375 MS scalacl 플러그인으로
2에
BoxesRunTime.unboxToInt(((TraversableOnce)Predef..MODULE$.intWrapper(1).to(1000000).map(new MyScala..anonfun.1(), IndexedSeq..MODULE$.canBuildFrom())).sum(Numeric.IntIsIntegral..MODULE$));
실행
,639,637,259 MS
내가 생각할 수있는
30 %의 개선은 그리 많지 않습니다. 내 코드의 한 부분을 최적화했는데, 배열과 while 루프를 사용하여 100 배의 속도 향상을 얻었습니다. 관용적 인 스칼라는 정말로 느릴 수 있습니다. 예를 들어 복싱을 없애면 더 인상적인 것을 얻을 수 있습니다. – ziggystar
Btw,'Range # sum'은 이제 트렁크에서 최적화되어'O (n)'대신에 일정 시간'O (n)'에서 실행됩니다. 알고리즘 개선은 대부분의 경우에 선호됩니다. – soc