Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Was vermisst ihr in der RTL/VCL? Wünsche + Vorschläge! (https://www.delphipraxis.net/186962-vermisst-ihr-der-rtl-vcl-wuensche-vorschlaege.html)

Stevie 21. Okt 2015 13:09

AW: Was vermisst ihr in der RTL/VCL? Wünsche + Vorschläge!
 
Zitat:

Zitat von Bambini (Beitrag 1319341)
Ich würde mir einen Threaded Memory Manager wünschen, also einen MM für jeden Thread. Dann kann jeder Thread in seinem MM toben, ohne von den anderen Threads ausgebremst zu werden. Wenn dann noch die LOCK bei der string Verarbeitung wegfallen, http://synopse.info/forum/viewtopic.php?id=423 könnte Delphi alle CPU Kerne nutzen.

Und welcher Threadmanager verarbeitet die Objekte/strings die in Thread A erzeugt werden und an Thread B gegeben werden? Wenn dich Speichermanagement in einer Multithread Umgebung ausbremst, dann bau dir nen Objektpool, so dass Instanzen nicht immer erzeugt und freigegeben werden.

BUG 21. Okt 2015 14:26

AW: Was vermisst ihr in der RTL/VCL? Wünsche + Vorschläge!
 
Zitat:

Zitat von Bambini (Beitrag 1319341)
Ich würde mir einen Threaded Memory Manager wünschen, also einen MM für jeden Thread. Dann kann jeder Thread in seinem MM toben, ohne von den anderen Threads ausgebremst zu werden. Wenn dann noch die LOCK bei der string Verarbeitung wegfallen, http://synopse.info/forum/viewtopic.php?id=423 könnte Delphi alle CPU Kerne nutzen.

Der verlinkte Beitrag ist imho etwas missverständlich geschrieben. Wenn man Reference-Counting über mehrere Kerne machen möchte, sind diese LOCKed Instruktionen nötig. Das angesprochene Locking über CS ist mindestens genauso teuer. Wenn eh CS benutzt werden, dann sollte es afaik auf modernen Maschinen auch kein Skalierungsproblem mit den Reference-Countern geben.

Bambini 21. Okt 2015 14:34

AW: Was vermisst ihr in der RTL/VCL? Wünsche + Vorschläge!
 
Zitat:

Zitat von Stevie (Beitrag 1319345)
Und welcher Threadmanager verarbeitet die Objekte/strings die in Thread A erzeugt werden und an Thread B gegeben werden?

Die erzeugten Objekt bleiben ja am Leben, egal ob sie im MM von Thread A oder B erzeugt wurden können von überall verwendet werden.

Zitat:

Zitat von Stevie (Beitrag 1319345)
Wenn dich Speichermanagement in einer Multithread Umgebung ausbremst, dann bau dir nen Objektpool, so dass Instanzen nicht immer erzeugt und freigegeben werden.

Es bremst ja jeder GetMem() Aufruf, nicht nur ein TObject.Create(), sondern auch schon ein simples a := a + 'X'; oder ein TStringBuilder.Append('Bitte anhängen');

Natürlich kann man sein Programm auch an die Limits der RTL anpassen und dafür Workarounds bauen.
Und da es hier etwas zum Wünschen gab: Schöner ist es natürlich, das Delphi das kann, was .NET und C++ auch schon lange können.

greenmile 21. Okt 2015 14:43

AW: Was vermisst ihr in der RTL/VCL? Wünsche + Vorschläge!
 
Zitat:

Zitat von himitsu (Beitrag 1319042)
Ich wünsche mir, dass sowas endlich mal direkt eingebaut ist.
Delphi-Quellcode:
type
  TPageControl = class(ComCtrls.TPageControl)
  private
    FStartupPage: TTabSheet; // Diese Seite wird beim Start der Form geladen, unabhängig von der letzten aktiven Seite in der IDE.
    procedure SetStartupPage(Value: TTabSheet);
    function SaveActivePage: Boolean;
    function SaveStartupPage: Boolean;
  published
    property ActivePage {: TTabSheet read FActivePage write SetActivePage} stored SaveActivePage;
    property ActivePageOnStartup: TTabSheet read FStartupPage write SetStartupPage stored SaveStartupPage;
  end;

function TPageControl.SaveActivePage: Boolean;
begin
  Result := Assigned(ActivePage) and not Assigned(FStartupPage);
end;

function TPageControl.SaveStartupPage: Boolean;
begin
  Result := Assigned(FStartupPage);
end;

procedure TPageControl.SetStartupPage(Value: TTabSheet);
begin
  FStartupPage := Value;
  if Assigned(FStartupPage) then
    inherited ActivePage := FStartupPage;
end;

:thumb: Ich habe es noch nie verstanden, wieso das nicht drin ist. Ist mit wenigen Zeilen Source erledigt. Da ich aber inzwischen fast nur noch TMS verwende, ist es mir egal.

Bambini 21. Okt 2015 14:44

AW: Was vermisst ihr in der RTL/VCL? Wünsche + Vorschläge!
 
Zitat:

Zitat von BUG (Beitrag 1319356)
Der verlinkte Beitrag ist imho etwas missverständlich geschrieben. Wenn man Reference-Counting über mehrere Kerne machen möchte, sind diese LOCKed Instruktionen nötig. Das angesprochene Locking über CS ist mindestens genauso teuer. Wenn eh CS benutzt werden, dann sollte es afaik auf modernen Maschinen auch kein Skalierungsproblem mit den Reference-Countern geben.

Soweit ich das verstehe, LOCK'en Delphi strings immer die Kerne. D.h. macht ein Thread viele String Operationen, müssen die anderen immer warten, obwohl die mit dessen strings und Variablen nix zu tun haben.

BUG 21. Okt 2015 15:13

AW: Was vermisst ihr in der RTL/VCL? Wünsche + Vorschläge!
 
Zitat:

Zitat von Bambini (Beitrag 1319359)
Soweit ich das verstehe, LOCK'en Delphi strings immer die Kerne. D.h. macht ein Thread viele String Operationen, müssen die anderen immer warten, obwohl die mit dessen strings und Variablen nix zu tun haben.

Ursprünglich hat dieser Präfix zum Locken des kompletten Speicherbus geführt, aber das ist schon länger her. Etwas aufwendiger ist das schon, aber wenn das nicht auf gemeinsamen Cache-Lines passiert, nicht annähernd so dramatisch.

Stevie 21. Okt 2015 15:24

AW: Was vermisst ihr in der RTL/VCL? Wünsche + Vorschläge!
 
Zitat:

Zitat von Bambini (Beitrag 1319357)
Zitat:

Zitat von Stevie (Beitrag 1319345)
Und welcher Threadmanager verarbeitet die Objekte/strings die in Thread A erzeugt werden und an Thread B gegeben werden?

Die erzeugten Objekt bleiben ja am Leben, egal ob sie im MM von Thread A oder B erzeugt wurden können von überall verwendet werden.

Sagt wer? Was soll denn passieren, wenn Thread B ein in Thread A erstelltes Objekt freigibt?

BUG 21. Okt 2015 15:41

AW: Was vermisst ihr in der RTL/VCL? Wünsche + Vorschläge!
 
Zitat:

Zitat von Stevie (Beitrag 1319364)
Sagt wer? Was soll denn passieren, wenn Thread B ein in Thread A erstelltes Objekt freigibt?

Fügt er es entweder in seinen Pool ein oder gibt es zurück. All diese Probleme sind bekannt und werden von parallelen MM berücksichtigt. Ich finde das Paper zu Hoard ist als Einstieg in parallele MM gut geeignet (viele nützliche Referenzen).

bernau 24. Nov 2015 09:53

AW: Was vermisst ihr in der RTL/VCL? Wünsche + Vorschläge!
 
Ich hole mal den Thread nach oben.

In der Regel verwende ich in meinen Programmen 3-4 verschiedene Schriftstile

Normaler Text (size = 9, color = clblack)
Hervorgehobener Text1 (size = 9, color = clnavy)
Hervorgehobener Text2 (size = 9, color = clred)
Überschrift (size = 12, color = clblack)

Ich wünsche mir eine Art "Cascading Style Sheets" für die Darstellung von (VCL-)Componenten. In Html lege ich einfach in CCS die Vorgaben für Schriften fest und kann dann über h1, h2, h3 etc. einem Text mitteilen, welche Schrift verwendet wird.

Es müsste dann ein neues Property "FontStylename" geben, bei dem ich dann einfach den Stil "Hervorgehobener Text1" auswähle und schon sind die entsprechenden Werte gesetzt. Schriften könnten an zentraler stelle geändert werden.

Zur Zeit nervt auch, daß eine Änderung an der Textgröße automatisch alle Eigenschaften von Font in der DFM-gespeichert. Ich arbeite viel mit vererbten Formularen. Das bedeutet, daß eine geänderte Textgröße im abgeleiteten Formular bewirkt, daß eine Änderung des Fontnamen im Template keine Auswirkung im abgeleiteten Formular mehr hat.

BUG 24. Nov 2015 10:48

AW: Was vermisst ihr in der RTL/VCL? Wünsche + Vorschläge!
 
Zitat:

Zitat von bernau (Beitrag 1322303)
Ich wünsche mir eine Art "Cascading Style Sheets" für die Darstellung von (VCL-)Componenten.

Meiner Erfahrung nach wird UI-Entwicklung immer angenehmer, je mehr man deklarativ hinschreiben kann :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:53 Uhr.
Seite 3 von 4     123 4      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz