Hallo!
Ich habe folgendes Problem: Wir entwickeln gerade eine Software, die vermehrt Tabellen einsetzt und bei einem unserer Entwickler steigt die CPU-Auslastung auf nahezu 100% sobald ein Eintrag in unsere JTable gefüllt wird. Auf den Rechnern der anderen Entwickler liegt die CPU-Auslastung generell unter 10% (naja okay, wir haben wesentlich leistungsfähigere notebooks).
Dennoch habe ich probiert herauszufinden, woher diese Performance-Schwankungen kommen. Ich bin durch einige Beiträge in diesem Forum und auf anderen Seiten darauf gekommen, dass der CellRenderer, evt Probleme bereitet. Hier lassen wir den Renderer von DefaultTableCellRenderer erben und setzen ihn für eine Tabelle nur EINmal. Auch die Erzeugung etwaiger Komponenten haben wir jetzt aus der getTableCellRendererComponent herausgenommen und wir greifen somit immer nur auf existierende Components zu...
Was mir direkt auffiel: Ich habe mal nen int hochzählen lassen und mir am Ende von getTableCellRendererComponent das int ausgeben lassen. Durch diesen Ausgabetest sehe ich nahezu 2000 Aufrufe pro Sekunde durch diese Komponente.... das scheint mir sehr hoch zu sein. Ist dieses Verhalten normal oder haben wir irgendwo ne zyklische Abhängigkeit im Code...
Grüße,
Dala
Ich habe folgendes Problem: Wir entwickeln gerade eine Software, die vermehrt Tabellen einsetzt und bei einem unserer Entwickler steigt die CPU-Auslastung auf nahezu 100% sobald ein Eintrag in unsere JTable gefüllt wird. Auf den Rechnern der anderen Entwickler liegt die CPU-Auslastung generell unter 10% (naja okay, wir haben wesentlich leistungsfähigere notebooks).
Dennoch habe ich probiert herauszufinden, woher diese Performance-Schwankungen kommen. Ich bin durch einige Beiträge in diesem Forum und auf anderen Seiten darauf gekommen, dass der CellRenderer, evt Probleme bereitet. Hier lassen wir den Renderer von DefaultTableCellRenderer erben und setzen ihn für eine Tabelle nur EINmal. Auch die Erzeugung etwaiger Komponenten haben wir jetzt aus der getTableCellRendererComponent herausgenommen und wir greifen somit immer nur auf existierende Components zu...
Was mir direkt auffiel: Ich habe mal nen int hochzählen lassen und mir am Ende von getTableCellRendererComponent das int ausgeben lassen. Durch diesen Ausgabetest sehe ich nahezu 2000 Aufrufe pro Sekunde durch diese Komponente.... das scheint mir sehr hoch zu sein. Ist dieses Verhalten normal oder haben wir irgendwo ne zyklische Abhängigkeit im Code...
Grüße,
Dala