나는 Clojure를 배우는 C++ 프로그래머이고 자바에 대한 경험이 부족하다. 지금, 나는 도서관에서 하나의 기능을 참조 Clojure의 프로그램이 있습니다 사용되지 않는 기능을 제거합니다 C/C++ 링커에서Clojure (JVM) : 라이브러리 링크하기 (참조)
(ns app.main
(:gen-class)
(:require [clojure.string :refer [join]))
...
;; Code using join
...
을, 그래서 라이브러리에서 단일 함수를 참조 할 상당한 오버 헤드가 없다. JVM/Clojure 세계에서는 어떤 일이 발생합니까? 그것은 Clojure 컴파일러 특정 또는 JVM 일반 있습니까? 결과 바이너리는 clojure.string
의 모든 기능을 포함합니까, 아니면 방금 사용 했습니까?
결과 바이너리가 없습니다. 각 네임 스페이스에 대해 생성 된 클래스 파일이 있습니다. 램에 네임 스페이스를로드하는 모듈성은 클래스 파일 수준 (ns가 필요할 때로드 됨)에 있다고 생각합니다. – noisesmith