Linux-Compilat 3x grösser als windows ?

Für Fragen von Einsteigern und Programmieranfängern...
creed steiger
Beiträge: 957
Registriert: Mo 11. Sep 2006, 22:56

Re: Linux-Compilat 3x grösser als windows ?

Beitrag von creed steiger »

"Vor allem, wenn dann diese Linuxprogramm ggf. (WARUM auch immer) auf einem Raspi oder Co. eingesetzt werden sollen ist gerade Größe auf jeden Fall relevant."



ich hab hier ne Wetterstation und Heizungsüberwachung 24/7 laufen mit schicken Charts, Yahoo Weather Vorschau und Pi Pa Po ...
auf nem Raspi 3 mit Touchscreen und das ganze 9 MB gross.....

Wenn ich statt Raspian ein Tiny Core nehmen würde wäre das ganze auf ner 512 MB!!! SD Karte locke machbar ...

Ganz ehrlich du schreibst hier Unsinn.

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2636
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Linux-Compilat 3x grösser als windows ?

Beitrag von m.fuchs »

Und zum Abschluss noch dieses hier:

Bild

Wenn es wirklich auf die Dateigröße ankommt, dann fällt FPC nicht automatisch heraus.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

FPK
Beiträge: 65
Registriert: Mi 21. Mai 2008, 19:38
Wohnort: Erlangen

Re: Linux-Compilat 3x grösser als windows ?

Beitrag von FPK »

Warf hat geschrieben:Grade mal für GCC-C für linux x64 getestet:

Code: Alles auswählen

#include<stdio.h>
 
int main(int argc, char**argv) {
  printf("Hello World");
  return 0;
}


12 KB. Auch nicht sonderlich klein, aber um einiges kleiner als FPC.


Und was sagt ldd ./hello? Evtl. noch ein paar MB Libraries notwendig :)?

Falls sich jemand fundiert mit dem Resourcen- und Speicherverbrauch von FPC auseinander setzen möchte, empfehle ich http://greenlab.di.uminho.pt/wp-content ... perSLE.pdf (der eingesetzte Pascalcompiler ist FPC 3.0.2, siehe https://sites.google.com/view/energy-ef ... ages/setup).

Warf
Beiträge: 1908
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Linux-Compilat 3x grösser als windows ?

Beitrag von Warf »

relocate hat geschrieben:Ich bezog mich auf das Beispiel oben.


Ich sagte ja auch irreführend und nicht falsch. Wenn mir jemand sagt mein programm ist unter Linux 6 mal so groß wie unter Windows klingt das richtig viel. Wenn es aber heißt mein programm ist 100kb größer, dann merkt man das das praktisch nichts ist, und ganz normaler betriebsystemabbhängiger overhead ist, wie man ihn auch bei C, C++, Ada, etc. hat.

relocate hat geschrieben:Auch der Raspi war ein Beispiel. Aber es passt, weil es für ein Linuxsystem eben sehr begrenzt ist. Auf einem gewöhnlichen Rechner spielt es wiederum eine kleinere Rolle.

Eine voll ausgewachsene Linux distribution ist weniger als 10 GB groß, dann hat man immernoch 22 GB übrig. Wenn dir das nicht reicht, ist der Raspi eh der falsche PC für deinen Use-Case.

relocate hat geschrieben:Es ist sicher kein kompletter Müll und genau so eine Einstellung (sehr extrem) hat mich im Prinzip zum Gegenextrem geführt. Aber ich verlange eigentlich gar keine Optimierung bis zum geht nicht mehr. Aber die Einstellung, dass Optimierung in der Größe und auch in der Laufzeit bei Softwareentwickelrn überhaupt nicht mehr im Horizont ist, nervt. Wie schon woanders geschrieben. Als Admin schiebe ich für fette Software immer fettere Rechner unter den Allerwertesten ohne dass die Software besser arbeitet. Anwender beschweren sich immer öfter und ich kann daran nichts ändern aber bin der Schuldige. Das hat allein auch nichts mit FPC zu tun, das gleiche gilt für die NET Monster und Java Programme.


Weil es geld aus dem fenster geworfen ist. Solche optimierungen sind verdammt schwer zu machen und entwickler müssen ja auch von was leben. Es ist nicht aus dem horizont verschwunden, es ist einfach nur nicht mehr use case relevant. Bei compilern für Microcontrollern wird auf sowas geachted, aber FPC, G++, etc. sind general purpose compiler, da gehört speicher optimierung nunmal nicht zum use case.

relocate hat geschrieben:Wäre mal toll, wenn die Software denn auch tatsächlich besser werden würde, aber das ist IMHO nur noch selten der Fall. Lieber bastelt man an Features die keiner benötigt und wünscht, statt dass die Programme wirklich den Workflow verbessern würden.


Die letzten großen FPC features:
Generics, genial, auch wenn sie etwas mächtiger sein könnten (stichwort C++ Templates)
Type helper, genial
UTF8 Support, genial
Namespaces, brauch ich persönlich eher seltener, aber definitiv nicht nutzlos
Aktuelle projekte FPC:
Pascal to Javascript, gute idee (das erwarte ich schon lange)
Webassembly compiler, extrem wichtiger schritt
Anonymous functions, wird langsam mal zeit
Aktuelle Lazarus projekte:
QT5, GTK3, Cocoa support

Also alles in allem kann ich nicht sehen wo diese sachen unerwünscht sind. Vor allem auf die kommenden features freue ich mich

relocate
Beiträge: 61
Registriert: Di 24. Jan 2012, 11:47
OS, Lazarus, FPC: Win (L- FPC 2.4.4 + 2.6.4)
CPU-Target: 32Bit

Re: Linux-Compilat 3x grösser als windows ?

Beitrag von relocate »

m.fuchs hat geschrieben:Ich finde dein Auftreten hier ganz schön unverschämt.


Inwiefern? Habe ich jemanden beleidigt oder angegriffen? Ich wusste gar nicht, dass es verboten ist seine Meinung zu äußern.

m.fuchs hat geschrieben:Hast du irgendwelche Belege dafür, dass sich niemand mit dem Thema Optimierung bei FPC beschäftigt?


Jo, in dem man schreibt, man nimmt es nicht wichtig! Oder es wäre Zitat "kompletter Müll", hier im Thread.

m.fuchs hat geschrieben:So einen Compiler zu entwickeln ist schon ein ganzen Stück anspruchsvoller, als die übliche Anwendungssoftware.


Das ist glaube ich jedem bewusst. Dennoch, jedes Mal, wenn jemand auf die exorbitante Größe von LAZ/FPC Programmen hinweißt, springt man auf ihn und knüppelt ihn formlich nieder, als würde er ein Tabu brechen. Die Frage ist doch wohl berechtigt, wenn man sich fragt wieso es so ist, wie man dem beikommen kann, ob es nicht möglich ist, sich mal damit zu beschäftigen beim Kompiler bauen. Wenn dann aber gleich die Antwort kommt, wozu, Speicher kostet nix, etc. etc. etc. dann merkt man doch gleich, (oder es sieht so aus), dass es keinen schert, bzw. es völlig überflüssig wäre auch nur EINEN Gedanken daran zu verschwenden.

m.fuchs hat geschrieben:Wenn es ein Multi-Plattform-Compiler ist, dann wird es noch deutlich komplexer. Das ist übrigens auch ein Unterschied zu Delphi, der sicherlich auch in die Größe der Datei hinspielt.


Bis zu einem gewissen Grad ist das auch nachvollziehbar und den Vergleich mit Delphi braucht Freepascal nicht scheuen, denn dort ist seit den XE Compilern dieselbe Frage, weshalb die EXEs so groß sind (sein müssen).

m.fuchs hat geschrieben:Es gibt hier sicherlich genug Programmierer die auch ihre Programme optimieren. Die Tatsache dass Lazarus genutzt wird und nicht irgendein Monster mit .NET- oder JAVA-Framework dazu, ist dafür auch schonmal ein Indiz. Aber Optimierung ist nicht alles. Und schon gar nicht ist es das, was an erster Stelle steht.
Zuerst schreibe ich lesbaren Code, fange Fehlerfälle ab und sorge für eine gute Testabdeckung, dann und erst dann optimiere ich.


Wie ich schrieb, sehe ich das mit NET und Java genauso, deshalb wünsch(t)e!!! und fordere nicht, dass Laz/FPC es deutlich besser macht(e). Ich bin kein Verfechter von Optimierung auf Gedeih und Verderb, aber wenn es mir so vorkommt, als wäre es für den ein oder anderen völlig überflüssig, auch nur einen Gedanken darum zu geben, dann sag ich das (und ja, ohne um Erlaubnis zu fragen, ob ich darf).

m.fuchs hat geschrieben:Und eins noch:
relocate hat geschrieben:Das fängt damit an, dass ich Lazarus nicht nutze... :D

Warum bist du dann hier und beschwerst dich?


Ich beschwere mich nicht, ich schreibe meine Meinung und um Erlaubnis frage ich sicher nicht, dazu bin ich zu alt.

Ich nutze Freepascal, ich weiß, für manche ist das und Lazarus untrennbar vereint, aber das eine ist die Basis (die ich nutze) und das andere baut darauf auf. Aber Freepascal bedingt kein Lazarus. Ich nutze Freepascal gerne, nehme auch manche Schattenseiten (und komme mir keiner damit, es gäbe keine) in Kauf, weil es eben eine Multiplattform Möglichkeit ist, weil ich kein Programmierer bin, aber mich soweit eben in (Free)pascal auskenne, dass mir einiges zu realisieren möglich ist und ich mich auch nicht scheue, mich weiter zu entwickeln und neues zu lernen.
Würde ich die Dinge so wie alle anderen machen, hätte ich so manche Probleme nicht.

Aber das wäre langweilig.

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Linux-Compilat 3x grösser als windows ?

Beitrag von Mathias »

Die letzten großen FPC features:
Generics, genial, auch wenn sie etwas mächtiger sein könnten (stichwort C++ Templates)
Type helper, genial
UTF8 Support, genial
Namespaces, brauch ich persönlich eher seltener, aber definitiv nicht nutzlos
Aktuelle projekte FPC:
Pascal to Javascript, gute idee (das erwarte ich schon lange)
Webassembly compiler, extrem wichtiger schritt
Anonymous functions, wird langsam mal zeit
Aktuelle Lazarus projekte:
QT5, GTK3, Cocoa support

Den Type Helper finde ich die genialste Erweiterung, für OpenGL Matrix und Vector-Manipulationen, macht dies einem den Code recht einfacher und übersichtlicher. :wink:
Eines wurde noch vergessen, in Sache AVR ist mit FPC Gegenwärtig sehr viel positives gegangen. :wink:
Dies ist mir viel mehr Wert als das ganze UTF-Zeugs. Aber dies ist natürlich Geschmackssache.

Bei compilern für Microcontrollern wird auf sowas geachted, aber FPC, G++, etc. sind general purpose compiler, da gehört speicher optimierung nunmal nicht zum use case.
Da spielt FPC auch mit bei der Optimierung, dies muss sich nicht mehr verstecken hinter AVR-C++.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

relocate
Beiträge: 61
Registriert: Di 24. Jan 2012, 11:47
OS, Lazarus, FPC: Win (L- FPC 2.4.4 + 2.6.4)
CPU-Target: 32Bit

Re: Linux-Compilat 3x grösser als windows ?

Beitrag von relocate »

Warf hat geschrieben:Ich sagte ja auch irreführend und nicht falsch. Wenn mir jemand sagt mein programm ist unter Linux 6 mal so groß wie unter Windows klingt das richtig viel. Wenn es aber heißt mein programm ist 100kb größer, dann merkt man das das praktisch nichts ist, und ganz normaler betriebsystemabbhängiger overhead ist, wie man ihn auch bei C, C++, Ada, etc. hat.


Mag sein, dass es mit fortschreitener Programmgröße im Verhältnis nicht mehr stark ansteigt, aber wenn bereits in kleineren Anwendungen gleich am Anfang ein derartiger Overhead drauf gepropft wird, der scheinbar (oder auch nicht) nicht nötig wäre, "nur" weil eine Libary drangedängelt wird, die alles für alle Eventualitäten bereit hält, dann darf es doch wohl erlaubt sein zu fragen, ob das sein muss.

Warf hat geschrieben:Eine voll ausgewachsene Linux distribution ist weniger als 10 GB groß, dann hat man immernoch 22 GB übrig. Wenn dir das nicht reicht, ist der Raspi eh der falsche PC für deinen Use-Case.


Die 22 GB benötige ich aber eventuell für Daten, das wäre dann schön, wenn das Programm klein wäre, aber was mich eher sorgt, als der Platz auf der SD, ist der im Ram und ja, die Programmeffizienz. Manche nicht oder kaum optimierte Programme arbeiten einfach träge und das ist eben denke ich für ein schmalbrüstiges System wie ein Rapsi eben relevant. Aber auch Software auf Terabyte, Gigahertz, Gigabyte(RAM) Boliden sind inzwischen ein Graus, es ist eine Allgemeine Entwicklung in der Softwarebranche und das bringt mich auf. Im übrigen halte ich auch eine vollausgewachsene Linuxdistri von 10 GB für das falsche System auf einem Raspi.

Warf hat geschrieben:Weil es geld aus dem fenster geworfen ist. Solche optimierungen sind verdammt schwer zu machen und entwickler müssen ja auch von was leben. Es ist nicht aus dem horizont verschwunden, es ist einfach nur nicht mehr use case relevant. Bei compilern für Microcontrollern wird auf sowas geachted, aber FPC, G++, etc. sind general purpose compiler, da gehört speicher optimierung nunmal nicht zum use case.


Ja, stattdessen dürfen die Admins und Anwender Geld zum Fenster rauswerfen, weil warten statt arbeiten angesagt ist, weil die Hardware immer leistungsfähiger sein muss, damit die Software einigermaßen erträglich läuft, von jemals besser weit entfernt. Die Größe der Binaries ist da nur ein Merkmal (das sofort auffällt). Und gerade für diverse Plattformen ist es eben relevant (bzw. sollte es sein).

Warf hat geschrieben:Die letzten großen FPC features:
Generics, genial, auch wenn sie etwas mächtiger sein könnten (stichwort C++ Templates)
Type helper, genial
UTF8 Support, genial
Namespaces, brauch ich persönlich eher seltener, aber definitiv nicht nutzlos
Aktuelle projekte FPC:
Pascal to Javascript, gute idee (das erwarte ich schon lange)
Webassembly compiler, extrem wichtiger schritt
Anonymous functions, wird langsam mal zeit
Aktuelle Lazarus projekte:
QT5, GTK3, Cocoa support

Also alles in allem kann ich nicht sehen wo diese sachen unerwünscht sind. Vor allem auf die kommenden features freue ich mich


Bei anderen drückt der Schuh eben woanders (und nicht nur bei der Größe!)
Würde ich die Dinge so wie alle anderen machen, hätte ich so manche Probleme nicht.

Aber das wäre langweilig.

relocate
Beiträge: 61
Registriert: Di 24. Jan 2012, 11:47
OS, Lazarus, FPC: Win (L- FPC 2.4.4 + 2.6.4)
CPU-Target: 32Bit

Re: Linux-Compilat 3x grösser als windows ?

Beitrag von relocate »

creed steiger hat geschrieben:
relocate hat geschrieben:"Vor allem, wenn dann diese Linuxprogramm ggf. (WARUM auch immer) auf einem Raspi oder Co. eingesetzt werden sollen ist gerade Größe auf jeden Fall relevant."


ich hab hier ne Wetterstation und Heizungsüberwachung 24/7 laufen mit schicken Charts, Yahoo Weather Vorschau und Pi Pa Po ...
auf nem Raspi 3 mit Touchscreen und das ganze 9 MB gross.....


Ich habe hier eine FPGui Anwendung, keine 1 MB groß.

Es ist einfach die Frage, muss es wirklich sein. Geht da nicht noch was.
Es geht aber auch nicht um eine einzelne Anwendung.
Aber wenn man sieht, was ein "modernes" System alles auf die Platte schauffelt, dann fragt man ICH mich schon, ist das alles nötig? Alles nach dem Motto nach mir die Sinnflut und gib ihm. Irgendwann ist dann trotzdem alles zugemüllt, nutzloses Zeug was einfach raufgeschaufelt wird, eventuell sogar gestartet wird und läuft obwohl es nicht nötig wäre, Performance saugt für nichts gar nichts und wieder nichts.

creed steiger hat geschrieben:Wenn ich statt Raspian ein Tiny Core nehmen würde wäre das ganze auf ner 512 MB!!! SD Karte locke machbar ...

Ganz ehrlich du schreibst hier Unsinn.


Ich teile deine Meinung nicht, nehme sie zur Kenntnis und verurteile dich nicht, aber andere Meinungen einfach als Unsinn ab zu tun lässt mich an Einstein denken...
Der Horizont vieler Menschen ist wie ein Kreis mit Radius Null. Und das nennen sie dann ihren Standpunkt.
Na, Du hast deinen, ich habe meinen.
Würde ich die Dinge so wie alle anderen machen, hätte ich so manche Probleme nicht.

Aber das wäre langweilig.

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2636
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Linux-Compilat 3x grösser als windows ?

Beitrag von m.fuchs »

relocate hat geschrieben:
m.fuchs hat geschrieben:Ich finde dein Auftreten hier ganz schön unverschämt.

Inwiefern? Habe ich jemanden beleidigt oder angegriffen? Ich wusste gar nicht, dass es verboten ist seine Meinung zu äußern.

Du hast deine Meinung, nämlich dass Optimierung praktisch komplett vernachlässigt wird, als Tatsache geäußert. Das kannst du aber so einfach gar nicht wissen. Und das finde ich schon anmaßend.


relocate hat geschrieben:
m.fuchs hat geschrieben:Hast du irgendwelche Belege dafür, dass sich niemand mit dem Thema Optimierung bei FPC beschäftigt?

Jo, in dem man schreibt, man nimmt es nicht wichtig! Oder es wäre Zitat "kompletter Müll", hier im Thread.

Das sagt nix darüber aus, was die Compilerentwickler an Arbeit und Optimierungsmöglichkeiten in FPC stecken.

relocate hat geschrieben:Ich bin kein Verfechter von Optimierung auf Gedeih und Verderb,

Genau das kommt hier aber so an.

relocate hat geschrieben:Mag sein, dass es mit fortschreitener Programmgröße im Verhältnis nicht mehr stark ansteigt, aber wenn bereits in kleineren Anwendungen gleich am Anfang ein derartiger Overhead drauf gepropft wird, der scheinbar (oder auch nicht) nicht nötig wäre, "nur" weil eine Libary drangedängelt wird, die alles für alle Eventualitäten bereit hält, dann darf es doch wohl erlaubt sein zu fragen, ob das sein muss.

Es geht ja hier um einige Kibi- bis Mebibytes und nicht darum dass man für ein einfaches Programm gleich die neueste Hardware auffahren muss.

relocate hat geschrieben:das wäre dann schön, wenn das Programm klein wäre, aber was mich eher sorgt, als der Platz auf der SD, ist der im Ram und ja, die Programmeffizienz. Manche nicht oder kaum optimierte Programme arbeiten einfach träge und das ist eben denke ich für ein schmalbrüstiges System wie ein Rapsi eben relevant. Aber auch Software auf Terabyte, Gigahertz, Gigabyte(RAM) Boliden sind inzwischen ein Graus, es ist eine Allgemeine Entwicklung in der Softwarebranche und das bringt mich auf.

Du würfelst aber arg viel durcheinander. Die Dateigröße eines Programmes sagt doch nun wirklich nichts über die Speicher- und Prozessoranforderungen aus. Und bei letzterem stehen FPC-Programme doch sehr gut da. Da haben wir eher Probleme mit Java-Monstern oder dem ganzen Scriptsprachengeraffel.
Ich hab dazu mal mit Kollegen einen kleinen Wettbewerb gemacht. Sie haben eine Test-Anwendung in PHP (mit neuesten Blafasel-Schlagwort-Framework) geschrieben, ich habe sie in Freepascal implementiert. Beim Lasttest zeigte sich, das die Freepascalanwendung fast die gleiche Leistung wie die PHP-Anwendung erreichte. Mit der kleinen Besonderheit, dass das PHP-Ding auf einem 8-Kern-Intel mit 16 GiB RAM lief und mein Programm auf einem RasPi1.

Ich habe echt viel Software für den RasPi geschrieben, bis hin zu Webanwednungen die durch Lighttpd ausgeliefert werden. Nie gab es irgendwelche Leistungsprobleme. Nun bin ich zum ersten Mal auf ein Performanceproblem gestoßen. Es geht um eine aufwändige GUI mit vielen Anzeigeelementen. Und das Ding ist jetzt doch zäh geworden auf einem RasPi1. Aber auch da werde ich nicht optimieren, sondern die Firma einfach mal ein neueres Modell besorgen lassen. Die Kosten dafür rechtfertigen nämlich höchstens 45 Minuten Optimierungsaufwand. Das lohnt sich wirtschaftlich einfach nicht.

relocate hat geschrieben:Ja, stattdessen dürfen die Admins und Anwender Geld zum Fenster rauswerfen, weil warten statt arbeiten angesagt ist, weil die Hardware immer leistungsfähiger sein muss, damit die Software einigermaßen erträglich läuft, von jemals besser weit entfernt.

Also meine Hauptprobleme die ich bei meinem Admin-Anteil so habe, sind eher schlecht dokumentierte Anwendungen, schlechte Installationen, unnötige Abhängigkeiten. Gerade letzteres kommt ja bei so neuesten, heißen Scheiß wie node.js ständig vor. Da heißt die Lösung aber nicht hochoptimierter Programmcode, sondern wartbarer Programmcode. Das Geld was man in Wartbarkeit der Software steckt ist um ein Vielfaches besser angelegt als das, was in die Optimierung geht.
Womit ich nicht sagen möchte dass man Software völlig ausufernd auf alle Ressourcen zugreifen lassen sollte. Aber mal ehrlich, solche Probleme sehe ich hier einfach nicht. Oder kannst du mir eine FPC-basierte Anwendung nennen, die die Anwender zum Kauf von Geräten der allerneuesten Generation zwingt?

relocate hat geschrieben:Die Größe der Binaries ist da nur ein Merkmal (das sofort auffällt).

Und was ein Merkmal ist, was völlig irrelevant ist.

relocate hat geschrieben:Und gerade für diverse Plattformen ist es eben relevant (bzw. sollte es sein).

Außer für die Bereiche AVR und Konsorten spielt der Mehrverbrauch von Festspeicherplatz, der durch Freepascal verursacht wird keine Rolle. Und dort wird sowieso ganz anders programmiert, als bei LCL-Desktopanwendungen.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2636
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Linux-Compilat 3x grösser als windows ?

Beitrag von m.fuchs »

relocate hat geschrieben:Ich habe hier eine FPGui Anwendung, keine 1 MB groß.
Es ist einfach die Frage, muss es wirklich sein. Geht da nicht noch was..

Klar geht noch was, aber der Aufwand lohnt sich irgendwann nicht mehr. Und wegen einer 1-MiB-Anwendung würde ich nicht mal in den Quellcode schauen.

relocate hat geschrieben:Es geht aber auch nicht um eine einzelne Anwendung.
Aber wenn man sieht, was ein "modernes" System alles auf die Platte schauffelt, dann fragt man ICH mich schon, ist das alles nötig? Alles nach dem Motto nach mir die Sinnflut und gib ihm. Irgendwann ist dann trotzdem alles zugemüllt, nutzloses Zeug was einfach raufgeschaufelt wird, eventuell sogar gestartet wird und läuft obwohl es nicht nötig wäre, Performance saugt für nichts gar nichts und wieder nichts.

Du vermischt hier unglaublich vieles in dem Thread, was nichts miteinander zu tun hat. Die Frage nach der Installationsoptimierung einer OS-Distribution, hat nichts mit der Dateigröße von FPC-basierten Anwendungen zu tun.

relocate hat geschrieben:Ich teile deine Meinung nicht, nehme sie zur Kenntnis und verurteile dich nicht, aber andere Meinungen einfach als Unsinn ab zu tun lässt mich an Einstein denken...

Deine Meinung beruht aber darauf, dass du eben vieles miteinander vermengst, was erst einmal nicht zusammenhängt.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

relocate
Beiträge: 61
Registriert: Di 24. Jan 2012, 11:47
OS, Lazarus, FPC: Win (L- FPC 2.4.4 + 2.6.4)
CPU-Target: 32Bit

Re: Linux-Compilat 3x grösser als windows ?

Beitrag von relocate »

m.fuchs hat geschrieben:Du hast deine Meinung, nämlich dass Optimierung praktisch komplett vernachlässigt wird, als Tatsache geäußert. Das kannst du aber so einfach gar nicht wissen. Und das finde ich schon anmaßend.


Es ist nicht allein, die Aussage in diesem Thread, es ist eine Beobachtung über eine längere Zeit, sowohl in diversen Foren (auch und vor allem Delphi), als auch eben im beruflichen Umfeld. Und da ist durchaus auch die Größe relevant. Programme, die kaum viel mehr echten nutzen bieten immer mehr Anwachsen, kein effektiveres und effizienteres Arbeiten ermöglichen, etc. (das ist allein und vor allem kein FPC Problem, aber das habe ich nie behauptet).

m.fuchs hat geschrieben:Das sagt nix darüber aus, was die Compilerentwickler an Arbeit und Optimierungsmöglichkeiten in FPC stecken.


Habe ich auch nie gesagt. Es ging mir eben eher um die Aussage, wozu optimieren, das erweckt eben den Eindruck, dass es nicht wichtig ist und eben gar keine Rolle mehr spielt.

m.fuchs hat geschrieben:
relocate hat geschrieben:Ich bin kein Verfechter von Optimierung auf Gedeih und Verderb,

Genau das kommt hier aber so an.


Genau so, wie es bei mir ankommt, es wäre völlig überflüssig und unnötig.

m.fuchs hat geschrieben:Es geht ja hier um einige Kibi- bis Mebibytes und nicht darum dass man für ein einfaches Programm gleich die neueste Hardware auffahren muss.


Das ist richtig, es ging mir aber nicht um die Fähigkeit des Compilers, sondern um die Aussage, wozu optimieren. Und es ist (wie Du ja selbst sagst) bei viellerlei anderer Software (NET, Java, PHP Frameworks) ein immenses Problem und genau deshalb bin ich für Optimierung und ja, etwas extrem, aber nicht bis zum letzten.
Ich kenne das Dilemma, die Software soll schnell, so gut wie kostenfrei und dabei so funktional wie möglich ausgeliefert werden (ob es benötigt wird oder nicht), dabei bleibt die Optimierung oft oder immer auf der Strecke. Klar, nach dem Motto, erst muss es funktionieren, dann kann optimiert werden. Aber bis dahin kommen neue Anforderungen und die Absicht für die Optimierung bleibt eine Absicht, aber eben frei nach, die Hardware wird es schon richten.

m.fuchs hat geschrieben:Du würfelst aber arg viel durcheinander. Die Dateigröße eines Programmes sagt doch nun wirklich nichts über die Speicher- und Prozessoranforderungen aus. Und bei letzterem stehen FPC-Programme doch sehr gut da. Da haben wir eher Probleme mit Java-Monstern oder dem ganzen Scriptsprachengeraffel.
Ich hab dazu mal mit Kollegen einen kleinen Wettbewerb gemacht. Sie haben eine Test-Anwendung in PHP (mit neuesten Blafasel-Schlagwort-Framework) geschrieben, ich habe sie in Freepascal implementiert. Beim Lasttest zeigte sich, das die Freepascalanwendung fast die gleiche Leistung wie die PHP-Anwendung erreichte. Mit der kleinen Besonderheit, dass das PHP-Ding auf einem 8-Kern-Intel mit 16 GiB RAM lief und mein Programm auf einem RasPi1.


Es hängt alles zusammen und noch einmal, es ging hauptsächlich um die Anti-Optimierungsausage, okee, ich gebe zu, über das Ziel hinausgeschossen. Ich wollte auf keinen Fall den Eindruck erwecken, ich wäre mit Freepascal oder den Entwicklern unzufrieden oder wollte deren Leistung in Abrede stellen. Im Gegenteil, dadurch, dass es Freepascal gibt, habe ich ein großes Stück Freiheit gewonnen, Probleme kann ich oft mit eigenen kleineren Tools (meist sind das eben Kommandozeilentools und ja ich finde sie nicht! zu groß), aber es gibt meiner Meinung nach durchaus noch Potential (aber eher im Zusammenhang mit Lazarus). Aber ich will auch Lazarus nicht schlecht machen, es ermöglicht eine Multiplattformentwicklung eben auf Basis von Freepascal, dennoch ist es nichts für mich. Weshalb ich zu FPGui gekommen bin, für die Fälle, in denen die Kommandozeile nicht mehr ausreicht.

m.fuchs hat geschrieben:Ich habe echt viel Software für den RasPi geschrieben, bis hin zu Webanwednungen die durch Lighttpd ausgeliefert werden. Nie gab es irgendwelche Leistungsprobleme. Nun bin ich zum ersten Mal auf ein Performanceproblem gestoßen. Es geht um eine aufwändige GUI mit vielen Anzeigeelementen. Und das Ding ist jetzt doch zäh geworden auf einem RasPi1. Aber auch da werde ich nicht optimieren, sondern die Firma einfach mal ein neueres Modell besorgen lassen. Die Kosten dafür rechtfertigen nämlich höchstens 45 Minuten Optimierungsaufwand. Das lohnt sich wirtschaftlich einfach nicht.


Das ist auch nachvollziehbar und gerechtfertigt. Aber genau deshalb führte ich den Raspi an, weil es eben ein "normales" Linuxsystem bietet, erwarten viele dann auch, dass es vergleichbar ist mit einem großen PC auf dem Linux läuft, aber da ist eben dann Optimierung notwendig, weil der Raspi das eben nicht ist.
Es geht mir darum, dass ich erwarte, dass eben der Entwickler schon optimiert (im Rahmen!) und auch, dass das Entwicklungssystem den Entwickler dabei unterstützt. Ich habe aber eben oft den Eindruck (gerade bei solchen Aussagen, wozu optimieren) es Spiele gar keine Rolle mehr vor allem wenn der Tenor ist, es sei kompletter Müll.

m.fuchs hat geschrieben:Also meine Hauptprobleme die ich bei meinem Admin-Anteil so habe, sind eher schlecht dokumentierte Anwendungen, schlechte Installationen, unnötige Abhängigkeiten.


Das ist noch so ein Teil, der Optimiert werden könnte, aber auch dafür fehlt wohl die Zeit.

m.fuchs hat geschrieben:Gerade letzteres kommt ja bei so neuesten, heißen Scheiß wie node.js ständig vor. Da heißt die Lösung aber nicht hochoptimierter Programmcode, sondern wartbarer Programmcode. Das Geld was man in Wartbarkeit der Software steckt ist um ein Vielfaches besser angelegt als das, was in die Optimierung geht.
Womit ich nicht sagen möchte dass man Software völlig ausufernd auf alle Ressourcen zugreifen lassen sollte.


Das ist aber auch eine Form der Optimierung, ich denke gut wartbarer Code ist optimaler als runtergehackter Code.

m.fuchs hat geschrieben:Aber mal ehrlich, solche Probleme sehe ich hier einfach nicht. Oder kannst du mir eine FPC-basierte Anwendung nennen, die die Anwender zum Kauf von Geräten der allerneuesten Generation zwingt?


Erneut, es ging nicht direkt um FPC, sondern um die Aussage, Optimierung wozu.

m.fuchs hat geschrieben:Und was ein Merkmal ist, was völlig irrelevant ist.


Sicher nicht völlig und Augenscheinlich gerade bei anderen Plattformen.

m.fuchs hat geschrieben:Außer für die Bereiche AVR und Konsorten spielt der Mehrverbrauch von Festspeicherplatz, der durch Freepascal verursacht wird keine Rolle. Und dort wird sowieso ganz anders programmiert, als bei LCL-Desktopanwendungen.


Das ist klar.
Würde ich die Dinge so wie alle anderen machen, hätte ich so manche Probleme nicht.

Aber das wäre langweilig.

relocate
Beiträge: 61
Registriert: Di 24. Jan 2012, 11:47
OS, Lazarus, FPC: Win (L- FPC 2.4.4 + 2.6.4)
CPU-Target: 32Bit

Re: Linux-Compilat 3x grösser als windows ?

Beitrag von relocate »

m.fuchs hat geschrieben:Klar geht noch was, aber der Aufwand lohnt sich irgendwann nicht mehr. Und wegen einer 1-MiB-Anwendung würde ich nicht mal in den Quellcode schauen.


Klar, der Aufwand muss sich in Grenzen halten und die Zeit ist in der Entwicklung der eigentlichen Funktionalität sicher besser angelegt. Aber das eine muss das andere ja nicht ausschließen. Und das Thema kommt ja öfter auf, wird aber eben immer abgetan nach dem Motto, es wäre überhaupt nicht relevant. Und mit der 1MB Anwendung bin ich ja sehr zufrieden. Ein moderner Compiler sollte aber die Möglichkeiten zur Optimierung haben und das hat der FPC ja auch.

m.fuchs hat geschrieben:Du vermischt hier unglaublich vieles in dem Thread, was nichts miteinander zu tun hat.


Doch hat es, weil es alles mit Optimierung zu tun hat (in welcher Form auch immer). Der Entwickler sollte es tun (mit gerechtfertigtem Aufwand), das Entwicklungssystem sollte es tun. Die größe der Binaries ist halt ein Indikator, aber um die ging es mir nicht explizit.

m.fuchs hat geschrieben:Die Frage nach der Installationsoptimierung einer OS-Distribution, hat nichts mit der Dateigröße von FPC-basierten Anwendungen zu tun.


Wie gesagt, mein Thema: Optimierung.

m.fuchs hat geschrieben:Deine Meinung beruht aber darauf, dass du eben vieles miteinander vermengst, was erst einmal nicht zusammenhängt.


Das hängt zusammen, hat aber nicht explizit mit FPC zu tun, worum es mir aber auch nicht ging.
Würde ich die Dinge so wie alle anderen machen, hätte ich so manche Probleme nicht.

Aber das wäre langweilig.

MacWomble
Lazarusforum e. V.
Beiträge: 999
Registriert: Do 17. Apr 2008, 01:59
OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
CPU-Target: Intel i7-10750 64Bit
Wohnort: Freiburg

Re: Linux-Compilat 3x grösser als windows ?

Beitrag von MacWomble »

Ich kann diesem Thema nicht wirklich folgen.

Natürlich ist es sinnvoll und wünschenswert Programme zu optimieren.

Das Beispiel Hello-World halte ich hier aber für absolut ungeeignet. Es ist nicht Praxisbezogen und schon in der Sache (Ausgabe von Hello World) für den Vergleich von Progammgrößen ungeeignet, da der Overhead viel zu groß ist. Repräsentativer wäre hier etwas aufwändigeres wie zum Beispiel ein Taschenrechner oder ähnliches.

Mein Programm war ursprümglich mit VisualBasic unter Windows geschrieben und hatte nur rund 4 MB. Damit alles funktionierte, war es allerdings nötig noch ca 90MB an Bibliotheken mit zu installieren >> macht rund 94MB !

Meine Linuxversion (Lazarus) hat inzwischen deutlich mehr Funktionalität und ich bin gerade mal bei 12MB. Auf Linuxsystemen muss ich nichts nachinstallieren.
(Büroorganisationssoftware mit Akten-, Dokumentenverwaltung, Historien und kompletter Projekt- und Auftragsbearbeitung u.a. in aufwändiger Version für Bauhandwerk.)

Optimieren geht bei Lazarus schon alleine durch vernünftige Wahl der verwendeten Packages.
Meine Devise: Möglichst wenige (verschiedene) Packages innerhalb eines Projekts zu verwenden, sofern dies möglich ist.

Man kann auch ein Auto bis zum Anschlag optimieren - viel Spaß beim treten :oops:
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2636
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Linux-Compilat 3x grösser als windows ?

Beitrag von m.fuchs »

relocate hat geschrieben:Doch hat es, weil es alles mit Optimierung zu tun hat (in welcher Form auch immer).
[...]
Wie gesagt, mein Thema: Optimierung.
[...]
Das hängt zusammen, hat aber nicht explizit mit FPC zu tun, worum es mir aber auch nicht ging.

Dann mach bitte einen gesonderten Thread auf zum Thema allgemeine Optimierung von Software. Und kapere dafür nicht einen Thread in dem jemand nach unterschiedlichen Dateigrößen von Kompilaten für unterschiedliche OS fragt. Danke.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

relocate
Beiträge: 61
Registriert: Di 24. Jan 2012, 11:47
OS, Lazarus, FPC: Win (L- FPC 2.4.4 + 2.6.4)
CPU-Target: 32Bit

Re: Linux-Compilat 3x grösser als windows ?

Beitrag von relocate »

m.fuchs hat geschrieben:Dann mach bitte einen gesonderten Thread auf zum Thema allgemeine Optimierung von Software. Und kapere dafür nicht einen Thread in dem jemand nach unterschiedlichen Dateigrößen von Kompilaten für unterschiedliche OS fragt. Danke.


Habe ich nicht, ich habe auf eine Antwort auf den Thread reagiert und meine Meinung dazugegeben, wenn das so hohe Wellen schlägt, dann kann ich nichts dafür aber ich antworte dementsprechend natürlich. So, für mich soll es das aber damit gewesen sein. Und ich werde mich dementsprechend erst einmal hier abwenden, wenn andere Meinungen unerwünscht sind und genauso wirkt es (ich weiß, es werden damit einige nicht Schade finden, aber so vergrault Ihr an FPC Interessierte, wirklich). Für mich ist das Kindergarten.
Würde ich die Dinge so wie alle anderen machen, hätte ich so manche Probleme nicht.

Aber das wäre langweilig.

Antworten