Hi,
ich sitze nun seit einiger Zeit schon vor einem Problem.
Momentan bin ich dabei mit eigenen Dateiformaten zu arbeiten. Was bedeutet das damit mit inbegriffen ist das ich mehrere Dateien auslese und sie zusammenschreibe in eine Datei.
In welcher Form möchte ich nicht weiter ausführen aber es bewegt sich im bereich der Cryptographie.
Nun das ist mehr oder minder unwichtig, der Punkt ist. Das mein Programm einfach sehr langsam wird. Ich weiß natürlich bereits wann und aus welchem Grund dies geschieht.
Und zwar ist es so, wenn ich viele kleine Dateien verarbeite sagen wir 100 Bilder von der Größe von 50 kb. Dann läuft es einwandfrei. Wenn ich viele Dateien verarbeite Sagen wir rar Dateien a gut 10 mb läuft es einwandfrei. Falls aber nun der zustand zustande kommt das ich kleine Dateien verarbeite und bei diesem Prozess dann eine Große Datei dazwischenkommt braucht danach nun die kleine Datei viel mehr Zeit um verarbeitet zu werden als voher. Und dieser zustand hält dann die Ganze Zeit an! Erst nach dem neustart des Programmes läuft es wieder normal...
Ich habe bereits den RAM in Verdacht gehabt und diesen beobachtet aber hatte sich nur um ungefähr 14 mb vergrößtert nach dem genannten ereigniss. Ich spielte die Garbage Collector Methode ein und löschte anschließend Manuell. Das Ergebnis war das ich immer noch da stehe wo ich vorher stand.
Natürlich könnte ich alle kleinen Dateien zuerst verarbeiten und dann erst die großen aber das ist ja nicht der Sinn der Sache, außerdem will ich nun auch gerne mal wissen ob es dafür auch eine Lösung gibt. Somit suche ich hier Rat.
p.s.: Pausen helfen da auch nix wie gesagt der Status lässt erst wieder ab wenn das programm neu gestartet wurde. Wird eine Datei anschließend aufgerufen die zum verarbeiten mehr Zeit benötigt, weil sie Größer ist, so werden alle kleinen Dateien nur noch sehr langsam verarbeitet.
(So werden aus 150 Dateien in 30 Sekunden 150 Dateien in 10 Minuten!)
Ich hoffe ihr habt ein paar Ideen und | oder Ratschläge für mich.
Ich danke bereits im Vorraus.
-----------------------
Kleine erläuterung zum verarbeiten der Dateien
BinaryReader Normale Datei --> Evt. andere Prozesse die die Datei durchlaufen --> BinaryWriter/MemoryStream --> BinaryWriter schreiben der Datei zusammen mit den anderen Dateien mit dazugehörigen Daten in neue Einzelne Datei.
Ich hoffe ihr könnt mir helfen ansonsten werde ich die alternative packen müssen und alle großen Dateien an das ende des Prozesses legen.
ich sitze nun seit einiger Zeit schon vor einem Problem.
Momentan bin ich dabei mit eigenen Dateiformaten zu arbeiten. Was bedeutet das damit mit inbegriffen ist das ich mehrere Dateien auslese und sie zusammenschreibe in eine Datei.
In welcher Form möchte ich nicht weiter ausführen aber es bewegt sich im bereich der Cryptographie.
Nun das ist mehr oder minder unwichtig, der Punkt ist. Das mein Programm einfach sehr langsam wird. Ich weiß natürlich bereits wann und aus welchem Grund dies geschieht.
Und zwar ist es so, wenn ich viele kleine Dateien verarbeite sagen wir 100 Bilder von der Größe von 50 kb. Dann läuft es einwandfrei. Wenn ich viele Dateien verarbeite Sagen wir rar Dateien a gut 10 mb läuft es einwandfrei. Falls aber nun der zustand zustande kommt das ich kleine Dateien verarbeite und bei diesem Prozess dann eine Große Datei dazwischenkommt braucht danach nun die kleine Datei viel mehr Zeit um verarbeitet zu werden als voher. Und dieser zustand hält dann die Ganze Zeit an! Erst nach dem neustart des Programmes läuft es wieder normal...
Ich habe bereits den RAM in Verdacht gehabt und diesen beobachtet aber hatte sich nur um ungefähr 14 mb vergrößtert nach dem genannten ereigniss. Ich spielte die Garbage Collector Methode ein und löschte anschließend Manuell. Das Ergebnis war das ich immer noch da stehe wo ich vorher stand.
Natürlich könnte ich alle kleinen Dateien zuerst verarbeiten und dann erst die großen aber das ist ja nicht der Sinn der Sache, außerdem will ich nun auch gerne mal wissen ob es dafür auch eine Lösung gibt. Somit suche ich hier Rat.
p.s.: Pausen helfen da auch nix wie gesagt der Status lässt erst wieder ab wenn das programm neu gestartet wurde. Wird eine Datei anschließend aufgerufen die zum verarbeiten mehr Zeit benötigt, weil sie Größer ist, so werden alle kleinen Dateien nur noch sehr langsam verarbeitet.
(So werden aus 150 Dateien in 30 Sekunden 150 Dateien in 10 Minuten!)
Ich hoffe ihr habt ein paar Ideen und | oder Ratschläge für mich.
Ich danke bereits im Vorraus.
-----------------------
Kleine erläuterung zum verarbeiten der Dateien
BinaryReader Normale Datei --> Evt. andere Prozesse die die Datei durchlaufen --> BinaryWriter/MemoryStream --> BinaryWriter schreiben der Datei zusammen mit den anderen Dateien mit dazugehörigen Daten in neue Einzelne Datei.
Ich hoffe ihr könnt mir helfen ansonsten werde ich die alternative packen müssen und alle großen Dateien an das ende des Prozesses legen.