Deutsches Lilypond Forum (Archiv)
Allgemein => Allgemeine Diskussion => Thema gestartet von: Hilflos-im-Code am Donnerstag, 27. Oktober 2016, 12:37
-
Ich nutze Lilypond auf zwei Rechnern. Auf dem einem ist Lilypond ungefähr doppelt so schnell. Witzigerweise auf dem deutlich älteren Rechner. Aber das ist auch bei anderen Programmen so.
Da ich momentan mir überlege, einen neuen Rechner zu kaufen, und mich am meisten momentan auch das Tempo von Lilypond auf dem schnelleren Rechner stört (Insbesondere bei Fehlersuchen, man wartet ja länger als man über das Problem nachdenkt.)
Wenn ich die Werte der beiden Prozessoren vergleiche, komme ich auf keine Idee, warum der M480 doppelt so schnell ist.
http://www.game-debate.com/cpu/index.php?pid=2412&pid2=680&compare=pentium-n3700-1-6ghz-vs-core-i5-480m-2-66ghz
Liegt es an der Taktfrequenz? An der Threadzahl, Corezahl oder was weiß ich?
Letztendlich interessieren mich Relationen wie, wenn die z.B. Threadanzahl sich verdoppelt, erhöht sich das Tempo von Lilypond ungefähr um?
Während ich dieses Posting schreibe fällt mir folgende Zusatzfrage ein, kann ich wie bei manch anderen Programmen Lilypond erlauben, dass es sich deutlich mehr vom Arbeitsspeicher nehmen kann, als es sich bisher genommen hat?
-
Wie lange dauert denn bei dir typischerweise die Kompilation?
Ich habe es so gelöst, dass ich nicht jedesmal alles kompliere, sondern nur den Teil, an dem ich gerade arbeite. Ich erstelle gerade eine Liedsammlung und habe jedes Lied in einem eigenen Include-File, sodass das relativ einfach geht. In einer Datei stehen alle Includes, in der Arbeitsdatei nur das Include für das aktuelle File.
Wenn du an einer umfangreichen Partitur arbeitest, wirst du das möglicherweise anders organisieren müssen, aber ich denke, das ist auch möglich.
-
Ich kann Dir Deine Fragen nicht beantworten. Nicht mein Gebiet.
Aber vielleicht hilft:
http://lilypond.org/doc/v2.19/Documentation/usage/command_002dline-usage#environment-variables (http://lilypond.org/doc/v2.19/Documentation/usage/command_002dline-usage#environment-variables)
insbesondere
LILYPOND_GC_YIELD
Hab ich aber nie selbst propbiert.
Gruß,
Harm
-
Letztendlich interessieren mich Relationen wie, wenn die z.B. Threadanzahl sich verdoppelt, erhöht sich das Tempo von Lilypond ungefähr um?
0%. Nach allem was ich weiß arbeitet LilyPond nur mit einem Thread, weil wenig Parallelisierungspotential wäre. Die ganze Optimierung (Zeilenumbrüche etc.), die den größten Teil der Rechenzeit bei größeren Partituren beansprucht, geht leider nicht parallel.
Während ich dieses Posting schreibe fällt mir folgende Zusatzfrage ein, kann ich wie bei manch anderen Programmen Lilypond erlauben, dass es sich deutlich mehr vom Arbeitsspeicher nehmen kann, als es sich bisher genommen hat?
Ich vermute, du denkst da an Dinge wie Java-Programme, wo die Java-VM normalerweise eine Speichergrenze hat, die nicht mit dem realen Arbeitsspeicher übereinstimmt. Eine solche Einschränkung gibt es meines Wissens nach in LilyPond (geschrieben in C++) nicht, bei mir hat es auch schonmal die kompletten 4GB Arbeitsspeicher + 2GB swap (Linux-Äquivalent der Auslagerungsdatei) ausgenutzt; bei solch großen Projekten sollte man aber schauen, ob sich der eigene LilyPond-Code nicht optimieren läßt hinsichtlich Speicherverbrauch (aufteilen auf \books oder \bookparts, nicht zu viele explizite Kontexte erstellen, …), mit nem Projekt alltäglicher Größe kommt man eigentlich nicht an solche Grenzen.
-
Auf der Mailingliste gibt es einen interessanten Thread zu dem Thema:
Getting a new computer (http://lilypond.1069038.n5.nabble.com/Getting-a-new-computer-td196736.html)
-
Auf der Mailingliste gibt es einen interessanten Thread zu dem Thema:
Getting a new computer (http://lilypond.1069038.n5.nabble.com/Getting-a-new-computer-td196736.html)
Danke. SSD scheint auch eine feine Sache zu sein.