Virtuelle Threads haben meinen Speicher gefressen: Die Geschichte eines Web Crawlers
Dieser Beitrag beschreibt die Erfahrung eines Entwicklers beim Erstellen eines Web Crawlers mit Java Virtual Threads. Anfangs schoss die Leistung in die Höhe, doch der Crawler stürzte mit einem `OutOfMemoryError` ab. Der Autor erklärt, wie er virtuelle Threads verwendete, um die Geschwindigkeit drastisch zu erhöhen, und zeigt dann, wie er das Speicherproblem behob, indem er ein Semaphore einführte, um die gleichzeitigen Aufgaben zu begrenzen. Der Vergleich zwischen Plattform-Threads und virtuellen Threads unterstreicht die Notwendigkeit eines expliziten Ressourcenmanagements bei der Verwendung virtueller Threads, da die impliziten Gegen¬druckmechanismen der JVM nicht mehr greifen. Der Autor kommt zu dem Schluss, dass virtuelle Threads zwar erhebliche Leistungssteigerungen bieten, Entwickler jedoch die Ressourcen sorgfältig verwalten müssen, um Speicherprobleme zu vermeiden.
Mehr lesen