Hallo Rotor,
100.000 Zeilen klingen gut, so viele hatte ich bislang noch nicht. Was hast Du denn da gemacht, wenn ich mal fragen darf? Und das läuft bei Dir inzwischen problemlos und schnell? Mit den Programmen/PlugIns, die Du unten nennst?
Es handelte sich um die Umsetzung elektronischer Ersatzteilkataloge. Die Vektordaten kamen aus speziellen CAD-Werkzeugen über Ex-/Importe in weitere Programme wie IsoDraw, Illustrator und Visio zustande. Die unterschiedliche Handhabung von SVG brachte erhebliche Redundanzen mit sich. Ich habe mal testweise eine XSLT-Transformation gebaut, die ca. 20% ohne Verluste entfernen konnte (z. B. 5 MB --> 4 MB).
Wenn zehntausende Pfade so aufgebaut sind und nur das d-Attribut die variablen Pfaddaten enthält:
<path d="..." fill="..." stroke="..." stroke-width="..." stroke-linecap="..." stroke-linejoin="..." stroke-dasharray="..."/>
werden die Redundanzen offensichtlich und bei sinnvoller Nutzung von CSS
path
{
fill: ...;
stroke: ...;
stroke-width: ...;
stroke-linecap: ...;
stroke-linejoin: ...;
stroke-dasharray: ...;
}
kann sehr viel an Code entfallen.
Letzlich wurde in diesem Projekt noch weiter optimiert und spezielle Konvertersoftware entwickelt. Ich hatte allerdings nur betreuende/beratende Funktion, aber die weiteren Optimierungen sind letzlich zufriedenstellend verlaufen.
Getestet wurde nur mit dem ASV, da dieser von der Spezialsoftware CatalogCreator eingebunden wird. Sehr große SVG-Dokumente sind natürlich weiterhin ein Problem.
Ich verwende nur Pfade und Kreise, keine Füllungen oder sonstige Effekte und (zumeist) auch alles in der gleichen Formatierung, die ich dann mit dem <g>-Tag anwende. Ist das ok?
Vermutlich, aber ohne Code schwer zu beurteilen.
Besonders das mit den überlagernden Linien, die dann anders aussehen, ist sehr störend, kann man da was gegen machen..?
Bitte mal etwas testfähigen Code posten, der das Problem beschreibt.
Grüße,
Thomas