Welche Bibliothek ist besser für schnellere Java-Anwendungen: SWT oder Swing?
Antworten
Zu viele Anzeigen?Vor einigen Jahren war Swing langsam, so dass SWT entwickelt wurde, um native API-Aufrufe auf Systemen zu ermöglichen. Allerdings hat sich die Leistung von Swing deutlich verbessert und dies ist nicht mehr der Fall. SWT ist nicht standardisiert, während Swing offiziell Teil der Java-Spezifikation ist. JavaFX wird auch auf Swing aufbauen. Wenn Sie also nicht Eclipse-Plugins schreiben müssen, würde ich Swing verwenden.
Um eine wirklich gute App, die in Swing entwickelt wurde, anzusehen, werfen Sie einen Blick auf Jetbrains Java IDE. Sie können es 30 Tage lang ausprobieren.
http://www.jetbrains.com/idea/
Natürlich ist auch Sun's Netbeans eine reine Swing-App und kostenlos.
Es gibt keine langsame Swing-Anwendung. Nur schlecht geschriebene. Und das gilt auch für SWT. Die meisten Anwendungen liefern bessere Antworten aufgrund der Eclipse-Kernarchitektur. Vor J6 gab es mehrere Probleme mit grauen Fenstern während unresponsiver Perioden, aber das ist weitgehend gelöst durch den vollständig doppelt gepufferten Ansatz in Swing-PLAFs. Es gibt kein besseres UI-Framework. Es gibt nur besser geschriebene Programme, die Multi-Threaded-Verarbeitung verwenden, um Unreagibilität des UI zu vermeiden. Persönlich bevorzuge ich Swing :)
Heute sind beide Frameworks schnell. Ich schlage vor, diese Kriterien zu überprüfen:
- SWT ist einfacher zu bedienen als Swing (vor allem, wenn dies Ihre erste Benutzeroberfläche ist)
- Swing ist älter und Sie finden mehr Komponenten
- Wenn Sie auch JFace verwenden, finden Sie viele leistungsstarke Widgets, die sofort einsatzbereit sind (wo Sie beim Swing viel zusätzliche Konfiguration benötigen würden).
- Swing ist überall verfügbar, SWT nicht
- SWT wird aktiv weiterentwickelt, Sie haben den Quellcode und Fehler werden schnell behoben. Swing wurde jahrelang nicht mehr aktualisiert, dann gab es plötzlich ein großes Update für Java 6. Wenn Sie ein Problem mit Swing haben, nun ja, Sun kümmert sich wahrscheinlich nicht darum.
- Wenn Sie sich für Swing entscheiden, verwenden Sie ein Framework wie SwingX. Das wird Ihr Leben viel einfacher machen.
Laut Wikipedia gibt es keinen klaren Gewinner (obwohl Sie das bearbeiten können, wenn Sie möchten). Sie können unweigerlich Benchmarks schreiben, die entweder viel schneller als die andere zeigen. Swing hat mehr Freiheit zur Optimierung auf der Java-Seite der Dinge. SWT kann mehr Optimierungen innerhalb des Fenstersystems zulassen.
Der wahrscheinlich größere Einfluss auf die Leistung wird davon abhängen, wie sich Ihre Anwendung verhält. Konzentrieren Sie sich darauf, Ihren Code sauber zu halten (und machen Sie bei Bedarf ein wenig Profiling).
- See previous answers
- Weitere Antworten anzeigen