Zwischenspeichern im RAM

Gast #6619608
Lesenswert?

Hallo,

per COM (VBA oder .NET) automatisiere ich zwei Programme.
Aus dem einen Programm exportiere ich 100te Dateien, die in dem anderen 
Programm wieder eingelesen werden.
Diese Dateien werden im temporären Ordner zwischengespeichert.
Der Umweg über die Festplatte dauert unnötig lange.

Ist es möglich die Dateien im RAM anstatt auf der Festplatte 
zwischenzuspeichern?
Da meine SW auf Fremdrechnern installiert wird sollte das möglichst mit 
Bordmitteln gehen.
#6619623
Lesenswert?

Thomas_jhfd schrieb:
> Hallo,
>
> per COM (VBA oder .NET) automatisiere ich zwei Programme.
> Aus dem einen Programm exportiere ich 100te Dateien, die in dem anderen
> Programm wieder eingelesen werden.
> Diese Dateien werden im temporären Ordner zwischengespeichert.
> Der Umweg über die Festplatte dauert unnötig lange.
>
> Ist es möglich die Dateien im RAM anstatt auf der Festplatte
> zwischenzuspeichern?
> Da meine SW auf Fremdrechnern installiert wird sollte das möglichst mit
> Bordmitteln gehen.

Was bedeutet in diesem Fall per COM automatisieren zwei Programme? 
Entweder kommunizieren sie miteinander oder nicht.

Die Frage kann auch so lauten - nicht Daten im Speicher zu haben, 
sondern was kann das zweite Programm, was das erste nicht kann oder 
umgekehrt?

Wenn die Festplatte durch SSD ersetzt wird, dann kann es sein, dass die 
Performance steigen könnte. Die Lebensdauer der Festplatte aber nicht.
#6619746
Lesenswert?

Ein "Programm" läuft in einem Prozess. Bei einem anständigen 
Betriebssystem haben zwei Prozesse zwei verschiedene Adressräume für den 
Speicher. Sie können sich also gegenseitig Speicherbereiche nicht lesen 
oder schreiben.

ein paar Begriffe für Google:
* Ramdisk (hatten wir schon)
* TCP und 127.0.0.1
* IPC
Gast #6619841
Lesenswert?

Klar, eine Ramdisk wäre das Mittel der Wahl.
Geht aber anscheinend nur mit externen Tools.
Schade dass Windows von Haus aus keine Möglichkeit bietet.

Shared Memory nutzt mir nichts, weil ich ja die Export Funktion von dem 
einen Programm, und die Import Funktion des anderen Programms 
fernbediene. Und das geht nun mal nur über das Dateisystem.

TCP und 127.0.0.1 wäre dann eine Möglichkeit, wenn ich ein 
Netzwerklaufwerk im RAM einrichten könnte.
#6619902
Lesenswert?

MaWin schrieb:
> Thomas_jhfd schrieb:
>> Shared Memory nutzt mir nichts, weil ich ja die Export Funktion von dem
>> einen Programm, und die Import Funktion des anderen Programms
>> fernbediene.
>
> hä?

Was meinst du mit "hä?"? Wie würdest du einem Programm sagen, dass es 
die Dateien statt auf die Festplatte in einen Shared Memory schreiben 
soll? Und wie kommt überhaupt ein Dateisystem in den Shared Memory? Wohl 
gemerkt alles mit Bordmitteln.
Gast #6619926
Lesenswert?

> Aus dem einen Programm exportiere ich 100te Dateien, die in dem anderen
> Programm wieder eingelesen werden.

Das heißt, du hast irgendwas mit Windows-Bordmitteln zusammengebastelt. 
Jetzt wäre eine gute Zeit mal über eine anständige Architektur 
nachzudenken.
Gast #6619950
Lesenswert?

Rolf M. schrieb:
> Und wie kommt überhaupt ein Dateisystem in den Shared Memory?

Wozu das denn? Du hast nichts verstanden, daher auch das "hä". 
Selbstverständlich musst du halbwegs wissen was du tust wenn du eine 
Interprozesskommunikation programmieren willst. Übrigens heisst Shared 
memory, Überraschung, deshalb so weil Memory von beiden Prozessen 
benutzt werden kann. Was da drinsteht ist Sache des Programmierers.

Georg
Gast #6619976
Lesenswert?

Georg schrieb:
> Shared memory

Ramdisk und shared memory würde ich vermeiden weil man nie weiß ob 
überhaupt genügend RAM in der Maschine ist. Wahrscheinlich braucht der 
To Thomas mal ein paar neue SSDs statt seiner müden Festplatten. Das 
würde einen wesentlichen Geschwindigkeitsgewinn bringen, da die 
magnetischen Festplatten das langsamste Teil im PC sind.
#6619990
Lesenswert?

Thomas_jhfd schrieb:
> Der Umweg über die Festplatte dauert unnötig lange.

Wenn vorgegeben wird, dass es übers Filesystem gehen muss, weil das 
Programm eben so arbeitet, keine SSD vorausgesetzt werden kann und 
Systemerweiterungen nicht notwendig sein dürfen, dann geht eben nur das, 
was das Betriebssystem mitbringt. Und ein RAM-Filesystem gibts m.W. in 
Windows nicht mit Bordmitteln (in Linux wird das heute in den üblichen 
Distros bereits von vorneherein eingesetzt).
Gast #6620013
Lesenswert?

Und sonst? schrieb:
>> Aus dem einen Programm exportiere ich 100te Dateien, die in dem
> anderen
>> Programm wieder eingelesen werden.
>
> Das heißt, du hast irgendwas mit Windows-Bordmitteln zusammengebastelt.
> Jetzt wäre eine gute Zeit mal über eine anständige Architektur
> nachzudenken.

Hier checken es wieder einige nicht, oder?
Er hat eine Fremd Applikation die er über COM automatisieren kann, das 
automatisierte Programm bietet nur diese Schnittstelle mit Dateiausgabe, 
er kann daran nichts ändern, hat nichts mit seinem Code zu tun
#6620061
Lesenswert?

MaWin schrieb:
> Tja. Dann hätte Thomas_jhfd das halt mal so beschreiben sollen.

Hat er doch.

Thomas_jhfd schrieb:
> per COM (VBA oder .NET) automatisiere ich zwei Programme.

Das COM für viele in einem Mikrocontroller-Forum halt RS232 bedeutet, 
hätte er berücksichtigen können.

foobar schrieb:
> Sicher, dass es die Platte und nicht das COM-Geraffel ist?

Klär das erstmal ab.

Bis Word per COM einen Dreizeiler geschrieben hat, kann man direkt 
Hunderte DAteien schreiben
#6620068
Lesenswert?

Georg schrieb:
> Rolf M. schrieb:
>> Und wie kommt überhaupt ein Dateisystem in den Shared Memory?
>
> Wozu das denn? Du hast nichts verstanden, daher auch das "hä".

Bist du dir da sicher? Ich glaube eher, du hast nichts verstanden, 
genauso wie der Autor des "hä".

> Selbstverständlich musst du halbwegs wissen was du tust wenn du eine
> Interprozesskommunikation programmieren willst.

Die hat nur nichts mit den Dateien zu tun. Die IPC dient hier nur zur 
Fernsteuerung, nicht zur Übertragung der Daten.

MaWin schrieb:
> Rolf M. schrieb:
>> Wie würdest du einem Programm sagen, dass es
>> die Dateien statt auf die Festplatte in einen Shared Memory schreiben
>> soll?
>
> Indem ich das Programm entsprechend schreibe?

"Das Programm" hat er doch gar nicht geschrieben, sondern nur dessen 
Fernsteuerung. Er hat also ein fertiges Programm, dem er per IPC sagen 
kann, dass es eine Datei erstellen und auf der Platte speichern soll. 
Und wie soll er da bitte dieses Programm dazu bringen, diese Datei statt 
der Platte in einen Shared Memory zu legen?
Wie schon von ihm erkannt, wäre eine Ramdisk dafür das Mittel der Wahl. 
Darin kann man im Gegensatz zu shared memory nämlich einfach Dateien 
anlegen, genau wie auf der Festplatte.

MaWin schrieb:
> cppbert3 schrieb:
>> Hier checken es wieder einige nicht, oder?
>
> Tja. Dann hätte Thomas_jhfd das halt mal so beschreiben sollen.
> Hellsehen kann ich leider nicht.

Ich sehe nicht, wo er etwas anderes beschrieben hätte. Er schrieb:

Thomas_jhfd schrieb:
> per COM (VBA oder .NET) automatisiere ich zwei Programme.

und nirgends hat er behauptet, dass er diese zwei Programme selbst 
geschrieben hätte. Was er aber erklärt hat, ist dass das eine Programm 
"100te Dateien" erzeugt, die das andere wieder einlesen muss.
#6620074
Lesenswert?

Kater schrieb:
> Also, wenn man ein ISO-Image öffnet, legt Windows automatisch eine
> virtuelle Partition an. Also existiert sowas doch in Windows. Man muß es
> nur programmtechnisch ansprechen und verwalten können.

Um ein ISO-Image als Filesystem lesend zu öffnen benötigt man ein 
lediglich einen Filesystemtreiber für ISO, der ein Diskfile als 
Storage-Device nutzen kann. Letzteres ist der einzige Unterschied zu ISO 
auf CD/DVD. Mit RAM hat das nichts zu tun.
Gast #6620078
Lesenswert?

Kater schrieb:
> Thomas_jhfd schrieb:
>
>> chade dass Windows von Haus aus keine Möglichkeit bietet.
>
> Also, wenn man ein ISO-Image öffnet, legt Windows automatisch eine
> virtuelle Partition an. Also existiert sowas doch in Windows. Man muß es
> nur programmtechnisch ansprechen und verwalten können.

Was bringt ihm das in Windows fest eingebautes virtuelles Dateisystem 
für ISO Images bei seiner Anforderung? Eine Ramdisk implementiert die 
selbe API aber die bekommt er ohne Admin Rechte nicht geladen, was hier 
sein Problem ist

Unter Windows gibt es keine eingebaute Ramdisk die per Default aktiv ist 
die er für so was nutzen könnte
#6620159
Lesenswert?

MaWin schrieb:
> Rolf M. schrieb:
>> und nirgends hat er behauptet, dass er diese zwei Programme selbst
>> geschrieben hätte.
>
> Wir befinden uns in:
> Forum: PC-Programmierung

Ich empfehle, mein Posting und das des TE nochmal durchzulesen und zu 
versuchen, es zu verstehen. Vor allem die Bedeutung dieses Satzes:

Rolf M. schrieb:
> "Das Programm" hat er doch gar nicht geschrieben, sondern nur dessen
> Fernsteuerung.

Kann es sein, dass du es darauf anlegst, die Frage falsch zu verstehen?
Gast #6620229
Lesenswert?

Rolf M. schrieb:
> Kann es sein, dass du es darauf anlegst, die Frage falsch zu verstehen?

Was soll der Blödsinn?
Ich habe die Frage anscheinend falsch verstanden.
Das haben wir ja jetzt geklärt.

Die Ursachen dafür, dass jemand eine Frage falsch versteht, liegen in 
der Regel beim Fragesteller. Sie war offensichtlich nicht eindeutig 
gestellt.
Gast #6620252
Lesenswert?

Thomas_jhfd schrieb:
> per COM (VBA oder .NET) automatisiere ich zwei Programme.
> Aus dem einen Programm exportiere ich 100te Dateien, die in dem anderen
> Programm wieder eingelesen werden.

ER wollte nur den UMweg über die Festplatte sparen. Also wäre Ramdisk 
schon schön WENN der RAM reicht. Gleichzeitig sind aber alle Daten 
verloren wenn mal der Strom fehlt. Also doch copy irgendwas nach 
x:\irgendwo
Gast #6620262
Lesenswert?

Wir kennen jetzt keine Details zu deinem Code, aber vielleicht schlucken 
die über Com+ aufgerufenen Funktionen ja named pipes als file handle. 
Die wurden ursprünglich mal genau dazu erfunden.

Stickworte "named pipe" und NPFS (named pipe file system)

Musst du dich eventuell etwas einlesen. Oder jemand anders hier hat 
Erfahrung damit.

https://versprite.com/blog/security-research/microsoft-windows-pipes-intro/

Grüße,
M
Gast #6620622
Lesenswert?

cppbert3 schrieb:
> Hier checken es wieder einige nicht, oder?
> Er hat eine Fremd Applikation die er über COM automatisieren kann, das
> automatisierte Programm bietet nur diese Schnittstelle mit Dateiausgabe,
> er kann daran nichts ändern, hat nichts mit seinem Code zu tun

Genau so ist es. Zwei Programme, die ich nehmen muss wie sie sind. 
Dachte das wäre klar. Scheinbar nicht. Danke.
Gast #6620695
Lesenswert?

Da ist das Problem:
Thomas_jhfd schrieb:
> Da meine SW auf Fremdrechnern installiert wird sollte das möglichst mit
> Bordmitteln gehen.

Wenn ich das wie eine Library in meine Solution packen kann wäre das ok. 
Ich möchte aber nicht, dass der User weitere SW installieren und 
einrichten muss.

Per Copy & Paste über die Zwischenablage ist noch naheliegend. Geht auch 
prinzipiell. Hat aber Nachteile wegen fehlender Einstellmöglichkeiten, 
die der Export als Datei bietet.

Wenn es keine Möglichkeit gibt das innerhalb meiner Solution selbst 
umzusetzen bleibt es halt wie es ist. Der Poweruser hat ja immer noch 
die Möglichkeit seinen temporären  Ordner selbst in eine Ramdisk zu 
legen.
Gast #6621070
Lesenswert?

Georg schrieb:
> Thomas_jhfd schrieb: schrieb:
>> Wenn ich das wie eine Library in meine Solution packen kann wäre das ok
>
> Du schreibst doch, dass du an der Software nicht das geringste ändern
> kannst - was soll da eine Library helfen? Die Funktionen muss man aus
> der Software heraus aufrufen.
>
> Georg

Er hat 2 Applikationen die er beide per COM fernsteuert - die eine 
Importiert, die andere Exportiert - da ist noch sein dritte im Bunde

ist das echt alles so schwer?
Gast #6621078
Lesenswert?

Oliver S. schrieb:
> Thomas_jhfd schrieb: schrieb:
>> Wenn ich das wie eine Library in meine Solution packen kann wäre das ok.
>
> Eigentlich gibt es da kein allzugroßes Problem. Für reine
> C&P-"Programmierer" wirds aber vermutlich schwierig.
>
> Oliver

Er schrieb doch das er die Software wenn möglich ohne zusätzlichen 
Aufwand auf Fremd-Rechnern installieren will - eine RAMDisk bedürfte 
mindestens Admin-Rechte - vielleicht bekommt er die einfach nicht
#6621087
Lesenswert?

Wie soll denn das hier:

Thomas_jhfd schrieb:
> Ist es möglich die Dateien im RAM anstatt auf der Festplatte
> zwischenzuspeichern?

mit dem hier:

Thomas_jhfd schrieb:
> Genau so ist es. Zwei Programme, die ich nehmen muss wie sie sind.

zusammenpassen?

Wie soll man ein Programm, an dem man nichts verändern kann, dazu 
bringen auf eine RAM-Disk zu schreiben anstatt auf die Festplatte?

Wie soll man ein Programm, an dem man nichts verändern kann, dazu 
bringen von einer RAM-Disk zu lesen anstatt von der Festplatte?
Gast #6621103
Lesenswert?

Mark B. schrieb:
> Wie soll man ein Programm, an dem man nichts verändern kann, dazu
> bringen auf eine RAM-Disk zu schreiben anstatt auf die Festplatte?

Den Pfad, wohin exportiert wird, kann er vermutlich per COM 
Schnittstelle beeinflussen. Oder er erstellt einen Symlink zu einem 
Verzeichnis auf der RAM-Disk. Nur wie man automatisiert unter Windows 
eine RAM-Disk anlegt, dass weiß ich nicht. Bin kein Windows Spezialist.
Gast #6621104
Lesenswert?

Mark B. schrieb:
> Wie soll man ein Programm, an dem man nichts verändern kann, dazu
> bringen auf eine RAM-Disk zu schreiben anstatt auf die Festplatte?
>
> Wie soll man ein Programm, an dem man nichts verändern kann, dazu
> bringen von einer RAM-Disk zu lesen anstatt von der Festplatte?

Konfiguration. In einer Datei, Registry, oder als Parameter beim Aufruf, 
setzen, wo die Daten liegen.

Und wenn das nicht möglich ist, gibt es noch Symlinks.
#6621198
Lesenswert?

Mark B. schrieb:
> Wie soll man ein Programm, an dem man nichts verändern kann, dazu
> bringen auf eine RAM-Disk zu schreiben anstatt auf die Festplatte?

Über COM ( https://de.wikipedia.org/wiki/Component_Object_Model )kann 
man z.B Excel und Word genauso fernsteuern wie über das eingebaute VBA.

Du öffnest z.B eine Tabelle in Excel, exportierst bestimmte Daten in 
eine Datei (den Dateinamen kann man übergeben) und liest die mit einem 
anderen Programm wieder ein, das diese Datei dann im eigenen Format 
ablegt.

Ein Ähnliches Vorgehen soll jetzt wohl mehrere Hundert mal erfolgen.

COM unterstützen einige Programme.
#6621243
Lesenswert?

🐧 DPA 🐧 schrieb:
> Konfiguration. In einer Datei, Registry, oder als Parameter beim Aufruf,
> setzen, wo die Daten liegen.

Dann müsste eine solche Möglichkeit bereits in der Software vorgesehen 
sein. Wenn der Programmierer das nicht konfigurierbar gemacht hat, 
dürfte es schwierig werden es zu konfigurieren ;-)

> Und wenn das nicht möglich ist, gibt es noch Symlinks.

Um die zu nutzen, müsste man nach meinem Verständnis wiederum die 
bereits bestehenden Tools auch konfigurieren können. Nämlich so, dass 
sie für das Lesen/Speichern von Dateien eben einem Symlink folgen und 
nicht das Verzeichnis nutzen, welches fest einprogrammiert (?) ist.
Gast #6621267
Lesenswert?

Mark B. schrieb:
> Um die zu nutzen, müsste man nach meinem Verständnis wiederum die
> bereits bestehenden Tools auch konfigurieren können. Nämlich so, dass
> sie für das Lesen/Speichern von Dateien eben einem Symlink folgen und
> nicht das Verzeichnis nutzen, welches fest einprogrammiert (?) ist.

Sofern das Programm nicht explizit angibt, dass das OS Symlinks nicht 
folgen soll, (z.B. unter Linux mit O_NOFOLLOW Option für open, Win hat 
da sicher etwas ähnliches), tut das OS das automatisch. Das ist ja genau 
der Sinn der Sache.

Ein Symlink ist nicht das selbe wie diese .lnk Dateien, die vom 
Explorrer ausgewertet werden. Wobei, bei MS gibt es eigentlich keine 
echten Symlinks, sondern Reparse Points, und da gibt es viele 
verschiedene.

Wie auch immer, man erstellt die Dinger unter Win mit mklink [1], du 
kannst ja selbst mal etwas damit rum spielen.
Ich nutze die Dinger gerne, damit Programme nicht merken, dass die auf 
einen Netzwerkshare und gar nicht lokal schreiben (was wiederum geht, 
weil ein reparse point eben nicht das selbe wie ein symlink ist, und das 
dort irgendwie merkwürdig vom darunterliegenden Dateisystemtreiber mit 
beeinflusst wird...)

PS: Was ist eigentlich der Unterschied zwischen "directory symbolic 
link" und "Directory Junction"?

1) 
https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/mklink
Gast #6621275
Lesenswert?

Mark B. schrieb:
> Um die zu nutzen, müsste man nach meinem Verständnis wiederum die
> bereits bestehenden Tools auch konfigurieren können. Nämlich so, dass
> sie für das Lesen/Speichern von Dateien eben einem Symlink folgen und
> nicht das Verzeichnis nutzen, welches fest einprogrammiert (?) ist.

Das ist nicht richtig. Ein Symlink ist keine *.lnk Datei wie sie der 
Dateimanager erstellt wenn man eine Verknüpfung auf eine Datei anlegt.

Symlinks sehen für gewöhnliche Programme (die diese nicht speziell 
behandeln) wie ein Verzeichnis oder eine Datei aus, je nach dem, worauf 
der Symlink zeigt.
#6621388
Lesenswert?

Stefan ⛄ F. schrieb:
> Das ist nicht richtig. Ein Symlink ist keine *.lnk Datei wie sie der
> Dateimanager erstellt wenn man eine Verknüpfung auf eine Datei anlegt.
>
> Symlinks sehen für gewöhnliche Programme (die diese nicht speziell
> behandeln) wie ein Verzeichnis oder eine Datei aus, je nach dem, worauf
> der Symlink zeigt.

Ah, jetzt, ja :-) Also quasi so:

Vorher:
Verzeichnis C:\hier\schreiben in Programm 1
Verzeichnis C:\hier\lesen in Programm 2
Beides richtige Verzeichnisse, keine Symlinks.

Nachher:
Symlink C:\hier\schreiben --> R:\in\wahrheit\aber\hier in Programm 1
Symlink C:\hier\lesen --> R:\in\wahrheit\aber\dort in Programm 2
Beides Symlinks, keine Verzeichnisse.

Dann dürfen C:\hier\schreiben und C:\hier\lesen im Nachher-Fall nicht 
mehr als Verzeichnisse existieren, sondern nur noch als Links. An der 
Stelle war mein Denkfehler. Aua! ;-)

Jetzt wäre noch die Frage, ob man irgendwie geschickt solche Symlinks 
automatisiert erzeugen kann, mit Hilfe eines Installers.
Gast #6621426
Lesenswert?

Danke für die konstruktiven Beiträge.
Zum Verständnis, so in etwa sieht es bei mir aus:
1
string svgFile Path.GetTempPath() + "item.svg";
2

3
foreach(var article in stock.articles)
4
{
5
    article.ExportAsImage(svgFile);
6
    page.AddPicture(svgFile);
7
}
Gast #6621448
Lesenswert?

Und wie kommst du nun auf den Trichter, dass die Platte das Bottleneck 
ist?  Wenn die Dateien nicht gerade im Gigabytebereich liegen, dürfte 
die Geschwindigkeit der Platte kaum was ausmachen.  Könnte man ja 
einfach mal testen ...
Gast #6621489
Lesenswert?

Keine Ahnung, wie Windows es handhabt, aber unter Linux werden 
kurzlebige Dateien in der Regel gar nicht auf die Festplatte 
geschrieben.
Wenn man also eine Datei schreibt, liest und innerhalb weniger Sekunden 
wieder löscht, kommt es in der Regel zu gar keinem Disk-I/O.
Kann Windows das auch?
#6621516
Lesenswert?

MaWin schrieb:
> Kann Windows das auch?

Doch Doch!So war das mal angedacht. Deshalb ist RAMDISK ja unter WIndows 
auch totaler Quatsch. Erste Versuche 1992-94 unter MS-DOS Animationen zu 
erzeugen (Gab da so haufen "Multimedia CDs" mit dieversen 
Raytracing-Programmen undsowasalles). Da war so ne 4MByte-RAMDISK 
Goldwert. Hat man sich dann später auf seine 340MB-Platte kopiert, wenn 
man ferig war.
Das ist doch aber alles "OPA erzählt vom Krieg" und längst obsolete, das 
wird doch alles zwischengespeichert, das landet wenn Zeit ist auf der 
Platte.
Nun wissen wir natürlich auf der Anderen Seite nicht, welche programme 
hier involviert sind. kann schon sein, das Program "A" da n Flush(heisst 
das so?) erzwingt und die Datei erstmal aufs Laufwerk speichern will. 
Exakt dorthin, wo es angesagt wurde.
Gast #6621536
Lesenswert?

Thomas_jhfd schrieb:
> Danke für die konstruktiven Beiträge.

Wenn Windows da wirlich exzessiv die Platte verwendet, würde ich 
versuchen, ob sich das Verhalten ändert, wenn man die Datei gleich 
wieder löscht.
1
string svgFile Path.GetTempPath() + "item.svg";
2

3
foreach(var article in stock.articles)
4
{
5
    article.ExportAsImage(svgFile);
6
    page.AddPicture(svgFile);
7
    unlink(svgFile);
8
}
Gast #6621541
Lesenswert?

mmm schrieb:
> Wenn Windows da wirlich exzessiv die Platte verwendet, würde ich
> versuchen, ob sich das Verhalten ändert, wenn man die Datei gleich
> wieder löscht.

hört doch bitte mal auf - das ist doch alles nur noch Unfug was hier an 
den Post gehängt wird
Gast #6621592
Lesenswert?

Wie ich oben geschrieben habe, versuch mal, ob deren API named pipes 
schlucken.
Die sind die Windows Lösung für solche IPC Aufgaben.
Das ist quasi eine virtuelle Datei, allerdings nicht einem eigenen 
Namensraum, nicht innerhalb der üblichen Laufwerksstruktur.
Darf man Fragen welche zwei Programme du steuerst?
Gibt's eventuell ne Doku zur COM Schnittstelle? Oder wenigstens die 
Deklaration der Funktionen ExportAsImage und AddPicture?

Vielleicht schlucken die ja noch andere Typen als Argument Pfad, z. B. 
sowas wie ein streamIO Objekt oder Ähnliches.
Gast #6621792
Lesenswert?

Stefan ⛄ F. schrieb:
> Wenn du unter Linux Dateien speicherst und kurz danach wieder lädst,
> werden sie automatisch im RAM gepuffert. Ist das bei Windows etwa
> anders?

Du hast recht, daran habe ich gar nicht gedacht.
Eine Analyse mit einigen 1000 Dateien bestätigt deine Vermutung.
Das Problem ist der SVG Export, der nur einen Kern nutzt.
Andere Formate gehen schneller, haben aber andere Nachteile.

Danke an alle!
Gast #6621799
Lesenswert?

Thomas_jhfd schrieb:
> Du hast recht, daran habe ich gar nicht gedacht.
> Eine Analyse mit einigen 1000 Dateien bestätigt deine Vermutung.
> Das Problem ist der SVG Export, der nur einen Kern nutzt.

Ich weiß ja nichts über die Inhalte Deiner SVGs, aber vielleicht wäre es 
auch möglich, die Rohdaten zu exportieren und die SVG-Wandlung mit etwas 
anderem zu machen? Gerade wenn die Daten auf so viele Dateien verteilt 
werden, schreit das ja geradezu nach einer Parallelisierung...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren