DCEVM – prawdziwy hot swap

Hot Swap, czyli podmiana kodu w trakcie działania aplikacji, jest w Javie dostępny już od dłuższego czasu. Jest to jednak hot swap częściowy, ponieważ Java HotSwap™ VM potrafi zaktualizować tylko implementację istniejących metod. Zmiany na poziomie klasy, czy całej hierarchii klas, są poza jej zasięgiem. W tym miejscu do akcji wkracza DCEVM, czyli Dynamic Code Evolution VM. Jest to modyfikacja wcześniej wspomnianej maszyny wirtualnej, która pozwala na dodawanie klas, metod, modyfikację drzewa dziedziczenia, a to wszystko bez restartu maszyny! Jako że jest to projekt open source, źródła i binarki są do ściągnięcia na oficjalnej stronie. Projekt jest jeszcze w fazie rozwoju, dlatego nie jest zalecane używanie go na produkcyjnych środowiskach. Doskonale natomiast może się sprawdzić na maszynach developerskich, gdzie potrafi zaoszczędzić sporo czasu potrzebnego na ponownie uruchamianie aplikacji. Osobiście jestem bardzo ciekawy jak będzie wyglądać rozwój DCEVM – bardzo mu kibicuję i liczę na pojawienie się takiego rozwiązania w standardowej maszynie wirtualnej od Oracle. Interesujące może być również to, jak przy rozwijających się darmowych rozwiązaniach poradzi sobie JRebel. Zasady działania tych dwóch narzędzi są różne, ale dla użytkownika końcowego znaczenie ma cel, który w obydwu przypadkach jest praktycznie taki sam.

Aha, dla osób używających IntelliJ IDEA dostępny jest plug-in ułatwiający integrację DCEVM z tym IDE. Zachęcam do zabawy!

5 myśli nt. „DCEVM – prawdziwy hot swap

  1. Kornel

    Łukaszu, czy w codziennej pracy używasz DCEVM? Jeżeli tak to jak wrażenia? Działa bezawaryjnie?
    Mnie w wielu przypadkach wystarcza hot swap, który dostajemy w hotspocie ale chętnie znalazłbym coś co pozwoliłoby mi przeładowywać również sygnatury metod.

    Odpowiedz
    1. Łukasz Picur Autor wpisu

      Niestety nie miałem okazji używać go na dłuższą metę. W pracy używam JRebela, i wydaje mi się, że do profesjonalnych zastosowań to wciąż pewniejsze narzędzie. Nie zmienia to jednak faktu, że rozwój DCEVM będę bacznie obserwował :)

      Odpowiedz

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>