AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

F2046 Zu wenig Arbeitsspeicher (Delphi)

Ein Thema von Sel2012 · begonnen am 7. Nov 2015 · letzter Beitrag vom 13. Nov 2015
Antwort Antwort
Seite 1 von 3  1 23      
Sel2012

Registriert seit: 6. Jun 2015
Ort: 31535
103 Beiträge
 
Delphi XE5 Professional
 
#1

F2046 Zu wenig Arbeitsspeicher (Delphi)

  Alt 7. Nov 2015, 16:30
Meine 150 MB-App machte bisher beim Compilieren etc. keine Probleme. Ich nutze XE5.
Jetzt habe ich eine Varante auf 90 MB abgespeckt. Ohne Images klappt's auch.
Nun habe ich ca. 200 jpgs (je ca. 30 kB) mit MultiResBitmaps auf 5 Images verteilt - klappt auch noch.
Aber bei 3 zusätzlichen Bildchen kommt beim schlichten Versuch zu speichern die Fehlermeldung "Zu wenig Arbeitsspeicher". Auch beim Compilierungsversuch kommt die Meldung (s. Titel).
Der Taskmanager gibt keinen Hinweis auf Überlastung des Speichers (. Anhang). Ich glaube, die Hilfe zu MSBuild und DP und Google durchforstet zu haben. Den Rat aus XE8 "Wählen Sie Projekt > Optionen > Delphi-Compiler, und aktivieren Sie die Eigenschaft "MSBuild extern für die Compilierung verwenden"" kann ich in XE5 nicht befolgen, da es die Einstellmöglichkeit nicht gibt.
Hat jemand damit Erfahrung? Probleme scheint es ja mehrfach zu geben.
Miniaturansicht angehängter Grafiken
app1.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: F2046 Zu wenig Arbeitsspeicher (Delphi)

  Alt 7. Nov 2015, 17:27
1500 MB App?
Also in unserer App stecken >> 10 Mannjahre Entwicklung und 2 Mio. Quellcodezeilen aber wir bekommen keine 90 geschweige denn 150 MB hin.
Ich denke du machst da einiges Falsch (zusätzlich zu den Speicherlücken der IDE).

Müssen es den JPEGs sein? Reichen nicht PNGs (in einer ImageListe) auch?
Erstellst du alle Formulare beim Programmstart? Wieso?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
mensch72

Registriert seit: 6. Feb 2008
838 Beiträge
 
#3

AW: F2046 Zu wenig Arbeitsspeicher (Delphi)

  Alt 7. Nov 2015, 18:06
Soviel JPG Bilder als Resourcen... JPEG wird bei XE5 dann intern oft ausgepackt gespeichert bzw. zumindest entpackt verarbeitet.

Simple Lösung:
-> nimm einfach eine externe "Bilddatenbank" im einfachsten Fall mit einem numerischem Indexfeld und einem BlobFeld fürs Bild
  Mit Zitat antworten Zitat
Sel2012

Registriert seit: 6. Jun 2015
Ort: 31535
103 Beiträge
 
Delphi XE5 Professional
 
#4

AW: F2046 Zu wenig Arbeitsspeicher (Delphi)

  Alt 7. Nov 2015, 18:14

Müssen es den JPEGs sein? Reichen nicht PNGs (in einer ImageListe) auch?
Erstellst du alle Formulare beim Programmstart? Wieso?
Hallo Bernhard,

ohne die Bilder werden 2000 Zeilen aus Memos einzeln nacheinander gelesen und jeder Zeile wird eine kurze mp3-Datei zugeodnet. Nebenbei wird jede Textzeile noch analysiert und farblich bearbeitet - das war's schon. Ich kenne keine Methode, die mp3s zu verkleinern. Das scheint sich aufzusummieren.
Die Bildquellen werden über MultiResBitmaps direkt ins Programm übernommen und nicht separat (zusätzlich) gelagert. Auch dafür kenne ich keine Alternative.
Wie kommst du auf 1500 MB? Die .apk ist auch "nur" 49 MB groß. Keine Ahnung, wie man das schrumpfen kann. Also im Grunde liefern
Memos resourceschonend Text in ein relativ kleines Programm und mp3 wird "beigestellt".
Prinzipiell meine ich, dass XE5 und MSBuild mit 200 MB nicht überfordert sein dürfte, da das Programm nicht komplex verschachtelt ist, sondern fast linear arbeitet.
Aber natürlich greife ich gern Alternativen auf.

Vielen Dank erst einmal
Udo

Geändert von Sel2012 ( 7. Nov 2015 um 18:16 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: F2046 Zu wenig Arbeitsspeicher (Delphi)

  Alt 7. Nov 2015, 18:17
APK? Also FMX - Das hättest du gleich am Anfang angeben sollen.
Bei FMX gibts noch ein paar andere Faktoren als bei einem VCL-Projekt.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.144 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: F2046 Zu wenig Arbeitsspeicher (Delphi)

  Alt 7. Nov 2015, 19:32
Erstmal alles in eine Resource...

Die Resource natürlich erstmal Packen...

Memo als "Textspeicher"...
  Mit Zitat antworten Zitat
mensch72

Registriert seit: 6. Feb 2008
838 Beiträge
 
#7

AW: F2046 Zu wenig Arbeitsspeicher (Delphi)

  Alt 7. Nov 2015, 19:43
eigentlich "riecht" hier alles nach einer kleinen Datenbank(z.B. SQlite), aus welcher im OwnerDrawRow einer "Anzeigeliste" alles live für eine Zeile zusammengesucht, Regel basiert bearbeitet und ausgegeben/"gemalt" wird.

Farbiger Text, Bildchen, MP3s und was auch immer werden so völlig ohne "alles erstmal in den Speicher laden" fix OnDemand sauber gelöst.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: F2046 Zu wenig Arbeitsspeicher (Delphi)

  Alt 7. Nov 2015, 19:46
Bei der Menge an Ressourcen würde ich mit Stellvertreter-Objekten und einem Cache arbeiten.

Die Stellvertreter laden bei Bedarf die Daten aus dem Cache oder vom Datenträger (und befördern die Daten in den Cache). Dadurch sind die scheinbar dauerhaft verfügbar, belasten den Speicher aber nur wenig, bzw. ich kann die Auslastung selber steuern.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Sel2012

Registriert seit: 6. Jun 2015
Ort: 31535
103 Beiträge
 
Delphi XE5 Professional
 
#9

AW: F2046 Zu wenig Arbeitsspeicher (Delphi)

  Alt 8. Nov 2015, 07:50
Erst einmal vielen Dank für die interessanten Vorschläge.
Leider bin ich zu unbedarft, um sie umzusetzen, da ich keine Erfahrungen allein mit den Begriffen habe.

Ich habe versucht, mit der XE8-Anleitung weiter zu kommen:
http://docwiki.embarcadero.com/RADSt...r_%28Delphi%29

"F2046 Zu wenig Arbeitsspeicher (Delphi)

Dieser Fehler wird ausgegeben, wenn für den integrierten RAD Studio-Compiler zu wenig Arbeitsspeicher vorhanden ist.

Dieser seltene Fehler könnte auftreten, wenn Sie eine extrem große Projektgruppe mit Anwendungen und Bibliotheken erzeugen.

Führen Sie zur Lösung dieses Problems einen der folgenden Schritte aus:

Vergewissern Sie sich, dass die Auslagerungsdatei groß genug ist und ausreichend freier Festplattenspeicher zur Verfügung steht. Siehe Ändern der Größe des virtuellen Arbeitsspeichers.:
http://windows.microsoft.com/en-us/w...#1TC=windows-7

Konfigurieren Sie Ihre Projektgruppe so, dass ein Erzeugen außerhalb der IDE möglich ist: Wählen Sie Projekt > Optionen > Delphi-Compiler, und aktivieren Sie die Eigenschaft "MSBuild extern für die Compilierung verwenden".
Erzeugen Sie Ihre Projektgruppe in der Befehlszeile.
Gestalten Sie die Anwendungen und Bibliotheken in Ihrer Projektgruppe so, dass sie überwiegend Delphi-Packages verwenden. Mit Delphi-Packages steht für die IDE ausreichender Arbeitsspeicher zur Verfügung."

Ich habe also den virtuellen Arbeitsspeicher auf 6000 MB erweitert und bei weiteren 120 Bildchen (ab letzem Mecker "zu wenig Arbeitsspeicher") bisher keinen beleidigten Kommentar des Programms bekommen.

Ich probiere mal weiter....

Für andere Komprimierungsstrategien mit FMX bin ich zu dumm
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.144 Beiträge
 
Delphi 10.3 Rio
 
#10

AW: F2046 Zu wenig Arbeitsspeicher (Delphi)

  Alt 8. Nov 2015, 10:20
Dann google doch mal ZlibEx, Streampacker und Daten als Resource einbinden.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 22:37 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