Einzelnen Beitrag anzeigen

Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#26

AW: Delphi vs Visual C++

  Alt 29. Nov 2016, 09:44
1. Was soll Komprimierung bringen? Das ist doch noch einmal zusätzliche Rechenleistung die benötigt wird, oder?
Lies dir bitte nochmal meinen Vorschlag durch.

Wenn du eine Zahl als String und Dezimalzahl darstellst, ist die üblicherweise auch länger als der gleiche Wert als Hexadezimalzahl (ohne spezielle Formatierung) dargestellt. Das ist auch eine Form von Komprimierung.

Wenn du bspw. sechzehnbittige Dezimalzahlen hast und sollst bei Speichermangel herausfinden ob es Lücken in der Zahlenreihe gibt, kannst du wahlweise eine Liste mit 16-bittigen Einträgen bauen und diese durchsuchen (2 x 2^16 == 2 x 65536 == 131072 Bytes), oder du bastelst dir ein Bitfeld aus 65536 Bits (8192 Bytes) und setzt jedes Bit je nach Index (== Zahlwert) oder eben nicht. Und jetzt denken wir uns das mal mit 32-bittigen Werten und dann kommt es auch näher an die Größenordnung deines Problems.

Das ist auch eine Komprimierung ohne klassische Komprimierungsalgorithmen (Deflate, bzip2, LZMA, PPMd).

Aber selbst klassische Algorithmen können manchmal was bringen, bspw. beim Abspeichern auf der Platte und darauffolgendem Einlesen in den Arbeitsspeicher. Es ist nämlich manchmal deutlich flotter etwas im Speicher per Inflate (Brotli usw. kämen auch in Frage) zu dekomprimieren als die bereits dekomprimierte Menge Daten vom Festspeicher zu lesen. Kommt natürlich auf den Festspeicher an, bei einer SSD wären die Vorteile deutlich geringer als bei einer Festplatte. Aber das ist auch einer der wenigen Gründe warum EXE-Packer manchmal Sinn machen. Sie können tatsächlich das Laden eines großen Programms beschleunigen (auch wenn sie danach CoW verhindern und somit ab einer zweiten Instanz mehr Speicher verbrauchen).

Und es ist klar, daß solche Ansätze wie die oben genannten nur dann infrage kommen, wenn die Struktur deiner Daten das zuläßt. Aber du könntest ja mal ne Woche so tun als gäbe es noch keine Grafikkarten mit viel RAM und als hätte dein Rechner nicht soviel RAM und versuchen anhand dieser Einschränkungen nach Optimierungen zu suchen. Manchmal fällt es einem dann wie Schuppen von den Augen.

Das ist so ähnlich wie bei den Fragen in einschlägigen Foren und F&A-Seiten ala "Wie kann ich mit meinem Spannungsprüfer am besten diese Sechskantschraube mit Mutter in meine Wand bekommen?". Das eigentliche Ziel ("Bild an Wand befestigen") bleibt bei solchen Fragen ungenannt und der Fragesteller erwartet eine sinnvolle Antwort die seinen Vorgaben folgt.

Kurzum: schau über den Tellerrand.

(Es kann natürlich sein, daß es andere Sachzwänge gibt, die - ebenfalls ungenannt - bedingen, daß viele unserer Vorschläge unsinnig sind. Dann solltest du diese Sachzwänge erwähnen.)

5. Richtig interessant finde ich AMP. Da muss ich mich mal intensiver mit beschäftigen.
Wenn du nach wie vor mit Linux liebäugelst ist dies eine Einbahnstraße.
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat