37414
27.04.2016
7210
30
0
Programm in Java immer langsam?
Hallo,
zunächst mal: Ich bin kein Programmierer
Wir haben nun ein neues Programm, welches Antragsdaten verarbeitet.
Ebenso werden damit Auszahlungen an Banken realisiert und es muss viele Fotos im Tiff-Format anzeigen...
Das Programm greift auf eine Datenbank zu, in der ca. 80.000 Anträge gespeichert sind.
Dieses Programm wurde von einer Firma in JAVA programmiert.
Wir stellen nun fest, dass vor allem die Anzeige der Tiff-Fotos unglaublich lahm ist.
Ebenso fehlt eine Lupenfunktion, bzw. eine Funktion, bei der man über Thumbnails schon auswählen kann, welches Foto man sehen möchte.
Im Moment müssen wir (wenn in einem Antrag 30 Fotos vorhanden sind) kompliziert jedes Foto durchklicken, um zum gewünschten Foto zu kommen.
Dabei ist es mega nervig, wenn jedes Foto 1-2 Sek. dauert, bis es angezeigt wird.
Zusätzlich sollte man die dann vergrößerte Anzeige in einem Fenster einfach größer ziehen können (quasi Lupenvergrößerung).
Die Programmierer behaupten, dass die Programmierung einer solchen Lupenfunktion PLUS sehr aufwendig sei...
Meine Fragen sind nun, ob ein in JAVA programmiertes (recht umfangreiches) Programm grundsätzlich recht "lahm" ist und ob die Programmierung einer wie oben beschriebenen Lupenfunktion PLUS tatsächlich so aufwendig ist?
Danke und Gruss,
imebro
zunächst mal: Ich bin kein Programmierer
Wir haben nun ein neues Programm, welches Antragsdaten verarbeitet.
Ebenso werden damit Auszahlungen an Banken realisiert und es muss viele Fotos im Tiff-Format anzeigen...
Das Programm greift auf eine Datenbank zu, in der ca. 80.000 Anträge gespeichert sind.
Dieses Programm wurde von einer Firma in JAVA programmiert.
Wir stellen nun fest, dass vor allem die Anzeige der Tiff-Fotos unglaublich lahm ist.
Ebenso fehlt eine Lupenfunktion, bzw. eine Funktion, bei der man über Thumbnails schon auswählen kann, welches Foto man sehen möchte.
Im Moment müssen wir (wenn in einem Antrag 30 Fotos vorhanden sind) kompliziert jedes Foto durchklicken, um zum gewünschten Foto zu kommen.
Dabei ist es mega nervig, wenn jedes Foto 1-2 Sek. dauert, bis es angezeigt wird.
Zusätzlich sollte man die dann vergrößerte Anzeige in einem Fenster einfach größer ziehen können (quasi Lupenvergrößerung).
Die Programmierer behaupten, dass die Programmierung einer solchen Lupenfunktion PLUS sehr aufwendig sei...
Meine Fragen sind nun, ob ein in JAVA programmiertes (recht umfangreiches) Programm grundsätzlich recht "lahm" ist und ob die Programmierung einer wie oben beschriebenen Lupenfunktion PLUS tatsächlich so aufwendig ist?
Danke und Gruss,
imebro
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 302984
Url: https://administrator.de/contentid/302984
Ausgedruckt am: 25.11.2024 um 01:11 Uhr
30 Kommentare
Neuester Kommentar
Moin.
Java-GUIs waren schon immer grotten lahm, schon zu Zeiten meiner Ausbildung vor 20 Jahren war das so. Viel geändert hat sich da nicht, gerade bei der Bildverarbeitung reißt du damit nüscht.
Das gilt jetzt nur für die GUIs, in anderen Bereichen übertrifft Java andere Sprachen sogar um Längen, z.B. auch PHP.
Du bezahlst den Preis für Platformunabhängigkeit, aber heutzutage geht man eher dazu über das ganze als Webanwendungen zu bauen ohne das verbuggte Java-Swing-Gedöns.
Gruß jodel32
Java-GUIs waren schon immer grotten lahm, schon zu Zeiten meiner Ausbildung vor 20 Jahren war das so. Viel geändert hat sich da nicht, gerade bei der Bildverarbeitung reißt du damit nüscht.
Das gilt jetzt nur für die GUIs, in anderen Bereichen übertrifft Java andere Sprachen sogar um Längen, z.B. auch PHP.
Du bezahlst den Preis für Platformunabhängigkeit, aber heutzutage geht man eher dazu über das ganze als Webanwendungen zu bauen ohne das verbuggte Java-Swing-Gedöns.
Gruß jodel32
Moin,
Zitat von @37414:
Wir stellen nun fest, dass vor allem die Anzeige der Tiff-Fotos unglaublich lahm ist.
Wenn das echte Tiff sind, wird man daran nichts ändern können. Tiff Dateien werden ohne Komprimierung gespeichert. Das Laden und Anzeigen solcher Dateien dauert.Wir stellen nun fest, dass vor allem die Anzeige der Tiff-Fotos unglaublich lahm ist.
Zitat von @127944:
Tiff Dateien werden ohne Komprimierung gespeichert.
Nicht generell, Tiffs kennen auch Komprimierung LZW/Deflate.Tiff Dateien werden ohne Komprimierung gespeichert.
Zitat von @114757:
Nicht generell, Tiffs kennen auch Komprimierung LZW/Deflate.
Stimmt. Habe ein falsches Wort benutzt. Verlustfrei wäre richtig gewesen. "Witzigerweise" lassen sich auch JPEGs in Tiffs einbinden. Aber das führt dann doch am Thema vorbei Nicht generell, Tiffs kennen auch Komprimierung LZW/Deflate.
Hi,
Das Problem ist halt wenn du zu einer anderen Firma gehst, werden die mal sagen öhhm pff haben wir ja nicht programmiert. Dann kannst du nur hoffen, dass die erste Firma sauber programmiert hat...
1-2 Sekunden für ein TIFF, naja wie groß sind die Dateien - Miniportraits oder detailierte Röntgenbilder? ev. liegt das Problem ja auch an der Datenbankanbindung/Netzwerk. Hier könnt man die Dateien aber ggf. auch im Hintergrund laden.
btw. SWING ist nicht mehr die einzige Möglichkeit - JavaFX. Eclipse ist auch nicht mehr so lahm wie früher (auch weil die Hardware besser wurde) und bei Eclipse könnte man auch von einem "umfangreichen" Projekt sprechen.
sg Dirm
Die Programmierer behaupten, dass die Programmierung einer solchen Lupenfunktion PLUS sehr aufwendig sei...
naja würdet ihr für eine "einfache" Erweiterung noch mal zahlen? Wenn man sogar argumentieren könnte, dass das eine essentielle Funktion (Thumbnailvorschau) ist die man bei einer Software diesen(?!) Umfanges erwarten könnte.Das Problem ist halt wenn du zu einer anderen Firma gehst, werden die mal sagen öhhm pff haben wir ja nicht programmiert. Dann kannst du nur hoffen, dass die erste Firma sauber programmiert hat...
1-2 Sekunden für ein TIFF, naja wie groß sind die Dateien - Miniportraits oder detailierte Röntgenbilder? ev. liegt das Problem ja auch an der Datenbankanbindung/Netzwerk. Hier könnt man die Dateien aber ggf. auch im Hintergrund laden.
btw. SWING ist nicht mehr die einzige Möglichkeit - JavaFX. Eclipse ist auch nicht mehr so lahm wie früher (auch weil die Hardware besser wurde) und bei Eclipse könnte man auch von einem "umfangreichen" Projekt sprechen.
sg Dirm
Zitat von @37414:
Gäbe es also eine Möglichkeit, die Anzeigen der Fotos zu beschleunigen?
Durchaus möglich. Ohne Hintergrundwissen zur Software kann man da keine Aussage machenGäbe es also eine Möglichkeit, die Anzeigen der Fotos zu beschleunigen?
Es handelt sich ausschließlich um Papierdokumente (Schreiben, Bescheide, Kostenvoranschläge von Firmen, Steuersachen etc.).
Was auf den Bildern zu sehen ist, ist relativ uninteressant. Die Größe der Bilder (der Platz, den die Bilder auf der Platte verbrauchen) ist relevant.Wäre die Darstellung - z.B. als JPG oder gar GIF oder sonst was sinnvoller, da schneller statt Tiff?
Mit beispielsweise Jpg kann man die Zeit, die man zum überragen der Dateien innerhalb des Netzwerkes benötigt, verkürzen. Ob das Format allerdings die Vorgaben für die Dokumentenablage einhält, darf bezweifelt werdenUnd wäre die Programmierung der von mir beschriebenen Lupenfunktion PLUS (mit Thumbnails und Fenstervergrößerung) wirklich soooo aufwendig?
Das kann keiner, der den Code des Programmes nicht gesehen hat, beurteilen.Zitat von @37414:
Offenbar verlangsamt also das Programm selbst die Ansicht und nicht unbedingt das Netzwerk (jedenfalls wäre so meine Schlußfolgerung)
Diese Schlussfolgerung ist richtigOffenbar verlangsamt also das Programm selbst die Ansicht und nicht unbedingt das Netzwerk (jedenfalls wäre so meine Schlußfolgerung)
Zitat von @37414:
bzw. was kann sich dadurch ändern?
nichts. Da wollte nur jemand, der den Thread nicht gelesen oder verstanden hat, zeigen, das er auch irgendetwas weiß.bzw. was kann sich dadurch ändern?
Zitat von @37414:
Oder... was bedeutet die Aussage von Dirmhirn -> "JavaFX", Eclipse, SWING etc.?
Das sind die Bibliotheken die die Grafikelemente und Routinen zur Darstellung der Oberfläche bereitstellen und außerdem zur Anzeige der Bilder verantwortlich sind.Oder... was bedeutet die Aussage von Dirmhirn -> "JavaFX", Eclipse, SWING etc.?
Die sind der Hauptbremsklotz von deiner Java-Anwendung.
Wer hat bei euch die Entscheidung getroffen so eine Anwendung noch auf Java-Basis zu entwickeln ?? Das wäre persönlich meine letzte Wahl gewesen.
Zitat von @114757:
Wer hat bei euch die Entscheidung getroffen so eine Anwendung noch auf Java-Basis zu entwickeln ?? Das wäre persönlich meine letzte Wahl gewesen.
Man glaubt gar nicht, welche riesigen Projekte in Java umgesetzt werden. Ist doch alles so toll. Und Plattformunabhängig und bla bla kot*Wer hat bei euch die Entscheidung getroffen so eine Anwendung noch auf Java-Basis zu entwickeln ?? Das wäre persönlich meine letzte Wahl gewesen.
Zitat von @37414:
Wäre schön, wenn Ihr mir da nochmal weiterhelfen könntet...
Hier gilt das Selbe, wie von mir oben schon gesagt: Ohne den Quellcode kann da keiner ernsthaft was dazu sagen. Ich weiß ja nicht, in welchem Vertragsverhältnis ihr mit den Softwareentwicklern steht. Wenn ihr das aber in Auftrag gegeben habt müsstet ihr mal das Pflichtenheft prüfen oder einfach eine neue Funktion "mach schneller das Ganze" in Auftrag geben.Wäre schön, wenn Ihr mir da nochmal weiterhelfen könntet...
Zitat von @127944:
Man glaubt gar nicht, welche riesigen Projekte in Java umgesetzt werden. Ist doch alles so toll. Und Plattformunabhängig und bla bla kot*
Jepp, für alles was keine Oberfläche braucht bin ich mit dabei aber sobald da was GUI mäßiges mit ins Spiel kommt bin ich weg ...Man glaubt gar nicht, welche riesigen Projekte in Java umgesetzt werden. Ist doch alles so toll. Und Plattformunabhängig und bla bla kot*
Zitat von @37414:
Hängt die Foto-Darstellung also nicht auch mit dem erhöhten Arbeitsspeicher zusammen, sondern NUR mit dem eigentlichen Programm?
Zu 99% ja.Hängt die Foto-Darstellung also nicht auch mit dem erhöhten Arbeitsspeicher zusammen, sondern NUR mit dem eigentlichen Programm?
Wenn dir der Speicher vollläuft ist das Programm sehr schlecht geschrieben und es wurde nicht sparsam mit Ressourcen umgegangen. Ein sehr gutes Anzeichen für schlecht organisierten Code.
Lass dir den Code aushändigen und einen anderen Programmierer drüber schauen und bewerten lassen.
Mehr können wir hier nicht sagen ohne einen einzigen Fetzen Code Die Diskussion ist also sinnlos.
Aber deine Threads enden ja nie vor 100 Antworten ...
Zitat von @37414:
Kann man das Ganze denn "schneller machen", obwohl es mit GUI in Java programmiert ist?
Handelt es sich ggf. um Programmierfehler der Firma?
Wir drehen uns im Kreis. Ohne den Quellcode...Kann man das Ganze denn "schneller machen", obwohl es mit GUI in Java programmiert ist?
Handelt es sich ggf. um Programmierfehler der Firma?
Eine Zusatzfrage noch:
Wir haben - da alles so lahm läuft - sogar neue Rechner bekommen.
Bei den alten PCs mit Win7, 32-bit, älterem Prozessor und 4 GB Arbeitsspeicher war es so, dass sich der Arbeitsspeicher immer weiter füllte (wenn man mehrere Programmbereiche öffnete), bis ein Punkt erreicht war, wo das Programm sich aufhing.
Nun haben wir Rechner mit Win7, 64-bit und i5-Prozessor, sowie 8 GB Arbeitsspeicher. Nun passiert das nicht mehr.
Meiner Meinung nach hat sich aber an der Geschwindigkeit, die Fotos zu öffnen nichts verbessert. Hängt die Foto-Darstellung also nicht auch mit dem erhöhten Arbeitsspeicher zusammen, sondern NUR mit dem eigentlichen Programm?
Das könnte durchaus ein Hinweis auf schlechte Programmierung sein. Muss es aber nicht. Um das zu beurteilen, müsste man das Programm in Aktion sehen. Nur so ließe sich in etwa abschätzen, wie viele Daten da im Speicher gehalten werden müssten / könnten / solltenWir haben - da alles so lahm läuft - sogar neue Rechner bekommen.
Bei den alten PCs mit Win7, 32-bit, älterem Prozessor und 4 GB Arbeitsspeicher war es so, dass sich der Arbeitsspeicher immer weiter füllte (wenn man mehrere Programmbereiche öffnete), bis ein Punkt erreicht war, wo das Programm sich aufhing.
Nun haben wir Rechner mit Win7, 64-bit und i5-Prozessor, sowie 8 GB Arbeitsspeicher. Nun passiert das nicht mehr.
Meiner Meinung nach hat sich aber an der Geschwindigkeit, die Fotos zu öffnen nichts verbessert. Hängt die Foto-Darstellung also nicht auch mit dem erhöhten Arbeitsspeicher zusammen, sondern NUR mit dem eigentlichen Programm?
Wenn man dir halt 20 mal das selbe reindröhnen muss, ist das aber auch überflüssig ...
Zitat von @114757:
Wenn man dir halt 20 mal das selbe reindröhnen muss, ist das aber auch überflüssig ...
Wenn man dir halt 20 mal das selbe reindröhnen muss, ist das aber auch überflüssig ...
Nur ein Beispiel jetzt:
Zitat von @127944:
Das kann keiner, der den Code des Programmes nicht gesehen hat, beurteilen.
Das kann keiner, der den Code des Programmes nicht gesehen hat, beurteilen.
Zitat von @127944:
Hier gilt das Selbe, wie von mir oben schon gesagt: Ohne den Quellcode kann da keiner ernsthaft was dazu sagen.
Hier gilt das Selbe, wie von mir oben schon gesagt: Ohne den Quellcode kann da keiner ernsthaft was dazu sagen.
Zitat von @114757:
Mehr können wir hier nicht sagen ohne einen einzigen Fetzen Code Die Diskussion ist also sinnlos.
Mehr können wir hier nicht sagen ohne einen einzigen Fetzen Code Die Diskussion ist also sinnlos.
Manchmal muss man auch etwas als gegeben annehmen - auch wenn man es selbst nicht ganz versteht
Moin,
wie alle Vorredner es eigentlich schon gesagt haben: Man kann nur vermuten woran es liegt, ziemlich sicher ist aber, dass irgendwas nicht optimal umgesetzt ist. (Für manche heißt hier 'nicht optimal umgesetzt' auch "die falsche Programmiersprache gewählt wurde" ;) )
Jedenfalls hast du exakt 3 Optionen um das Problem zu ändern:
1. Beauftrage die Firma, die die Software geschrieben hat den Code zu verbessern. Ggf. ein Pflichtenheft mit festem Zeitraum in dem ein Bilder in einer gewissen Umgebung geladen sein muss.
2. Lass dir den Sourcecode aushändigen (wenn man es für dich/euch programmiert hat sollte das möglich sein) und lasse dritte Programmierer drüber schauen.
3. Beauftrage eine Firma deiner Wahl mit der Neuprogrammierung des gesamten Tools. Dieses mal ins Pflichtenheft schreiben, dass es eben entsprechende Leistungen erbringen muss.
Wirklich mehr Optionen hast du nicht. Alles andere wurde in jedem Fall schon gesagt.
Gruß
Chris
wie alle Vorredner es eigentlich schon gesagt haben: Man kann nur vermuten woran es liegt, ziemlich sicher ist aber, dass irgendwas nicht optimal umgesetzt ist. (Für manche heißt hier 'nicht optimal umgesetzt' auch "die falsche Programmiersprache gewählt wurde" ;) )
Jedenfalls hast du exakt 3 Optionen um das Problem zu ändern:
1. Beauftrage die Firma, die die Software geschrieben hat den Code zu verbessern. Ggf. ein Pflichtenheft mit festem Zeitraum in dem ein Bilder in einer gewissen Umgebung geladen sein muss.
2. Lass dir den Sourcecode aushändigen (wenn man es für dich/euch programmiert hat sollte das möglich sein) und lasse dritte Programmierer drüber schauen.
3. Beauftrage eine Firma deiner Wahl mit der Neuprogrammierung des gesamten Tools. Dieses mal ins Pflichtenheft schreiben, dass es eben entsprechende Leistungen erbringen muss.
Wirklich mehr Optionen hast du nicht. Alles andere wurde in jedem Fall schon gesagt.
Gruß
Chris
Zitat von @37414:
Finde es eben nur schade, dass man so eine Kritik nicht ein bisschen "netter" und ohne Schulmeisterei formulieren kann.
Netter wie Jodel es gemacht hat, wäre keine Kritik mehr, sondern ein "Gut gemacht" mit SchulterklopfenFinde es eben nur schade, dass man so eine Kritik nicht ein bisschen "netter" und ohne Schulmeisterei formulieren kann.
JoDas ist zwar schon ein paar Jahre her, aber scheinbar hat keiner Lust gehabt dir zu sagen, dass man so etwas sehr wohl Beschleunigungen kann.
Damit du eine Vorschau hast, musst du eigentlich nur die Bilder auf dem Server von Tiff zu JPG komprimieren.
Den Code gibt es fertig auf GitHub oder Stackoverflow und ist leicht zu verstehen.
Eine Vergrößerungslupe ist auch kein Hexenwerk, also das können die dir in über 10 Minuten reinbauen.
Wenn die Leute die das geschrieben haben nicht komplett auf den Kopf gefallen sind, kann man das auch einfach hinzufügen. XD
Eigentlich kann man diese Dinge auch direkt als Webseite ausliefern.
Das ist Java nicht einmal zwingend notwendig.
Aber an Java liegt es nicht, du hast einfach einen schlechten Entwickler erwischt, der sich beim Punkt Alltags-Performance und Bedienung keine Mühe gegeben hat.
Bei dem was du da beschrieben hast, genügt fast sogar Nextcloud. XD
Da kannst du auch gemütlich Dokumente anlegen und Teilen und mit Nutzergruppen verwalten.
Gibt ein so toll wie du das in Fünf Minuten installieren kannst als Leihe.
Das ist so ähnlich wie Dropbox und kann erweitert werden mit Plugins.
Überweisungen kannst damit nicht machen, aber es ist ja wir gesagt erweiterbar.
Und es handelt sich um einen Cloud Speicher.
Vielleicht eine schöne Erweiterungs-Idee.
Aber mir wären Überweisungen auf einem Webserver zu unsicher.
Aber die Programmierer würde ich bitten ihre Arbeit richtig zu machen.
Das ist nicht Alltags freundlich und auch keine Lösung...
Vielleicht haben Sie ja auch den Mist behoben.
Damit du eine Vorschau hast, musst du eigentlich nur die Bilder auf dem Server von Tiff zu JPG komprimieren.
Den Code gibt es fertig auf GitHub oder Stackoverflow und ist leicht zu verstehen.
Eine Vergrößerungslupe ist auch kein Hexenwerk, also das können die dir in über 10 Minuten reinbauen.
Wenn die Leute die das geschrieben haben nicht komplett auf den Kopf gefallen sind, kann man das auch einfach hinzufügen. XD
Eigentlich kann man diese Dinge auch direkt als Webseite ausliefern.
Das ist Java nicht einmal zwingend notwendig.
Aber an Java liegt es nicht, du hast einfach einen schlechten Entwickler erwischt, der sich beim Punkt Alltags-Performance und Bedienung keine Mühe gegeben hat.
Bei dem was du da beschrieben hast, genügt fast sogar Nextcloud. XD
Da kannst du auch gemütlich Dokumente anlegen und Teilen und mit Nutzergruppen verwalten.
Gibt ein so toll wie du das in Fünf Minuten installieren kannst als Leihe.
Das ist so ähnlich wie Dropbox und kann erweitert werden mit Plugins.
Überweisungen kannst damit nicht machen, aber es ist ja wir gesagt erweiterbar.
Und es handelt sich um einen Cloud Speicher.
Vielleicht eine schöne Erweiterungs-Idee.
Aber mir wären Überweisungen auf einem Webserver zu unsicher.
Aber die Programmierer würde ich bitten ihre Arbeit richtig zu machen.
Das ist nicht Alltags freundlich und auch keine Lösung...
Vielleicht haben Sie ja auch den Mist behoben.