![]() |
Re: Geschwindigkeitsunterschiede bei Objekten/Pointern?
@ Choose oder Hagen das Thema is ja sehr interessant gibt es Dazu noch Codebeispiele und weiterführene Literatur?
|
Re: Geschwindigkeitsunterschiede bei Objekten/Pointern?
Choose hat das mit .NewInstance absolut richtig erklärt.
Zitat:
Aus diesem Grunde habe ich zB. nicht eine Klasse nach unten beschnitten, sondern einen einfachen festen Record nach oben hin ausgebaut mit den Fähigkeiten die ich benötigte. Das sieht dann so aus das ein Record so konstruiert wurde das der Delphi Compiler "glaubt" er habe ein Interface vor sich. Angeblich sollen ja in Delphi 8 solche Record mit Record-Methoden ins Sprachkonzept aufgenommen wurden sein. Hier im Forum findest du ein Beispiel dieser "forged" Interfaces. Der Name "forged Interface" ist eine Wortschöpfung von mir, also frage bitte nicht wo im WEB du mehr darüber erfahren kannst. Soviel ich weiß nirgendswo ausser hier, denn der benutzte Trick ist unbekannt. Schau mal hier ![]() Gruß Hagen |
Re: Geschwindigkeitsunterschiede bei Objekten/Pointern?
Hallo Hagen,
das Konzept Deiner "forged interfaces" (FI) entsprichte dem der vielen "Garbage Collector for Delphi"-Artikeln. Eine Ähnliche Bibliothek zum Durchführen beliebiger Aktionen sowie einer Implementierung von "SmartPointern", die sogar auf nil zurückgesetzt werden habe ich vor ein paar Monaten geschrieben. Diese von mir als "implicit actions" getaufte Lösung beruht allerdings auf "echten Klassen", bei denen die durchzuführende Logik in einer Template-Methode, die im Konstruktor des abstrakten Vorfahren aller Aktionen aufgerufen wird, abgelegt. Mit Sicherheit sind die FI ressourcensparender, jedoch für Entwickler, die ASM nicht verstehen, nur schwer nachzuvollziehen bzw zu erweitern. Zu Deiner konkreten Lösung von WaitCursor möchte ich noch anmerken, dass Du von der Prämisse ausgehst, dass vor dem Aufruf von WaitCursor der StdCursor gesetzt ist, das ist nicht immer der Fall. Für performante Lösungen halte ich Dein "Fälschungs-Konzept" der FI trotzdem für sehr interessant und auch die Erweiterbarkeit liese sich hinbekommen, sofern man eine zusätzliche Indirektion verwendet. Danke für diese Inspiration! |
Re: Geschwindigkeitsunterschiede bei Objekten/Pointern?
Zitat:
Zitat:
Gruß Hagen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz