복붙노트

[SCALA] 스칼라 컴파일 속도 대 자바 컴파일 속도

SCALA

스칼라 컴파일 속도 대 자바 컴파일 속도

내가 좋아 잠시 내가 스칼라에서 프로그래밍을했지만 내가 짜증있어 한 점은 프로그램을 컴파일하는 데 걸리는 시간입니다. 그것은 작은 일처럼 보인다 있어요하지만 자바와 내가, 내 프로그램에 작은 변화를 만들어 실행 넷빈즈에서 버튼을 붐을 클릭 수, 그것은 실행중인, 시간 스칼라에서 컴파일을 통해 많은 시간을 소비하는 것 같다. 나는 많은 대형 프로젝트와 스크립팅 언어 때문에 컴파일이, 내가 자바를 사용했을 때 발생 보지 않았다 필요 걸리는 시간을 매우 중요하게 듣고.

하지만 난 그것을 이해, 빠르게 다른 컴파일 언어보다, 내가 스칼라로 전환 이유를 (그것은 매우 간단한 언어이다) 때문에 빠른 자바에서오고있다.

내가 물어보고 싶은게 그래서, 나는 스칼라 빠르게 컴파일하고 지금까지 scalac javac의 최대한 빨리 될 것입니다 수 있습니다.

해결법

  1. ==============================

    1.스칼라 컴파일러는 타입 추론, 암시 적 변환, 그리고 훨씬 더 강력한 타입 시스템을 제공, 자바의보다 정교한입니다. 내가 scalac 이제까지 javac의 한 빨리 것으로 기대하지 않을 것이다, 그래서 이러한 기능은 무료로 제공되지 않습니다. 이 작업을하는 프로그래머와 일을하는 컴파일러 사이의 트레이드 오프를 반영합니다.

    스칼라 컴파일러는 타입 추론, 암시 적 변환, 그리고 훨씬 더 강력한 타입 시스템을 제공, 자바의보다 정교한입니다. 내가 scalac 이제까지 javac의 한 빨리 것으로 기대하지 않을 것이다, 그래서 이러한 기능은 무료로 제공되지 않습니다. 이 작업을하는 프로그래머와 일을하는 컴파일러 사이의 트레이드 오프를 반영합니다.

    말했다 즉, 컴파일 시간은 이미 스칼라 2.7에서 스칼라 2.8에가는 눈에 띄게 개선, 나는 개선이 먼지가 2.8에 정착했다고 지금은 지속될 전망이다. 이 페이지는 스칼라 컴파일러의 성능을 향상시키기 위해 지속적인 노력과 아이디어의 일부를 설명합니다.

    마틴 오더 스키는 그의 대답에서 더 자세한 내용을 제공합니다.

  2. ==============================

    2.스칼라 컴파일러의 속도 (부족) 두 가지 측면이 있습니다.

    스칼라 컴파일러의 속도 (부족) 두 가지 측면이 있습니다.

  3. ==============================

    3.당신은 스칼라 컴파일 컴파일하는 데 시간이 더 자바보다 적어도 크기 순서 소요 알고 있어야합니다. 그 이유는 다음과 같습니다 :

    당신은 스칼라 컴파일 컴파일하는 데 시간이 더 자바보다 적어도 크기 순서 소요 알고 있어야합니다. 그 이유는 다음과 같습니다 :

  4. ==============================

    4.스칼라을 수행하는 가장 좋은 방법은 IDEA와 SBT와 함께입니다. (당신이 좋아하는 경우에, 당신을 위해 할 것이다) 및 자동 컴파일 모드 (명령 ~ 컴파일) 때 프로젝트 저장, SBT가 다시 컴파일됩니다에서 실행 초등학교 SBT 프로젝트를 설정합니다.

    스칼라을 수행하는 가장 좋은 방법은 IDEA와 SBT와 함께입니다. (당신이 좋아하는 경우에, 당신을 위해 할 것이다) 및 자동 컴파일 모드 (명령 ~ 컴파일) 때 프로젝트 저장, SBT가 다시 컴파일됩니다에서 실행 초등학교 SBT 프로젝트를 설정합니다.

    또한 IDEA에 대한 플러그 - 더 SBT의 사용과 실행 구성의 각에 SBT 동작을 첨부 할 수 있습니다. SBT 플러그인은 또한 당신에게 IDEA에서 대화 형 SBT 콘솔을 제공합니다.

    어느 쪽이든 (SBT 외부 실행 또는 SBT 플러그인), SBT 체류 프로젝트 get 및 구축에 사용하는 클래스가 실행 따라서 모두 "예열"과 JIT-ED 및 스타트 업 오버 헤드가 제거됩니다. 또한, SBT는 필요한 경우에만 소스 파일을 컴파일합니다. 그것은 스칼라 프로그램을 구축하기까지 가장 효율적인 방법입니다.

  5. ==============================

    5.스칼라-IDE (이클립스)의 최신 버전은 훨씬 더 증가 컴파일을 atmanaging 있습니다.

    스칼라-IDE (이클립스)의 최신 버전은 훨씬 더 증가 컴파일을 atmanaging 있습니다.

    "최고의 스칼라 빌드 시스템 무엇입니까?"를 참조 이상.

    스칼라 2 언어에 대한 빠른 오프라인 컴파일러 - - 다른 솔루션은 금융위원회를 통합하는 것입니다 IDE에서 빌더로 (이 블로그 게시물에 도시 된 바와 같이).

    그러나 직접적으로 이클립스하지만 다니엘 스피 웍이 코멘트에 언급과 같이

    마지막으로, 잭슨 데이비스는 의견을 생각 나게로 :

    SBT (단순 빌드 도구)는 또한 완벽하지, 향상된 증분 컴파일이 다가오는 0.9 SBT 버전의 작품 임에도 불구하고, (트리거 실행을 통해) "증가"편집의 어떤 종류를 포함한다.

  6. ==============================

    6.사용 FSC는 - 그것은 백그라운드 작업으로 앉아 모든 시간을 로딩을 필요로하지 않는 빠른 스칼라 컴파일러입니다. 그것은 이전의 컴파일러 인스턴스를 다시 사용할 수 있습니다.

    사용 FSC는 - 그것은 백그라운드 작업으로 앉아 모든 시간을 로딩을 필요로하지 않는 빠른 스칼라 컴파일러입니다. 그것은 이전의 컴파일러 인스턴스를 다시 사용할 수 있습니다.

    지원의 FSC 플러그인 넷빈즈의 스칼라 (문서 그렇게 말한다),하지만 난 그것을 작동하지 수 있는지 확실하지 않습니다. 플러그인 빌드 야간보십시오.

  7. ==============================

    7.당신은 스칼라 무료입니다 JRebel 플러그인을 사용할 수 있습니다. 당신이 종류의 "디버거 개발"수 JRebel은 항상 그 자리에서 변경된 클래스를 다시로드 것이다 그래서.

    당신은 스칼라 무료입니다 JRebel 플러그인을 사용할 수 있습니다. 당신이 종류의 "디버거 개발"수 JRebel은 항상 그 자리에서 변경된 클래스를 다시로드 것이다 그래서.

    나는 그가 implicits에 대한 검색이 있음을 말하는 마틴 오더 스키 자신에 의해 일부 문 선가 (컴파일러가해야 있는지가없는 더 모호성을 배제하기 위해 동일한 변환 암시 하나 하나보다) 바쁜 컴파일러를 유지할 수 있습니다. 그래서 신중하게 핸들 implicits에 좋은 아이디어가 될 수 있습니다.

    그것은 또한 100 % 스칼라하지만, 비슷한 수없는 경우, 당신은 코 틀린 시도를 줄 수 있습니다.

    - 올리버

  8. ==============================

    8.나는 확실히이 될 것입니다 해요 다운 투표를하지만, 매우 급속 돌아서는 항상 품질이나 생산성에 도움이되지 않습니다.

    나는 확실히이 될 것입니다 해요 다운 투표를하지만, 매우 급속 돌아서는 항상 품질이나 생산성에 도움이되지 않습니다.

    더 신중하게 생각하고 적은 개발 마이크로 사이클을 실행하는 시간을 가지십시오. 좋은 스칼라 코드 밀도와 (부수적 인 세부 사항과 복잡성에서 즉, 무료) 더 중요하다. 그것은 더 생각을 요구하고는 (적어도 처음에는) 시간이 걸립니다. 당신은 당신의 생산성과 작업의 질을 향상 개별적으로 좀 더하고 여전히 적은 코드 / 테스트 / 디버그주기를 잘 진행할 수 있습니다.

    요컨대 : 더 스칼라에 적합한 최적의 작동 패턴을 구한다.

  9. from https://stackoverflow.com/questions/3490383/java-compile-speed-vs-scala-compile-speed by cc-by-sa and MIT license