Dateigrößenbeschränkungen für CHM-Dateien (HTML Help-Format)?

2609
Monica Cellio

Wir verwenden den HTML Help Workshop von Microsoft, insbesondere hhc.exe, um eine CHM-Datei mit HTML-formatierter Dokumentation zusammenzustellen. Offiziell gibt es keine Begrenzung für die Größe einer CHM-Datei, aber da unser Dokumentsatz immer größer wurde, sind immer mehr Build-Fehler aufgetreten. Die Fehlermeldungen sind nicht großartig, aber es scheint, dass uns der Speicher ausgeht. Das Erhöhen des Speichers hat jedoch keinen Unterschied gemacht. (In den letzten Wochen ist der Dokumentensatz um etwa 25% gestiegen; wir haben versucht, den Speicher zu verdoppeln.)

Unsere CHM-Datei ist 12 MB groß, was nicht groß erscheint. Können wir dies tun oder haben wir die inoffiziellen Grenzen dessen erreicht, was dieses Tool zumindest auf einer 32-Bit-Maschine bewältigen kann?

Zum Hinzufügen hinzugefügt:

Der Fehler, den wir erhalten, ist ein Popup mit dem folgenden Text:

hhc.exe - Anwendungsfehler [X] Die Anweisung um "0x453217d8" verwies auf Speicher um "0x ########". Das Speicher konnte nicht "gelesen" werden. Klicken Sie auf OK, um das Programm zu beenden. Klicken Sie auf ABBRECHEN, um das Programm zu debuggen. [OK] [Abbrechen] 

Wir führen dies von einem automatisierten Build aus, das ein Ant-Ziel aufruft, das <exec> verwendet, um hhc.exe aufzurufen. Auf dem Build-Computer wird Windows Server 2003 ausgeführt, und der Arbeitsspeicher beträgt 4 GB.

Eine Meta-Frage: Meine ursprüngliche Frage zur Dateigröße wurde beantwortet. Was soll ich mit dieser Folge der Kommentare tun? Frage neu formulieren? Akzeptieren Sie die Antwort auf die ursprüngliche Frage? Wie Sie meinem Vertreter entnehmen können, bin ich hier neu.

2

3 Antworten auf die Frage

2
Keltari

Das "Bit" einer Maschine hat nichts mit diesem Prozess zu tun. Zeuge bezieht sich auf die Speichermenge, die ein Prozessor ansprechen kann. 32-Bit-Maschinen können 4 GB Arbeitsspeicher ansprechen, viel mehr als Sie dafür benötigen. Und selbst wenn Sie mehr benötigen würden, würde die Maschine einfach einen Seitenspeicher erstellen. Das würde den Prozess verlangsamen, aber nicht verhindern, dass es funktioniert.

Ich habe gerade den HTML Help Workshop von Microsoft heruntergeladen und installiert und konnte eine Handvoll von mehr als 15 MB CHM-Dateien, einschließlich einer 25 MB-Datei, dekompilieren und erneut kompilieren. Das Problem ist höchstwahrscheinlich etwas auf dem Computer, das ein Problem verursacht, beispielsweise ein Virenscanner. Deaktivieren Sie vor dem Kompilieren alle Virenscanner. Haben Sie versucht, die CHMs auf einer anderen Maschine zu kompilieren? Und warum denkst du, dass dir das Gedächtnis ausgeht?

Wir erhalten einen nicht deterministischen Speicherfehler (Speicher konnte nicht gelesen werden), nur auf einigen Computern und nur zeitweise. Wir haben versucht, dem Prozess 1 GB Speicher zu geben (normalerweise 512 MB). Ich habe die Build-Person gebeten, ihr 2 GB zu geben, um zu sehen, was passiert. Ist 2 GB nicht das Funktionslimit einer 32-Bit-Maschine? Wenn wir einen Teil des Dokuments auskommentieren, geschieht dies nicht, aber wenn wir das wiederherstellen und einen anderen * ausgleichen, ist dies auch wahr, was darauf hindeutet, dass dies kein Problem im Inhalt selbst ist. Monica Cellio vor 13 Jahren 0
Danke für die Angaben zu Dateigrößen! Es scheint also, dass die Gesamtgröße hier nicht unser Problem ist. Auf welcher Plattform haben Sie Ihre Tests durchgeführt? Monica Cellio vor 13 Jahren 0
Ich habe es auf einem Win 7 32 mit 2 GB RAM getestet. Auf dem Computer ist keine andere Software installiert, da es sich um eine Neuinstallation handelt. Könnten Sie den * genauen * Fehler angeben? Keltari vor 13 Jahren 0
Kümmern Sie sich nicht um Hardwareprobleme. Ich bin mir sicher, dass dies ein Softwareproblem ist, keine Hardware. Keltari vor 13 Jahren 0
Ich habe den Fehler zu der Frage hinzugefügt (etwas ausführlich für Kommentare). Monica Cellio vor 13 Jahren 0
seltsam, nur ein paar Haschereien. Haben Sie versucht, den Virenschutz zu deaktivieren? Keltari vor 13 Jahren 0
Wir dürfen die Antivirensoftware nicht deaktivieren. :-( Aber andere, kleinere Builds, die dieses Tool verwenden, scheinen zu funktionieren, was sich lohnt. Monica Cellio vor 13 Jahren 0
Nun, ich glaube ehrlich gesagt nicht, dass es sich um ein Hardwareproblem handelt, da ich es mit ähnlicher Hardware tun kann. Ich denke, es ist ein Softwareproblem mit Ihren Maschinen. Bitten Sie Ihren Sysadmin, eine virtuelle Maschine hochzufahren, die CHM-Software zu installieren und es auszuprobieren. Ich würde wetten, dass es funktioniert. Keltari vor 13 Jahren 0
2
Craig Foot

Ich hatte ein ähnliches Problem mit dem HTML Help Workshop, bei dem ich mein CHM nicht kompilieren konnte, und mein CHM betrug ebenfalls etwa 12 MB. Es wurde die Fehlermeldung bereitgestellt:

HTML Help Workshop: hhw.exe - Fatal Application Exit [X] There is not enough memory available for this task. Quit one or more programs to increase available memory, and then try again. [OK] 

Ich habe die protokollierte Ausgabe für den Erstellungsprozess überprüft und festgestellt, dass in meiner Indexdatei zu viele Themen einem einzelnen Keyword zugeordnet wurden.

In diesem Fall funktionierte der Build, wenn einem bestimmten Keyword 7132 Themen zugeordnet waren. Der Build schlug jedoch fehl, wenn 7140 Themen demselben Keyword zugewiesen wurden.

Ich habe das Schlüsselwort aus dem Index entfernt und mein CHM wurde erfolgreich kompiliert. Dies bedeutet, dass es anscheinend eine begrenzte Anzahl von Themen gibt, die mit einem Keyword verknüpft werden können. Ich habe in der Dokumentation keinen Hinweis darauf gegeben, was diese Grenze sein könnte, aber meine Erfahrung kann anderen helfen.

Mir ist klar, dass das Zuweisen von über 1000 Themen zu einem bestimmten Keyword ohnehin den Punkt eines Indexes zunichte macht und ist keine gute Idee!

Können Sie bitte mehr Klarheit darüber geben, wie Sie das Keyword aus dem Index entfernt haben? checho vor 10 Jahren 0
Der Index wird durch die .hhk-Datei im CHM-Projekt definiert. Entfernen Sie die Einträge, die sich auf das Thema beziehen, aus dieser Datei (entweder manuell, indem Sie die Textdatei bearbeiten, oder verhindern, dass sie durch das Erstellen der .hhk-Datei an erster Stelle dorthin gelangen). Craig Foot vor 8 Jahren 0
0
surfasb

Haben Sie bei dem inkonsistenten Muster des Fehlers korrupte Softwareinstallationen ausgeschlossen?

Ich würde den Code bei einer Neuinstallation testen.

Guter Vorschlag. Wir haben bereits eine Neuinstallation der Version (1.3) und dann des neuesten Patches (1.33) durchgeführt, falls das Problem dadurch behoben wurde. Kein Glück. Monica Cellio vor 13 Jahren 0