Seite 1 von 1

Speicherverbrauch bei PDF Erzeugung [Erledigt]

Verfasst: Sa, 30. Okt 2021 8:54
von Wolfgang Ciriack
Hallo,
folgendes Zenario:
Ich erzeuge per Export nach PDF Abbilder einer LBL-Datei.
Bei ca. 70 Seiten/Dateien steigt der Speicherbedarf pro Datei um ca. 2500 kb, so dass am Ende ca. 180000 kb Speicher nicht freigegben sind.
Die Folge ist, dass danach ein Erzeugen eines Com-Objects nicht mehr möglich ist (Dokumentenviewer).
Nur Neustart des Programms hilft.
Gibt es irgendeine Möglichkeit/Funktionen in L&L, Speicher freizugeben ?
Die Ausgaberoutine ist hier mal extrahiert (vereinfacht):

Code: Alles auswählen

LL26ModuleInit()
hJob := LlJobOpen(-1)
   LlDefineVariableStart(hJob)

   ** Globale Einstellungen
	LlSetOptionString(hJob, LL_OPTIONSTR_LICENSINGINFO,   LL_LIZENZKEY)
	LlSetOption(hJob,       LL_OPTION_ESC_CLOSES_PREVIEW, .T.)
	LlSetOption(hJob,       LL_OPTION_SCALABLEFONTSONLY,  0)
	LlSetOption(hJob,       LL_OPTION_COMPRESSSTORAGE,    .F.)

   *************
   DefineDataTou(hJob)
   *************
   nRet := LlPrintStart(hJob, LL_PROJECT_LABEL, cLangName, LL_PRINT_EXPORT)

   ** Projektspezifische Einstellungen
	LlPrintSetOptionString(hJob,  LL_PRNOPTSTR_EXPORT, "PDF")
	LlPreviewSetTempPath(hJob, M->oFVW:FvwLocalTmpPath)
	LlXSetParameter(hJob, LL_LLX_EXTENSIONTYPE_EXPORT, "PDF", "Export.Path",       ConvToAnsiCP(Trim(M->oFVW:FvwLocalTmpPath)))
	LlXSetParameter(hJob, LL_LLX_EXTENSIONTYPE_EXPORT, "PDF", "Export.File",       ConvToAnsiCP(cExpDatei))
	LlXSetParameter(hJob, LL_LLX_EXTENSIONTYPE_EXPORT, "PDF", "Export.Quiet",      "1")
	LlXSetParameter(hJob, LL_LLX_EXTENSIONTYPE_EXPORT, "PDF", "Export.ShowResult", "0")

	nRet := LlPrint(hJob)
	do while nRet == LL_WRN_REPEAT_DATA
      nRet := LlPrint(hJob)
   enddo
   nRet := LlPrintEnd(hJob, 0)
   LlJobClose(hJob)
   LL26ModuleExit()

Re: Speicherverbrauch bei PDF Erzeugung

Verfasst: Sa, 30. Okt 2021 18:17
von Marcus Herz
interessante Beobachtung. Muss ich nächste Woche gleich mal bei prüfen

Re: Speicherverbrauch bei PDF Erzeugung

Verfasst: So, 31. Okt 2021 7:23
von Wolfgang Ciriack
Hallo Markus,
habe mal versucht, das ganze mit DsListLabel27 zu realisieren, um zu sehen, ob es vielleicht an meiner Ausgaberoutine für L&L liegt.
Dabei entsteht jedoch folgendes Problem:
Ich sehe meine Vorlage im Designer ohne Fehler, bei der Ausführung ohne Designer bekomme ich die Fehlermeldung -23 (Einer der verwendeten Ausdrücke hat einen Fehler...).
Daraufhin im Debugger nachgesehen, dort bekomme ich einen Fehler angezeigt: CMLL27 RTF control not loaded/loadable.
Habe auch schon die Option LL_OPTION_MAXRTFVERSION auf 0 gesetzt, schafft keine Abhilfe.
Es wird bei diesem Label-Projekt kein RTF benutzt.
Was kann ich tun ?

Re: Speicherverbrauch bei PDF Erzeugung

Verfasst: So, 31. Okt 2021 13:22
von Marcus Herz
Im aufruf von dslistlabel():new(, lrtf) auf true setzen,dann wird rtf geladen. In der demo ist das ausgeschaltet

Re: Speicherverbrauch bei PDF Erzeugung

Verfasst: So, 31. Okt 2021 13:25
von Marcus Herz
Am ende liegts am rtf. War schon immer was extra

Re: Speicherverbrauch bei PDF Erzeugung

Verfasst: Mo, 01. Nov 2021 6:18
von Wolfgang Ciriack
Hallo Markus,
habe es jetzt hinbekommen - mit einigen Hürden - das ganze über dsListLabel auszugeben.
Leider mit dem Ergebnis, dass der Speicherverbrauch ebenso nach Erzeugung von 71 PDFs angestiegen ist.
Start mit Mem. Consumption 112176, Ende mit 190812, d.h. pro PDF ca. 2687 kb. :cry:
Echter Showstopper, leider auch schon mit der produktiv eingesetzten L&L Version 26 Sp3.

Re: Speicherverbrauch bei PDF Erzeugung

Verfasst: Mo, 01. Nov 2021 9:16
von ramses
Die aktuelle Version funktioniert bei mir auch mit mehreren 100 Seiten PDF einwandfrei.
Der einzige Unterschied den ich auf die schnelle sah ist der dass es bei mir LST Projekte sind und ich den PDF Typ pdf3a verwende.

Code: Alles auswählen

LlXSetParameter(hJob, LL_LLX_EXTENSIONTYPE_EXPORT, "PDF", "PDF.Conformance","pdfa3a") 
Hast du JPG's oder PDF in deinem Projekt? Mit solchen Zutaten die gewisse Kriterien erfüllten gab es schon die grössten Probleme!

Re: Speicherverbrauch bei PDF Erzeugung

Verfasst: Mo, 01. Nov 2021 10:52
von Wolfgang Ciriack
Hallo Carlo,
ja, pro PDF können 1-3 png-Dateien (jeweils ca. 4 Kb) enthalten sein.

Re: Speicherverbrauch bei PDF Erzeugung

Verfasst: Mo, 01. Nov 2021 10:55
von Tom
Jetzt muss ich doch glatt auch mal einen Test laufen lassen. Wir verwenden das intensiv, weil u.a. beim Rechnungslauf nur PDFs erzeugt und dann individuell verteilt werden (Post, Mail, Portalupload usw.). Und wir erleben hier und da und dort, dass der Speicherbedarf ansteigt.

Re: Speicherverbrauch bei PDF Erzeugung

Verfasst: Mo, 01. Nov 2021 10:58
von Wolfgang Ciriack
Werde nochmal einen Test machen ohne die Png-Dateien einzubinden.

Re: Speicherverbrauch bei PDF Erzeugung

Verfasst: Mo, 01. Nov 2021 11:08
von Wolfgang Ciriack
Mit oder ohne png-Dateien, dasselbe Verhalten.
Problem ist dann dabei, dass danach z.B. Rechnungen auf Drucker ohne Grafiken oder gänzlich weiß ausgegeben werden oder eben ActiveX-Komponenten zur Bildbetrachtung nicht mehr geladen werden können.

Re: Speicherverbrauch bei PDF Erzeugung

Verfasst: Mo, 01. Nov 2021 15:27
von Wolfgang Ciriack
Habe jetzt mal einen Support-Case bei Combit eröffnet, mal sehen, was die dazu sagen.

Re: Speicherverbrauch bei PDF Erzeugung

Verfasst: Mo, 01. Nov 2021 15:43
von Tom
mal sehen, was die dazu sagen
"Bitte senden Sie uns die gesamten Systeminformationen und außerdem einen Snapshot Ihres Gesamtsystems und einen umfassenden Speicherdump sowie ein ausführbares Beispiel, das das Verhalten demonstriert." 8)

Re: Speicherverbrauch bei PDF Erzeugung

Verfasst: Di, 02. Nov 2021 10:37
von Frank Grossheinrich
Wolfgang Ciriack hat geschrieben: Mo, 01. Nov 2021 15:27 Habe jetzt mal einen Support-Case bei Combit eröffnet, mal sehen, was die dazu sagen.
Hallo Wolfgang,
wende dich mal zusätzlich an unseren Support.
Wenn ich meine Kollegen nicht völlig falsch verstanden habe, dann gibt es auch von uns einen Lösungsansatz.
Grüße, Frank

Re: Speicherverbrauch bei PDF Erzeugung

Verfasst: Di, 02. Nov 2021 11:58
von Wolfgang Ciriack
Danke Frank, habe ich gemacht.

Re: Speicherverbrauch bei PDF Erzeugung

Verfasst: Mi, 03. Nov 2021 7:09
von Wolfgang Ciriack
Interessant ist, dass mit dem "alten" LegacyMode" (bis L&L 25) nur 39000 kB statt 195000 kB Speicher verbraucht wurde. Dafür ist die Verarbeitungszeit mit 57,5 s gegenüber 37,9 s doch etwas langsamer.

Re: Speicherverbrauch bei PDF Erzeugung

Verfasst: Mi, 03. Nov 2021 11:32
von Marcus Herz
Heißt das im Umkehrschluß, es liegt an dsListLabel? Muss ich da suchen?

Re: Speicherverbrauch bei PDF Erzeugung

Verfasst: Mi, 03. Nov 2021 12:33
von Wolfgang Ciriack
Nein, Markus, ob meine L&L-Klasse oder dsListLabel ist egal, es liegt an der Umstellung von L&L ab Version 26 auf eine neuere PDF-Rendering Engine.
Ich habe per Registry Key auf die "alte" PDF-Engine umgeschaltet, damit wird wesentlich weniger Speicher verbraucht.

Re: Speicherverbrauch bei PDF Erzeugung

Verfasst: Di, 09. Nov 2021 11:58
von Wolfgang Ciriack
Nachdem ich Combit ein Testprogramm zur Verfügung gestellt habe, haben diese das nachvollziehen können und eskalieren lassen. Jetzt ist das Problem zum Hersteller der PDF-Komponente gemeldet und auch da bestätigt worden. Man arbeitet dort wohl schon an einer Lösung. Fortsetzung folgt....

Re: Speicherverbrauch bei PDF Erzeugung

Verfasst: Do, 11. Nov 2021 5:41
von Wolfgang Ciriack
Hallo Frank,
vielen Dank nochmal für den Hinweis, mich an euren Support zu wenden.
Durch euren Lösungsansatz läuft mein Programm jetzt erst einmal trotz des hohen Speicherverbrauchs beim Erzeugen der PDFs ohne Folgefehler bei der Erzeugung von Rechnungsausgaben.

Re: Speicherverbrauch bei PDF Erzeugung

Verfasst: Do, 11. Nov 2021 9:23
von Tom
Und ist dieser Lösungsansatz so geheim, dass er hier nicht erläutert werden darf?

Re: Speicherverbrauch bei PDF Erzeugung

Verfasst: Do, 11. Nov 2021 10:41
von Wolfgang Ciriack
Hallo Tom,
ich wurde gebeten, diese Lösung nicht im Forum zu posten, da Sie diese dokumentieren und "im Auge" behalten wollen.
Aber es kann sich jeder gerne, wenn er solche Probleme hat, an den Support wenden.

Re: Speicherverbrauch bei PDF Erzeugung

Verfasst: Fr, 12. Nov 2021 10:29
von Wolfgang Ciriack
So, habe jetzt die Info, dass das Speicherproblem mit dem ServicePack1 für Version 27 gefixt wird.
Eine vorab erhaltene DLL habe ich getestet, und es ist beim Speicherverbrauch wieder so wie mit L&L 25 oder dem "alten" LagacyMode, ein wenig, aber nicht mehr fortlaufend bis zur Fehlermeldung -102.

Re: Speicherverbrauch bei PDF Erzeugung

Verfasst: Mi, 17. Nov 2021 13:13
von Wolfgang Ciriack
Mit dem Anfang der Woche veröffentlichtem L&L 26 ServicePack 5 ist der Speicherverbrauch korrigiert worden. =D>