AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Programm auf Windows Server 2016 (Citrix) langsam
Thema durchsuchen
Ansicht
Themen-Optionen

Programm auf Windows Server 2016 (Citrix) langsam

Ein Thema von dataspider · begonnen am 20. Mär 2024 · letzter Beitrag vom 27. Mär 2024
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von dataspider
dataspider
Online

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.350 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: Programm auf Windows Server 2016 (Citrix) langsam

  Alt 22. Mär 2024, 10:40
Erst mal vielen Dank an alle, die mich hier mit ihren Kenntnissen unterstützt haben.

Ich habe mit verschiedenen Grafikformaten getestet und speichere die Kopfbögen jetzt als Bitmap.
Ich hätte dieses Ergebnis so nicht erwartet.

Die neuen Grafiken sind jetzt, da Bitmap statt 1 MB 26 MG groß.
Jetzt dauert das Laden des Reports keine 3 Sekunden mehr.

Ich weiß jetzt zwar nicht, was letztendlich passiert ist, dass es plötzlich langsam wurde, aber das Problem ist gelöst.

Frank
Frank Reim
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin
Online

Registriert seit: 15. Sep 2008
Ort: Dubai
618 Beiträge
 
Delphi 10.3 Rio
 
#12

AW: Programm auf Windows Server 2016 (Citrix) langsam

  Alt 22. Mär 2024, 13:21
Das ist krass, hätte ich auch nicht erwartet.

Kommt drauf an wieviele Farben du im Bitmap hast. Sonst könntest Du versuchen das Bild mit weniger Farbtiefe zu speichern. Dann wird es kleiner.
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.
  Mit Zitat antworten Zitat
hanvas

Registriert seit: 28. Okt 2010
157 Beiträge
 
Delphi 11 Alexandria
 
#13

AW: Programm auf Windows Server 2016 (Citrix) langsam

  Alt 22. Mär 2024, 14:00
Erst mal vielen Dank an alle, die mich hier mit ihren Kenntnissen unterstützt haben.

Ich habe mit verschiedenen Grafikformaten getestet und speichere die Kopfbögen jetzt als Bitmap.

Die neuen Grafiken sind jetzt, da Bitmap statt 1 MB 26 MG groß.
Frank
An anderer Stelle wurde ja schon darauf hingewiesen das die Anzahl der Farben eine große Rolle spielt. Bei den meisten Headern in Briefen etc. kommt man eigentlich mit einer kleinen Anzahl aus, es sei denn es sind Farbverläufe etc. vorhanden. Helfen kann da eine optimierte Palette zu verwenden. Delphis TGifImage hat eine Methode Optimize bzw. OptimizeColorMap damit kann man relativ kleine Bilder erzeugen.

Um ein Bild nach Gif zu konvertieren kannst Du beispielsweise

Code:

procedure ConvertBMP2GIF;
var
  bmp: TBitmap;
  gif: TGIFImage;
begin
  gif := TGifImage.Create;
  try
    bmp := TBitmap.Create;
    try
      bmp.LoadFromFile('MyBitmap.BMP');
      gif.Assign(bmp);
    finally
      bmp.Free;
    end;
    gif.SaveToFile('MyBitmap.GIF');
  finally
    gif.Free;
  end;
end;
verwenden

hth Ha Joe
  Mit Zitat antworten Zitat
Benutzerbild von paule32.jk
paule32.jk

Registriert seit: 24. Sep 2022
Ort: Planet Erde
218 Beiträge
 
Delphi 11 Alexandria
 
#14

AW: Programm auf Windows Server 2016 (Citrix) langsam

  Alt 22. Mär 2024, 16:05
eine andere Methode wäre,

- TCP Server auf Client starten, der auf Port lauscht (Indy 10)

- Bild aufnehmen / im Hintergrund zeichnen (interne Canvas)
- Bild optimieren (kleinere Farbtiefen)
- Bild in kleine Quadrate zerlegen (erfordert ggf. größere Width und Height - je nach Anwendungsfall)
- Bild Stückchen für Stückchen per zLib verkelinern und mit ID versehen
- Bild einen Protokoll vergeben - Header (Größe, Farben, Teile-ID, ...)
- Bild einen Protokoll vergeben - Body (raw-Bytes für die Daten)
- Puffer für Bild vorab berechnen (max. 4.096 Bytes - je nach Qualität der Leitung)

- TCP Verbindung aufbauen (Indy 10 - die unterstützen SSL, kein Indy 9 !)
- Bild-Daten senden - ggf. Prüfsumme mit dazu

- Bilddaten zusammen führen
- zLib Daten wieder de-packen
- Daten in Hintergrund Canvas speichern

- mit BitBlt auf TPainter / TPaintBox kopieren


(so würd ich das machen)
Frag doch einfach
Alles was nicht programmiert werden kann, wird gelötet
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.680 Beiträge
 
Delphi 5 Professional
 
#15

AW: Programm auf Windows Server 2016 (Citrix) langsam

  Alt 22. Mär 2024, 20:04
Wie groß ist denn das Bitmap? Ich hab hier eines rumliegen mit ca. 14 MiB, das 2560x1920 Pixel hat. 26 MB ist ja fast doppelt so groß und muss demnach noch wesentlich mehr Pixel haben. Alles absurde Abmessungen für einen simplen Kopfbogen IMO, wenn es um Papier bis A3 oder so geht.

Grüße
Dalai
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.151 Beiträge
 
Delphi 12 Athens
 
#16

AW: Programm auf Windows Server 2016 (Citrix) langsam

  Alt 22. Mär 2024, 20:48
Nja, bei 32 Bit wären das auch nur so etwas 2500*2500 Pixel, also ein halbes A4 mit 600 DPI
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
hanvas

Registriert seit: 28. Okt 2010
157 Beiträge
 
Delphi 11 Alexandria
 
#17

AW: Programm auf Windows Server 2016 (Citrix) langsam

  Alt 23. Mär 2024, 09:04
Zitat:
Um ein Bild nach Gif zu konvertieren kannst Du beispielsweise....
Natürlich geht das auch rückwärts. Du kannst also erst deine Palette auf 256 Farben bringen und dann wieder als Bitmap speichern.

Apropos Bitmap 1: Das verwenden von nur 256 Farben bringt nichts wenn du im RGB Format speicherst
Apropos Bitmap 2: Du kannst eine Lauflängenkodierung zum speichern verwenden, das ist ein einfaches verlustfreies Kompressionsverfahren welches überwiegend große Bereiche von gleichen Pixeln (meistens Hintergrund) gut verarbeiten kann.

Außerdem könntest Du die Bilder in Vektorgrafiken umwandeln, dass wäre für die meisten Hintergrundbilder naturlich die speicherplatzsparendste Möglichkeit und wäre eher in Bruchteilen von Sekunden geladen. Helfen kann Dir dabei Autotrace [1].

cu Ha-Joe

[1] https://github.com/autotrace/autotrace
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.017 Beiträge
 
Delphi 2009 Professional
 
#18

AW: Programm auf Windows Server 2016 (Citrix) langsam

  Alt 23. Mär 2024, 13:42
JPEG ist ja ausschließlich für Fotos geeignet. Ich bezweifle, dass der Briefbogen aus Fotos besteht. Für alles, was kein Foto ist, nimmt man Vektorgrafiken, also normalerweise SVG. Da Reportgeneratoren in der Regel keine verlustfreie Einbindung von SVG unterstützen sondern diese rastern, habe ich mir selbst eine Konvertierung in EMF geschrieben. Häufig in Reports verwendete Vektorgrafiken liegen als Performancegründen direkt als EMF in den Stammdaten vor. Im Repository eines Projekts ist im Normalfall das Icon die einzige Binärdatei.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider
Online

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.350 Beiträge
 
Delphi 11 Alexandria
 
#19

AW: Programm auf Windows Server 2016 (Citrix) langsam

  Alt 24. Mär 2024, 08:06
OK, da noch weitere Hinweise gekommen sind, versuche ich mal eine Zusammenfassung...

Die Bildgröße ist 2480 x 3508 (A4 300 dpi).
Reduziere ich die Farbe auf 256, ist die BMP noch ca. 8,5 MB groß.
Dabei ist die Qualität immer noch sehr gut, also vom Basisbild eigentlich nicht zu unterscheiden.
Gestaunt habe ich bei Umwandlung in GIF (wie von hanvas empfohlen).
Bei GIF erhalte ich die kleinsten Dateien (280 kB) mit der besten Qualität.
Ich habe allerdings noch nicht probiert, wie schnell ReportBuilder dies dann unter Windows Server 2016 zeichnet.

Ich habe mich auch mit unserem Netzwerk und Citrix Guru beraten, was überhaupt passiert ist.
Die Zeichenroutinen in Delphi auf ein Canvas sind ja Bitmap bezogen.
Dafür braucht es keine Dekomprimierung oder sonstige Berechnungen.
Und deshalb ist wohl Bitmap am schnellsten.

Da es bei Start der Anwendung unter Windows 11 keine Probleme gibt, sondern nur bei Start unter Windows Server 2016,
liegt es nicht an Citrix, nicht am Netzwerk etc. sondern an den Zeichenroutinen im Zusammenhang mit dem Betriebssystem.
Wir vermuten, dass irgendein Windows Update hier ursächlich verantwortlich ist.

Da es momentan schön schnell läuft, will ich nicht mehr so viel Zeit investieren.
Ich probiere das noch mit GIF - Dateien.
Dann probiere ich noch, die Bilder selbst im Code in BMP umzuwandeln (geht wohl im DataSet mit OnGetData).

Für mehr habe ich momentan keine Zeit

Also - noch mal vielen Dank an Alle!

Frank
Frank Reim
  Mit Zitat antworten Zitat
Benutzerbild von paule32.jk
paule32.jk

Registriert seit: 24. Sep 2022
Ort: Planet Erde
218 Beiträge
 
Delphi 11 Alexandria
 
#20

AW: Programm auf Windows Server 2016 (Citrix) langsam

  Alt 24. Mär 2024, 15:10
was spricht denn dagegen, sich die Druckerrei seines Vertrauens zu beauftragen,
eine Vorlage in Print zu geben, die dann auf 500 A4 Blatt in den Drucker eingesetzt werden kann ?

man braucht sich dann um Schlieren im Bild, die durch den mehrmaligen (Eigenen) Druck ergibt, nicht mehr sorgen,
und nur noch den eigentlichen Text, den, so nehme ich mal an, unter einen Laserdrucker (was das Economischte wäre) gedruckt wird.

Dann kann man sich ja auch noch überlegen, ob am Rand Brieffalz-Marken gedruckt werden sollen
(also schon schon von der Druckerrei kommend - da ja Hauseigene Drucker selten über einen Rand von 5mm hinaus kommen).

Falls denn das Saison bedingt ist, kann man ja einfach die Blätter tauschen.
Bei modernen Druckern hat man ja mehrere Einschub-Möglichkeiten.
...
Zumal man dann auch die weiteren Druckkosten für die Rückseite des Briefbogens sparrt, wo dann meinst die AGB's zu finden sind.
Frag doch einfach
Alles was nicht programmiert werden kann, wird gelötet

Geändert von paule32.jk (24. Mär 2024 um 15:13 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz