Zwar behob dies nicht das offensichtliche Classloading Problem, jedoch war dies eine „lowhanging fruit".
While it did not fix the obvious problem with classloading, it did prove to be a lowhanging fruit.
Fast Linking&Concurrent Loading: Der Algorithm zur Auflösung von Abhängigkeiten in JBoss Modulen hat O(1), was bedeutet, dass die Anzahl der installierten Versionen von Bibliotheken keine Auswirkung auf Classloading Performance hat.
Fast Linking&Concurrent Loading: The dependency resolution algorithm in JBoss Modules is O(1), which means that classloading performance is not affected by the number of versions of libraries you have installed.
Java ist als Sprache, gerade durch die „komplizierten Konzepte" wie z.b. Classloading und Packages, besser auf Modularisierung vorbereitet.
Java is, especially through the "complicated concepts" such as Class Loading and packages, better prepared for modularization.
ClassLoading ist hier der Flaschenhals.
Eigentlich hatte ich nicht erwartet, dass dies ein Engpass sein könnte, doch ich fand einige Threads, welche ebenfalls dieses Lock nutzten, aber es für Classloading verwendeten.
I did not expect this to be a bottleneck, but it turned out that there are additional threads holding/wanting this lock for classloading.
Moderne Java Virtual Machines (JVMs) besitzen ein beeindruckendes Spektrum von Fähigkeiten, um Java-Anwendungen effizient und stabil auszuführen: Adaptive Speicherverwaltung, Garbage Collection, JIT-Compiler, dynamisches Classloading, Lock-Optimierung und vieles mehr.
Adaptive memory management, garbage collection, just-in-time compilation, dynamic classloading, lock optimization - just to cite some of the magic that happens between the scenes but rarely affects the average programmer directly.
Zusammen mit meinen Kollegen habe ich versucht, ein "Embedded Tomcat" Setup mit Arquillian zusammen zu stellen. Es ist jedoch nicht gelungen, die diversen Classloading Probleme, welche sich bei einer Ausführung von Tomcat im gleichen Prozess ergaben, aufzulösen.
My colleagues and I have tried to setup an embedded Tomcat with Arquillian, but ultimately failed to resolve the various classloading issues that came along with executing Tomcat in the same process.
Während des Java Classloading der JVM wird ein Java-basierter Agent in den Classloading-Prozess integriert, welcher den Java Bytecode der geladenen Klasse erweitern kann.
During the Java class loading process of the JVM, a Java-based agent is integrated into the class loading process which is able to intercept and modify the Java Bytecode of loaded classes.