jTable - maximale Größe?

Dieses Thema im Forum "Java/Mono/dotGNU" wurde erstellt von sim4000, 16.12.2007.

  1. #1 sim4000, 16.12.2007
    sim4000

    sim4000 Lebende Foren Legende

    Dabei seit:
    12.04.2006
    Beiträge:
    1.933
    Zustimmungen:
    0
    Ort:
    In meinem Zimmer
    Hallo zusammen.
    Ich bin gerade dabei, mir ein kleines Programm zu schreiben, welches Daten aus einer Datenbank ausliest und sie in einer JTable ausgibt.
    Funktioniert auch alles ganz super.

    Nur was passiert wenn das Statement mal ne halbe Million Datensätze ausspucken würde? Da würde mir doch das Programm bestimmt ins Gesicht springen. (Umgangssprachlich)
    Mit ca 2000 Datensätzen läuft es noch relativ flüssig. Nur wo ist das das Maximum?

    Wie kann man also heraus finden, wie viele Datensätze in das Array von Typ Object (Object[][]) rein passen, welches die Daten zum JTable transportiert?

    Lg, sim.
     
  2. Anzeige

    Schau dir mal diesen Ratgeber an. Viele Antworten inkl. passender Shell-Befehle!
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 supersucker, 16.12.2007
    supersucker

    supersucker Foren Gott

    Dabei seit:
    21.02.2005
    Beiträge:
    3.873
    Zustimmungen:
    0
    Ganz einfach, wie viel du da reinpacken kannst hängt davon ab, wieviel du der JVM an Speicher gibst.

    IMHO sind das per default 64 MB.

    Wenn du das erhöhen willst, musst du java mit den entsprechenden Optionen -Xmx -Xms starten.
     
  4. #3 sim4000, 16.12.2007
    sim4000

    sim4000 Lebende Foren Legende

    Dabei seit:
    12.04.2006
    Beiträge:
    1.933
    Zustimmungen:
    0
    Ort:
    In meinem Zimmer
    Erhöhen is käse.
    Da das Proggie ja auch auf an deren Rechnern funktionieren soll, ohne das ich damit das halbe/ganze System lahm lege.

    Kann man sich für den Fall das halt zu viel Speicher benötigt wird, ne Abbruchbedingung erstellen?
    So das dass Programm / das System keinen Abgang macht. Denn genau das hab ich eben geschafft.
    Hab mal ne 2Mio-Datensätze Tabelle gebaut und die mal ausgelesen. :devil: Konnte das System neu starten, weil gar nix mehr ging. :headup:

    Und genau das will ich verhindern.
     
  5. #4 supersucker, 16.12.2007
    supersucker

    supersucker Foren Gott

    Dabei seit:
    21.02.2005
    Beiträge:
    3.873
    Zustimmungen:
    0
    Klar,

    du kannst dir einfach über die Klasse Runtime anzeigen lassen wieviel Speicher gerade benutzt wird und dann ggf. abbrechen.

     
  6. #5 bytepool, 16.12.2007
    bytepool

    bytepool Code Monkey

    Dabei seit:
    12.07.2003
    Beiträge:
    791
    Zustimmungen:
    0
    Ort:
    /home/sweden/göteborg
    hi,

    naja, die Struktur der Datenbank und der Tabellen muesste dann ja jetzt schon feststehen, d.h. du kannst dir doch einfach eben selber ausrechnen wieviel Speicher pro Datensatz benoetigt wird, und entsprechend ein Limit setzen. Einfach vorher nochmal mit einem select statement oder so die Anzahl der Datensaetze auslesen, und einen Fehler ausgeben wenn das Limit ueberschritten wuerde, bzw. nur bis dahin die Datensaetze auslesen...
    Oder nicht?

    mfg,
    bytepool
     
  7. #6 sim4000, 16.12.2007
    sim4000

    sim4000 Lebende Foren Legende

    Dabei seit:
    12.04.2006
    Beiträge:
    1.933
    Zustimmungen:
    0
    Ort:
    In meinem Zimmer
    Das mit dem Freien speicher is schlecht.
    Weil wenn kein freier Speicher mehr da ist, ist es ja schon zu spät.

    Ich hab auch an Bytepools Vorschlag gedacht.
    Das einzigste Problem ist, das ich nicht vorher wissen kann, wie die Ausgabe aussieht, weil es sich bei dem Programm um einen MySQL-Client handelt. Man kann also eine x-beliebige Query eingeben.

    Ich hab keinen Plan, wie ich ein effektives Limit festlege. Ich kann ja nicht einfach sagen, bei 5000 Datensätzen ist Schluss.
    Totales Gehirnkribbeln...
     
  8. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  9. #7 supersucker, 16.12.2007
    supersucker

    supersucker Foren Gott

    Dabei seit:
    21.02.2005
    Beiträge:
    3.873
    Zustimmungen:
    0
    Jo,

    mitdenken wäre nicht schlecht von deiner Seite aus.

    Wo ist das Problem?

    Du prüfst halt alle x-Datensätze ob du noch mehr als y MB freien Speicher hast und sagst dann halt bspw.:

    Wenn nur noch 10 MB -> Abbrechen.

    Man kann es sich natürlich auch kompliziert machen.
     
  10. #8 sim4000, 16.12.2007
    sim4000

    sim4000 Lebende Foren Legende

    Dabei seit:
    12.04.2006
    Beiträge:
    1.933
    Zustimmungen:
    0
    Ort:
    In meinem Zimmer
    Hehe. *hand.vor.den.kopf.hau*
    Du hast mal wieder Recht gehabt. :)
    Lösung:
    Code:
    if(Runtime.getRuntime().freeMemory()<10000000) { this.overflow(); return new Object[0][0]; }
    Das wird beim zusammenbau des Arrays bei jedem Durchlauf geprüft.
    Die Methode overflow() ist einfach die Fehlerausgabe.

    Danke sehr. :)
    Lg, sim.
     
Thema:

jTable - maximale Größe?

Die Seite wird geladen...

jTable - maximale Größe? - Ähnliche Themen

  1. Maximale Schreibperformance auf SD/USB

    Maximale Schreibperformance auf SD/USB: Hallo zusammen, das Thema Programmieren unter Linux ist absolutes Neuland für mich. Ich möchte Messdaten auf eine SD Karte bzw. einen USB...
  2. Maximale Zugriffe auf einen Ordner?

    Maximale Zugriffe auf einen Ordner?: Hallo Zusammen, ein Bekannter von mir hat ein FreeNAS Server auf den er von verschiedenen Windows Kisten aus auf eine große Freigabe zugreift,...
  3. Maximale grösse einer Mail festlegen

    Maximale grösse einer Mail festlegen: Hallo Zusammen, ich bräuchte mal eine kurze Info, und zwar: Ist es möglich in exim die maximale Größe einer Ausgehenden Mail zu beschrenken?...
  4. Maximale Speicherallokierung von Fortran

    Maximale Speicherallokierung von Fortran: Hallo, ich entwickle gerade ein Programm, welches mit ziemlich großen Matrizen arbeitet. Der Speicherbedarf für eine Matrize kann bis zu 4 GB...
  5. SSH-Tunnel bei gleichzeitiger maximaler Benutzerrestriktion

    SSH-Tunnel bei gleichzeitiger maximaler Benutzerrestriktion: Liebe Forenmitglieder, Das Intranet/VPN unseres Betriebes ist durch eine "dicke", größtenteils extern gemanagte Firewall (SuSE/IPSec) nach außen...