Intelligente Batchverarbeitung: Wie AI Diff Review große Commits handhabt
Die Herausforderung großer Commits
Die moderne Entwicklung umfasst oft Commits, die viele Dateien ändern. Ob es sich um eine große Funktionsergänzung, eine Refaktorisierungsbemühung oder das Zusammenführen eines lang laufenden Branches handelt, große Commits können die Größenbeschränkungen von KI-Anbietern überschreiten. AI Diff Review löst dies mit intelligenter Batchverarbeitung, die große Commits automatisch in handhabbare Chunks aufteilt.
Wie Batchverarbeitung funktioniert
Wenn ein Commit oder ausgewählter Bereich das aktive Budget überschreitet (256 KB für Cloud-Anbieter, 128 KB für lokale), teilt AI Diff Review die Anfrage automatisch in mehrere Batches auf. Aber es teilt nicht einfach zufällig—es verwendet eine ausgeklügelte Verwandtschafts-zuerst-Strategie, um verwandte Dateien zusammenzuhalten und die Analysequalität zu verbessern.
Verwandtschaftsstrategie
Das Batchverarbeitungssystem verwendet leichte Heuristiken, um zu bestimmen, welche Dateien verwandt sind:
Import- und Paketreferenzen
Dateien, die Symbole importieren, die in anderen geänderten Dateien definiert sind, gelten als verwandt. Wenn beispielsweise UserService.java User aus User.java importiert und beide geändert werden, werden sie zusammen gruppiert.
Symbol-Erwähnungen
Dateien, die Klassen-, Objekt- oder Funktionsnamen erwähnen, die in anderen geänderten Dateien definiert sind, werden zusammen gruppiert. Dies erfasst Beziehungen auch dann, wenn explizite Imports nicht vorhanden sind.
Verzeichnisnähe
Dateien im selben Paket oder Verzeichnis gelten als schwach verwandt und dienen als Entscheidungshilfe, wenn andere Beziehungen nicht klar sind.
Clustering-Algorithmus
Das Batchverarbeitungssystem baut einen ungerichteten Graphen von Dateien auf, die durch die oben genannten Beziehungen verbunden sind, und berechnet dann verbundene Komponenten als anfängliche Gruppen. Dies stellt sicher, dass Dateien, die sich gegenseitig referenzieren, im selben Batch zusammen bleiben.
Packstrategie
Gruppen werden in Batches platziert, indem ein First-Fit-Decreasing-Algorithmus nach geschätzter Anfragegröße verwendet wird. Dies:
- Bewahrt Gruppen wenn möglich (hält verwandte Dateien zusammen)
- Maximiert die Batch-Größeneffizienz
- Stellt sicher, dass jeder Batch unter der Größenbeschränkung bleibt
Umgang mit übergroßen Gruppen
Wenn eine einzelne Gruppe verwandter Dateien das Budget überschreitet, wird sie nach Breitensuche (BFS)-Reihenfolge aufgeteilt, während Kanten mit hohem Gewicht erhalten bleiben. Dies bedeutet, dass die stärksten Beziehungen auch dann aufrechterhalten werden, wenn eine Aufteilung notwendig ist.
Benutzererfahrung
Wenn Batchverarbeitung auftritt, zeigt das Tool-Fenster den Fortschritt als "Batch X/Y" an, was deutlich macht, dass mehrere Batches verarbeitet werden. Ergebnisse werden nahtlos über Batches hinweg zusammengeführt, sodass Sie eine einheitliche Ansicht aller Befunde sehen. Sortierung, Filterung und Suche funktionieren über alle Ergebnisse hinweg, als ob sie von einer einzigen Analyse stammten.
Standard-Batch-Größen
Das System bevorzugt Batches von 3-7 Dateien jeweils, wenn viele Dateien vorhanden sind, aber die genauen Größen variieren basierend auf:
- Diff- und Inhaltsgröße pro Datei
- Anbieter-spezifische Größenobergrenzen
- Verwandtschaftsbeziehungen
Dieses Gleichgewicht gewährleistet eine effiziente Verarbeitung bei gleichzeitiger Aufrechterhaltung der Analysequalität.
Vorteile intelligenter Batchverarbeitung
Bessere Analysequalität
Indem verwandte Dateien zusammen gehalten werden, kann die KI Kontext und Beziehungen verstehen, was zu genaueren Befunden führt. Wenn Sie beispielsweise sowohl eine Modellklasse als auch ihren Service ändern, hilft die gemeinsame Analyse der KI, die vollständige Auswirkung Ihrer Änderungen zu verstehen.
Automatische Handhabung
Sie müssen Commits nicht manuell aufteilen oder sich um Größenbeschränkungen kümmern. Das Plugin erledigt dies automatisch, sodass Sie sich auf Ihren Code konzentrieren können.
Nahtlose Erfahrung
Ergebnisse werden automatisch zusammengeführt, sodass Sie eine einheitliche Ansicht sehen, unabhängig davon, wie viele Batches benötigt wurden. Sie müssen Ergebnisse nicht manuell kombinieren oder zwischen verschiedenen Analysen wechseln.
Wann Batchverarbeitung auftritt
Batchverarbeitung wird ausgelöst, wenn:
- Ein Commit viele Dateien ändert (typischerweise 10+ Dateien)
- Dateien groß sind (selbst wenige große Dateien können Batchverarbeitung auslösen)
- Vollständiger Dateiinhalt enthalten ist (erhöht die Größe erheblich)
- Die kombinierte Größe die Anbieterlimits überschreitet
Best Practices
Commits fokussiert halten
Während Batchverarbeitung große Commits gut handhabt, sind kleinere, fokussierte Commits immer noch besser für Code-Überprüfung und Verständnis. Erwägen Sie, große Änderungen in logische Commits aufzuteilen, wenn möglich.
Dem System vertrauen
Der Batchverarbeitungsalgorithmus ist darauf ausgelegt, Beziehungen zu bewahren und die Analysequalität aufrechtzuerhalten. Vertrauen Sie darauf, dass verwandte Dateien zusammen analysiert werden, auch über Batches hinweg, wenn notwendig.
Alle Ergebnisse überprüfen
Da Ergebnisse zusammengeführt werden, stellen Sie sicher, dass Sie Befunde aus allen Batches überprüfen. Die einheitliche Ansicht macht dies einfach, aber seien Sie sich bewusst, dass große Commits viele Befunde über mehrere Batches hinweg haben können.
Technische Details
Das Batchverarbeitungssystem verwendet einen schnellen Anfragegrößen-Schätzer, der die Größe der JSON-umhüllten Nutzlast approximiert, um unter der Obergrenze pro Batch zu bleiben. Diese Schätzung erfolgt vor dem Senden und gewährleistet eine effiziente Nutzung der Anbieterlimits.
Fazit
Intelligente Batchverarbeitung macht es möglich, große Commits ohne manuelles Eingreifen zu analysieren. Indem verwandte Dateien zusammengehalten und Batch-Größen automatisch verwaltet werden, gewährleistet AI Diff Review eine umfassende Analyse unabhängig von der Commit-Größe.
Die Verwandtschafts-zuerst-Strategie hält die Analysequalität aufrecht, während die automatische Aufteilung sicherstellt, dass Sie Commits jeder Größe analysieren können. Kombiniert mit nahtloser Ergebniszusammenführung bietet Batchverarbeitung eine reibungslose Erfahrung auch für die größten Änderungen.
Bereit, große Commits zu analysieren? Installieren Sie AI Diff Review und sehen Sie, wie es Ihre größten Änderungen handhabt.