Forum: PC Hard- und Software tabellierte Kompilierungsdauern für Standardtools?


von Martin (Gast)


Lesenswert?

Mal eine vielleicht ungewöhnliche Frage:
Ich brauche gelegentlich ein paar Zusatzfunktionen, die in den 
vorkompilierten Standardversionen von Kicad, Spice, Octave usw. in 
Debian Linux nicht enthalten sind. Auf die Schnelle mal einen kleinen 
Patch geschrieben, der das Gewünschte erledigt, und dann warte ich 10 
Minuten - 10 Stunden aufs Kompilieren.

Sehr hilfreich wäre eine Datenbank von relativen Kompilierungsdauern, 
also z.B. "Octave-3.8 braucht 42 mal so lange wie ngspice-25.1". 
Natürlich hängt das von allen möglichen Flags, Kompilerversion usw. ab, 
aber ein grober Anhaltspunkt, ob ich ein paar Minuten warten muss oder 
erst mal schlafen gehen kann, wäre enorm hilfreich.

Gibt es solche Daten, vielleicht im Zusammenhang mit dem 
Linux-from-scratch Projekt?

Martin

von Wesarion (Gast)


Lesenswert?

Martin schrieb:
> Gibt es solche Daten, vielleicht im Zusammenhang mit dem
> Linux-from-scratch Projekt?

Warum ergänzte nicht die build-scripte um ein date >> Log.txt und 
compilierst den Kram auf deinem Referenzrechner selbst?

Geringfügig mehr script und du kannst das ganze über nacht laufen 
lassen.

von Martin (Gast)


Lesenswert?

Wesarion schrieb:
> Warum ergänzte nicht die build-scripte um ein date >> Log.txt und
> compilierst den Kram auf deinem Referenzrechner selbst?

Weil ich gerade dann, wenn ich ein Tool zum ersten Mal kompiliere gerne 
vorher schon in etwa wüsste, auf welche Wartezeit ich mich einstellen 
muss.

von Benji (Gast)


Lesenswert?

Martin schrieb:
> Ich brauche gelegentlich ein paar Zusatzfunktionen, die in den
> vorkompilierten Standardversionen von Kicad, Spice, Octave usw. in
> Debian Linux nicht enthalten sind. Auf die Schnelle mal einen kleinen
> Patch geschrieben, der das Gewünschte erledigt

hast du mal ein Beispiel, was du so alles an Features in diese Tools 
reinimplementiert hast?

Irgendwie fällt es mir schwer zu glauben dass du dich derart schnell in 
fremden Code reinfuchst, deine Änderungen implementierst (natürlich an 
einer architektonisch sinnvollen Stelle), kein Debuggen notwendig ist 
und du dich dann über die halbe Stunde Kompilieren ärgerst.

von Administrator (Gast)


Lesenswert?

Klingt weltfremd und ist such Quatsch, weil niemand abschätzen kann, wie 
deine Änderungen sich auf die Kompilierzeit auswirken.
Diese Werte müssten ständig angepasst werden.

von Martin (Gast)


Lesenswert?

Hat vielleicht irgendjemand auch eine sinnvolle Antwort?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Martin schrieb:
> Hat vielleicht irgendjemand auch eine sinnvolle Antwort?

Die sinnvolle Antwort: solch eine Tabelle wirst du nicht finden.

Es gibt einfach viel zu viele Randbedingungen und viel zu wenige
Anwendungsfälle, als dass sich jemand die Mühe machen würde, sowas
zu tabellieren.

Grob gerechnet kannst du erstmal sagen: je größer der Sourcecode
des Pakets, desto länger wird das Compilieren dauern.

von Martin (Gast)


Lesenswert?

Jörg W. schrieb:
> Es gibt einfach viel zu viele Randbedingungen und viel zu wenige
> Anwendungsfälle, als dass sich jemand die Mühe machen würde, sowas
> zu tabellieren.

Es soll sich niemand die Mühe machen. Ich frage mich nur, ob die Daten 
nicht schon irgendwo vorhanden sind. Z.B. bei Buildsystemen der 
Linuxdistributionen, für deren Lastverteilung es auch sinnvoll sein 
sollte, abschätzen zu können, wieviel Kompilierungszeit gebraucht wird, 
wenn eine bestimmte Menge an Patches eingegangen ist.

Jörg W. schrieb:
> Grob gerechnet kannst du erstmal sagen: je größer der Sourcecode
> des Pakets, desto länger wird das Compilieren dauern.

Ich glaube, da ist es eine bessere Abschätzung, zu sagen, dass jedes 
Paket 10 Minuten zum Kompilieren braucht. Die Größe des Quellcodes hat 
nun wirklich den allerkleinsten Einfluss. Um eine halbwegs brauchbare 
automatische Abschätzung zu haben, müsste man schon die generiertem 
Makefiles analysieren, nachsehen, welche Abhängigkeiten bestehen, 
inwieweit einzelne Dateien parallel kompiliert werden können, wie tief 
Klassenhierarchien verschachtelt sind, usw...

Nun aber bitte wirklich nur noch sinnvolle Antworten. Es hilft einfach 
nichts, wenn jeder, der solche Daten noch nicht gesehen hat, seinen Senf 
loswerden muss und behauptet, dass es solche Daten nicht geben kann.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Martin schrieb:

> Es soll sich niemand die Mühe machen. Ich frage mich nur, ob die Daten
> nicht schon irgendwo vorhanden sind. Z.B. bei Buildsystemen der
> Linuxdistributionen,

In den Buildlogs des FreeBSD-Portbuild-Clusters vielleicht.

Aber da könnte ich dir jetzt auch nicht genau sagen, wo man da
anfangen müsste zu suchen.

>> Grob gerechnet kannst du erstmal sagen: je größer der Sourcecode
>> des Pakets, desto länger wird das Compilieren dauern.
>
> Ich glaube, da ist es eine bessere Abschätzung, zu sagen, dass jedes
> Paket 10 Minuten zum Kompilieren braucht. Die Größe des Quellcodes hat
> nun wirklich den allerkleinsten Einfluss.

Das widerspricht sehr deutlich meiner eigenen Erfahrung (ich baue
im Rahmen der FreeBSD-Ports so gut wie alles selbst).  Die entspricht
eher dem, was ich da oben geschrieben habe.

von foobar (Gast)


Lesenswert?

Installier dir doch Gentoo, dann findest du das ganz genau heraus.
Ist leider ähnlich sinnvoll wie eine Compiledauertabelle.

Compiledauer hängt von vielen Faktoren ab, Load auf der Maschine, 
Compilerversion, welcher Compiler überhaupt, in welcher Sprache das 
geschrieben ist, was du an Optionen zur Compilezeit festlegst, das 
darunterliegende Filesystem

von Martin (Gast)


Lesenswert?

foobar schrieb:
> Installier dir doch Gentoo, dann findest du das ganz genau heraus.

Von genau schrieb ich nie etwas.

> Compiledauer hängt von vielen Faktoren ab,

Ach nee, sach an. Hast du außer meiner Überschrift noch etwas von meinem 
Beitrag gelesen?

von foobar (Gast)


Lesenswert?

https://buildd.debian.org/status/logs.php?pkg=octave&arch=amd64

In Zukunft solltest du vllt etwas an deinem Tonfall arbeiten.
Die buildd Stats zu ergooglen ist wirklich nicht schwierig.

:-*

von Peter D. (peda)


Lesenswert?

Man kann ja einfach schon nebenbei den Compiler einmal laufen lassen.
Nur im ersten Lauf muß ja alles compiliert werden, danach nur noch der 
geänderte Teil.

von Der Andere (Gast)


Lesenswert?

Peter D. schrieb:
> Man kann ja einfach schon nebenbei den Compiler einmal laufen lassen.
> Nur im ersten Lauf muß ja alles compiliert werden, danach nur noch der
> geänderte Teil.

Kommt darauf an wie clever das makefile geschrieben wurde. Wenn die 
Änderungen h files betreffen siehts dann evt. nochmal anders aus.

Ausserdem schwankt sowas extrem mit der vorhandenen Hardware: SSD, 
prallelisierung, ...

von Martin (Gast)


Lesenswert?

foobar schrieb:
> https://buildd.debian.org/status/logs.php?pkg=octave&arch=amd64

Na bitte, geht doch. Und für alle anderen, wenn man keine Ahnung hat, 
... ihr wisst schon. Keinem ist geholfen, wenn jeder zu jedem Thema in 
der einen oder anderen Form schreibt "Ich habe keine Ahnung, aber hier 
kommt auch noch mein Senf." Das hier ist alles ein Riesenhaufen 
Senfsoße.

von Benji (Gast)


Lesenswert?

Als Dank könntest du noch kundtun, was zu z.B. alles in Octave 
implementiert hast.
Vielleicht hat die Community ja auch gefallen an deinen Features?

von foobar (Gast)


Lesenswert?

Schöne Art "Danke" zu sagen.
Absichtlich werd ich dir nicht nochmal helfen.

von nono (Gast)


Lesenswert?

Martin schrieb:
> foobar schrieb:
>> https://buildd.debian.org/status/logs.php?pkg=octave&arch=amd64
>
> Na bitte, geht doch.
in der Tat interessant, aber was bringen dir die Zahlen, ohne die 
Randbedingungen zu kennen, unter denen sie zustande kamen? ...oder habe 
ich etwas überlesen?

Martin schrieb:
> Keinem ist geholfen, wenn jeder zu jedem Thema in
> der einen oder anderen Form schreibt "Ich habe keine Ahnung, aber hier
> kommt auch noch mein Senf."
...naja, solange der Senf zum Thema beiträgt und (z.B.) dein 
Anliegen/Ideen auf Sinnhaftigkeit hinterfragt, vielleicht doch! Zu 
mindestens machen die Leute sich Gedanken zu deinem(!) Problem und 
versuchen dir zu helfen...

Martin schrieb:
> Das hier ist alles ein Riesenhaufen
> Senfsoße.
...dann frage einfach nicht hier!

Martin schrieb im Beitrag #4543268:
> fünününü
...ist das jetzt eine Frage oder eine Antwort auf welche Frage?

von Jim M. (turboj)


Lesenswert?

nono schrieb:
> in der Tat interessant, aber was bringen dir die Zahlen, ohne die
> Randbedingungen zu kennen, unter denen sie zustande kamen?

Man kompiliert sich selbst ein Paket - wie binutils - und nimmt dabei 
die Zeit. Damit hat man die eigene Zeit und die von Debian, für 
beliebige Pakete kann man nun näherungsweise einfach Dreisatz benutzen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.