Próbuję zrozumieć, jak ciasto realizuje swoje wielokrotne podejście JVM. Na wysokim poziomie myślałem, że ciasto działa podobnie do gwoździarza, gdzie jest jedna instancja JVM (jeden proces JVM), a nowe "JVM" dla różnych projektów były w rzeczywistości tylko clojure/słoiki oceniane w nowym programie ładującym klasy (wraz z różne zależności słoików), co w moich oczach nie jest nową instancją JVM. Jednak od What's the difference between Cake and Leiningen? wynika, że istnieje wiele maszyn JVM (jedna dla ciast i * dla projektów), a nie tylko jedna instancja JVM.W jaki sposób zaimplementowana jest trwała funkcja JVM w ciastku?
Jeśli są tworzone nowe instancje JVM, skąd pochodzi przyspieszenie? Rozumiem, że rozpoczęcie nowej maszyny JVM oznacza stworzenie nowego procesu JVM, który jak zwykle przynosi takie samo obciążenie podczas uruchamiania.
Jeśli nie ma, w jaki sposób dodawane są rodzime zależności? Z tego co rozumiem, JVM wie tylko o natywnych zależnościach od argumentów wiersza poleceń przekazanych przed uruchomieniem. Jedyny sposób, w jaki wiem, jak obejść ten problem, to konkretne włamanie do maszyny wirtualnej/Oracle JVM wymienione poniżej.
(let [clazz java.lang.ClassLoader
field (.getDeclaredField clazz "sys_paths")]
(.setAccessible field true)
(.set field clazz nil)
(System/setProperty "java.library.path" (apply str (interpose ";" native-paths))))
Dzięki. OK, ze starą wersją, nowa JVM została stworzona dla każdego projektu, miałem złe wrażenie, że znowu było bardziej zbliżone do nailgun, gdzie jest tylko jedna instancja JVM. Metoda z użyciem pistoletu gwoździowego była idealna w moim umyśle w odniesieniu do czasu uruchamiania JVM i ignorowania problemów związanych z bezpieczeństwem, które zdaję sobie sprawę, że nie jest to sposób w jaki ciasto jest zaimplementowane. Próbowałem ustalić korzyści związane z czasem uruchamiania JVM w sytuacjach, w których JVM musiała zostać zrestartowana lub utworzona, a nie za każde polecenie tortu. – bmillare
Czy klasyczna obsługa ładowania rodzimego jest zależna od czasu wykonywania? – bmillare