![]() |
Probleme unter Win98
Seit wir in unsrer Software eine Reihe von Neuerungen eingebaut haben, u.a. viele neue Formulare, weigert sie sich unter Win98 zu starten mit der Fehlermeldung, dass zu wenig Arbeitsspeicher vorhanden wäre:
Zitat:
Da ich momentan sehr ratlos bin, an welchen Stellen ich überhaupt nach der Ursache suchen könnte, habe ich ein paar generelle Fragen:
|
Re: Probleme unter Win98
ich glaub unter win9x durfte die Exe-Datei eine bestimmte Größe nicht überschreiten.
|
Re: Probleme unter Win98
Wobei unsre exe wie gesagt schon vorher so groß war, nun ist sie zwar nochmals um ein paar hundert KB größer geworden, ich denke jedoch nicht, dass genau DIE ausschlaggebend sein sollten. Wie groß darf denn unter Win98 eine exe sein??? Denn dann könnte ichs mit Sicherheit sagen!
|
Re: Probleme unter Win98
26 MB? Selbst wir mit eine Anwendung mit mehreren Mannjahren Entwicklung und Multi-DB-Unterstützung, Unicode, Umfangreiches Print-Moduls kommen auf ca. 13 MB. Und jedes MB ist schon gewaltiger Mehraufwand. Hab ihr überalle MB-Große Bitmaps (umwandeln nach PNG oder JPEG) bzw. für jede Aktion werden neue Formulare definiert ohne darauf zu achten ob man nicht Formuale so anlegen könnte das diese für mehrere Aktionen verwendbar sind.
|
Re: Probleme unter Win98
also ich hatte das selbe problem, kann aber leider nicht mehr genau sagen, wo die grenze genau ist, da wir win98 bei keinem kunden haben, und ich nur zum testen mal wieder probiert habe, ob alles auf win98 läuft, und dann gesehen habe, das dies nicht mehr der fall war (da war die EXE dann fast 30MB groß), also sehr leicht möglich, das du jetzt schon die grenze erreicht hast, (die liegt definitiv unter 30 mb)
und unsere anwendung hat mittlerweile auch schon 35mb (inklusive der komprimierten JCL Debug info) solche größen sind schon leicht möglich (auch ohne BMP - bis auf einige ImageListen halt) aber wenn man ne menge fremdkomponenten verwendet und keine runtime libraries verwenden will |
Re: Probleme unter Win98
Zitat:
|
Re: Probleme unter Win98
Zitat:
|
Re: Probleme unter Win98
Zitat:
bei mir sinds mittlerweile knapp über 2.5 Mio was er am ende anzeigt, habe einfach ne menge mehr fremdkomponenten drinnen (devExpress, wp*, ReportBuilder, KeverIT, JVCL, JCL, GraphicEx, Addict, Indy10, ELPack, QueryBuilder, VST, ...) |
Re: Probleme unter Win98
Zitat:
|
Re: Probleme unter Win98
Werden alle Formulare beim Start erstellt oder dynamisch, wenn sie gebraucht werden?
|
Re: Probleme unter Win98
Zitat:
|
Re: Probleme unter Win98
Zitat:
@Bernhard: Versucht habe ich deine Tipps selbst noch nicht, ist halt nur die Frage, ob sich der Aufwand lohnt, weil wir den Support von Win98 ohnehin zum neuen Jahr kündigen wollen. Klar wäre es trotzdem sinnvoll, ein Programm auf diese Weise auszumisten, aber Zeit ist nunmal Geld. Unsre Formulare sollten jedoch recht einheitlich sein, was die Controls angeht, da wir nicht sooo viele Entwickler haben, die einen solchen Wildwuchs erzeugen könnten. |
Re: Probleme unter Win98
Zitat:
Zitat:
![]() Zitat:
|
Re: Probleme unter Win98
Das Problem ist halt, dass uns momentan die für Optimierungsarbeiten nötige Zeit nicht zu Verfügung steht. Es brennt sozusagen an zig stellen gleichzeitig. Daher wäre es das beste, dass wir mit meinen neuen Formularen vorübergehend eine unter Win98 lauffähige Version erzeugen können und diese dann irgendwann einmal entrümpeln, wenn es gerade mal nicht so hoch her geht.
Also, wir schaun nun mal, wie wir die Exe etwas verkleinern könnten, um zumindest noch eine gewisse zeit Schonfrist zu haben. |
Re: Probleme unter Win98
Hallo,
seit Ihr -sicher- mit der Größenbeschränkung der EXE unter Win98? Für mich hört sich das eher nach Problemen in Richtung a) Swap-File zu klein (Größenzuweisung auf automatisch stellen) b) Zu wenig freier Platz auf der System/Swap-Festplatte c) Virusinfektion des Systems bzw. der EXE an jeweils natürlich auf dem Target System (Win98). Nach kurzem Googlen (deswegen der Edit): Ich habe von einigen lauffähigen Anwendungen > 30 MB unter Win9x gelesen. Die Frage ist, wieviel Prozent der EXE Code und wieviel Ressourcen sind. Das macht ja auch schon einiges aus. Hauptthema bei Deinem Problem ist wohl das Win9x Ressourcen Limit (teilweise nur 640 bis 1000 GDI Objekte für das ganze System inkl. aller Anwendungen). Ich glaube nicht an ein Größenlimit der EXE (abgesehen von der zulässigen Größe einer Datei des Dateisystems unter FAT/12/16/32 und dem freien Swap-Space falls der Speicher nicht ausreicht). Und die Unitliste kannst Du mal einfach mit der IDE Extension CnPack säubern - da kannst Du sogar sagen, ob Units mit Initilization Part auch entfernt werden dürfen. Natürlich nur nach Backup probieren ;) Läuft hier aber schon lange einwandfrei. Gruß winkel79 |
Re: Probleme unter Win98
Zitat:
@winkel79: Am virtuellen Speicher (meintest du das mit Swap-File?) wurde wohl ebenfalls schon rumgeschraubt, jedoch ohne Erfolg. Die andren Probleme schließe ich mal aus, da das Problem nicht nur auf einem 98er Rechner besteht. Wenn garnichts mehr hilft, werde ich das CnPack mal ausprobieren, danke für den Tipp! |
Re: Probleme unter Win98
Mir ist noch was eingefallen. Verwendest du schon FastMM4? Falls nein: Bau es ein. Wir sind auch mal in die Speicherfragmentierungsfehler des normalen Speichermanagers von Delphi < 2006 gefallen. Sollte zwar nicht schon zum Programmstart auftreten, aber wer weis.
Ansonsten wären Bilder (PNG/BMP's) 'ne Falle welche kaputt sind aber unter 2000/XP/Vista das Betriebssystem nicht stören aber unter Win98 komische Effekte (auch Bluescreens) verursachen können. Evtl. BMP's/PNG's von Mac-Rechnern. |
Re: Probleme unter Win98
Könntest du mir etwas nähere Infos zu FastMM4 geben? Was macht dieser Speichermanager genau? Bei uns treten des öfteren beim Compilieren Speicherzugriffsverletzungen auf, deren gründe wir nicht nachvollziehen können. Hilft FastMM4 auch dabei? Wird das nur auf dem Entwicklungsrechner benötigt oder auf jedem Rechner, auf dem anschließend das Programm laufen soll? Wie sicher ist FastMM4? Wie einfach zu installieren? Denn ich müsste meinen Chef erstmal davon überzeugen, in so grundlegenden Dingen wie einem Speichermanager auf Fremdprodukte zu setzen, statt auf Delphi-Interna. Aber wenn der auch bei unsren andren Problemen Erfolg verspricht...
|
Re: Probleme unter Win98
1, Für das Compilieren hilft es nur bedingt.
2, "Installiert" in deine Anwendung ist es ganz einfach: FastMM als ersten Eintrag in die Projektdatei 3, Sicher ist es. Ab Delphi 2006 liefert es Borland als Standard-Speichermanager mit aus. 4, Für's Debuggen muß immer eine FastMM_FullDebugMode.dll von der Anwendung erreichbar sein. |
Re: Probleme unter Win98
Und was macht FastMM4 nun genau?
|
Re: Probleme unter Win98
Also alles kau ich dir nicht vor:
![]() |
Re: Probleme unter Win98
Mir gehts nur drum zu verstehen, wofür der genau gut ist. Speichermanagement dachte ich bisher sei Aufgabe des Betriebssystems. Sonderlich viele Infos besonders zu solchen grundlegenden Fragen bietet die sourceforge-Seite nämlich nicht.
|
Re: Probleme unter Win98
Hallo,
jaja, der Thread ist alt. Um noch mal auf Win98 zu kommen. Win98 hat eine Beschränkung der Ressourcen-Anzahl. Diese darf eine bestimmte Zahl (16k oder 64k) nicht überschreiten. Jedes Form, jedes Bitmap, jede String-Tabelle stellt eine Ressource dar. Abhilfe schafft meistens upx, damit kann man die Exe packen. Bei mir hat es (bis letzten Freitag) geklappt, jetzt geht upx aber auch nicht mehr ;( Hier kann man jetzt nur noch Funktionen auslagern, z.B. in Dlls. Interessant wäre ein Programm, dass die Ressoucen zählen würde. Heiko |
Re: Probleme unter Win98
Zitat:
|
Re: Probleme unter Win98
Hallo,
Win9x zählt beim Start die Ressourcen, ist die Anzahl zu gross -> "Nicht genügend Arbeitsspeicher". UPX macht irgendwas mit der Exe (klar Exe-Packer), die Exe, die Win98 "sieht", ist viel kleiner, hat also eine kleinere Anzahl von Ressourcen. Die grosse Exe hängt quasi hintendran. Wie die das machen, ist mir egal ;) Einfach mal ausprobieren. Bisher hat das Packen mit upx bei dem Fehler immer geholfen, nur leider kommt halt ab Freitag bei mir wieder diese Meldung ;( Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz