Speicherverbrauch bei PDF Erzeugung [Erledigt]

Moderator: Moderatoren

Antworten
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2786
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 5 Mal
Danksagung erhalten: 19 Mal
Kontaktdaten:

Speicherverbrauch bei PDF Erzeugung [Erledigt]

Beitrag 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()
Zuletzt geändert von Wolfgang Ciriack am Do, 18. Nov 2021 22:17, insgesamt 1-mal geändert.
Viele Grüße
Wolfgang
Benutzeravatar
Marcus Herz
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 494
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 18 Mal
Danksagung erhalten: 76 Mal
Kontaktdaten:

Re: Speicherverbrauch bei PDF Erzeugung

Beitrag von Marcus Herz »

interessante Beobachtung. Muss ich nächste Woche gleich mal bei prüfen
Gruß Marcus

Es gibt keine Grenzen, aber du kannst welche ziehen.
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2786
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 5 Mal
Danksagung erhalten: 19 Mal
Kontaktdaten:

Re: Speicherverbrauch bei PDF Erzeugung

Beitrag 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 ?
Viele Grüße
Wolfgang
Benutzeravatar
Marcus Herz
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 494
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 18 Mal
Danksagung erhalten: 76 Mal
Kontaktdaten:

Re: Speicherverbrauch bei PDF Erzeugung

Beitrag von Marcus Herz »

Im aufruf von dslistlabel():new(, lrtf) auf true setzen,dann wird rtf geladen. In der demo ist das ausgeschaltet
Gruß Marcus

Es gibt keine Grenzen, aber du kannst welche ziehen.
Benutzeravatar
Marcus Herz
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 494
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 18 Mal
Danksagung erhalten: 76 Mal
Kontaktdaten:

Re: Speicherverbrauch bei PDF Erzeugung

Beitrag von Marcus Herz »

Am ende liegts am rtf. War schon immer was extra
Gruß Marcus

Es gibt keine Grenzen, aber du kannst welche ziehen.
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2786
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 5 Mal
Danksagung erhalten: 19 Mal
Kontaktdaten:

Re: Speicherverbrauch bei PDF Erzeugung

Beitrag 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.
Viele Grüße
Wolfgang
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2286
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 10 Mal
Danksagung erhalten: 42 Mal

Re: Speicherverbrauch bei PDF Erzeugung

Beitrag 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!
Valar Morghulis

Gruss Carlo
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2786
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 5 Mal
Danksagung erhalten: 19 Mal
Kontaktdaten:

Re: Speicherverbrauch bei PDF Erzeugung

Beitrag von Wolfgang Ciriack »

Hallo Carlo,
ja, pro PDF können 1-3 png-Dateien (jeweils ca. 4 Kb) enthalten sein.
Zuletzt geändert von Wolfgang Ciriack am Mo, 01. Nov 2021 10:55, insgesamt 1-mal geändert.
Viele Grüße
Wolfgang
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 8643
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 33 Mal
Danksagung erhalten: 126 Mal
Kontaktdaten:

Re: Speicherverbrauch bei PDF Erzeugung

Beitrag 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.
Herzlich,
Tom
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2786
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 5 Mal
Danksagung erhalten: 19 Mal
Kontaktdaten:

Re: Speicherverbrauch bei PDF Erzeugung

Beitrag von Wolfgang Ciriack »

Werde nochmal einen Test machen ohne die Png-Dateien einzubinden.
Viele Grüße
Wolfgang
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2786
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 5 Mal
Danksagung erhalten: 19 Mal
Kontaktdaten:

Re: Speicherverbrauch bei PDF Erzeugung

Beitrag 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.
Viele Grüße
Wolfgang
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2786
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 5 Mal
Danksagung erhalten: 19 Mal
Kontaktdaten:

Re: Speicherverbrauch bei PDF Erzeugung

Beitrag von Wolfgang Ciriack »

Habe jetzt mal einen Support-Case bei Combit eröffnet, mal sehen, was die dazu sagen.
Viele Grüße
Wolfgang
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 8643
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 33 Mal
Danksagung erhalten: 126 Mal
Kontaktdaten:

Re: Speicherverbrauch bei PDF Erzeugung

Beitrag 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)
Herzlich,
Tom
Benutzeravatar
Frank Grossheinrich
UDF-Programmierer
UDF-Programmierer
Beiträge: 74
Registriert: Fr, 31. Mär 2017 15:06
Wohnort: Kirchheim an der Weinstraße
Hat sich bedankt: 2 Mal
Danksagung erhalten: 20 Mal
Kontaktdaten:

Re: Speicherverbrauch bei PDF Erzeugung

Beitrag 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
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2786
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 5 Mal
Danksagung erhalten: 19 Mal
Kontaktdaten:

Re: Speicherverbrauch bei PDF Erzeugung

Beitrag von Wolfgang Ciriack »

Danke Frank, habe ich gemacht.
Viele Grüße
Wolfgang
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2786
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 5 Mal
Danksagung erhalten: 19 Mal
Kontaktdaten:

Re: Speicherverbrauch bei PDF Erzeugung

Beitrag 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.
Viele Grüße
Wolfgang
Benutzeravatar
Marcus Herz
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 494
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 18 Mal
Danksagung erhalten: 76 Mal
Kontaktdaten:

Re: Speicherverbrauch bei PDF Erzeugung

Beitrag von Marcus Herz »

Heißt das im Umkehrschluß, es liegt an dsListLabel? Muss ich da suchen?
Gruß Marcus

Es gibt keine Grenzen, aber du kannst welche ziehen.
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2786
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 5 Mal
Danksagung erhalten: 19 Mal
Kontaktdaten:

Re: Speicherverbrauch bei PDF Erzeugung

Beitrag 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.
Viele Grüße
Wolfgang
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2786
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 5 Mal
Danksagung erhalten: 19 Mal
Kontaktdaten:

Re: Speicherverbrauch bei PDF Erzeugung

Beitrag 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....
Viele Grüße
Wolfgang
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2786
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 5 Mal
Danksagung erhalten: 19 Mal
Kontaktdaten:

Re: Speicherverbrauch bei PDF Erzeugung

Beitrag 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.
Viele Grüße
Wolfgang
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 8643
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 33 Mal
Danksagung erhalten: 126 Mal
Kontaktdaten:

Re: Speicherverbrauch bei PDF Erzeugung

Beitrag von Tom »

Und ist dieser Lösungsansatz so geheim, dass er hier nicht erläutert werden darf?
Herzlich,
Tom
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2786
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 5 Mal
Danksagung erhalten: 19 Mal
Kontaktdaten:

Re: Speicherverbrauch bei PDF Erzeugung

Beitrag 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.
Viele Grüße
Wolfgang
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2786
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 5 Mal
Danksagung erhalten: 19 Mal
Kontaktdaten:

Re: Speicherverbrauch bei PDF Erzeugung

Beitrag 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.
Viele Grüße
Wolfgang
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2786
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 5 Mal
Danksagung erhalten: 19 Mal
Kontaktdaten:

Re: Speicherverbrauch bei PDF Erzeugung

Beitrag von Wolfgang Ciriack »

Mit dem Anfang der Woche veröffentlichtem L&L 26 ServicePack 5 ist der Speicherverbrauch korrigiert worden. =D>
Viele Grüße
Wolfgang
Antworten