Hilfe bei OOP - Seite 9

 
fxsaber #:

Es geht nicht um meine Umsetzung. Sie können es auf die altmodische Weise messen.

Das habe ich bereits getan. Die Daten werden veröffentlicht. Ich werde es noch einmal in einer anderen Reihenfolge versuchen. Aber auch nach Ihren Angaben bringt die Arbeit mit einem Sternchen keine Leistung.
 
Ich würde jedoch gerne eine begründete Stellungnahme hören, die sich für die Arbeit mit Wegweisern ausspricht. Alles, was bisher geäußert wurde, ist: "angeblich schneller", "zwingt den Programmierer angeblich dazu, auf den Speicher zu achten und keinen unnötigen Platz zuzuweisen" und "du bist ein Narr".
 
Vasiliy Sokolov #:
Dennoch würde ich gerne eine begründete Stellungnahme zur Unterstützung der Arbeit mit Zeigern hören. Alles, was bisher geäußert wurde, ist: "angeblich schneller", "bringt Programmierer angeblich dazu, auf den Speicher zu achten und keinen unnötigen Platz zuzuweisen" und "du bist ein Narr" - natürlich.

Auch links-rechts verwirrt oder nicht?

Es ist einfach ein ungeheuerliches Durcheinander im Kopf. Zeiger sind langsamer, nicht schneller. Über die Notwendigkeit, auf den Speicher aufzupassen, wurde im Zusammenhang mit den Unterschieden im Programmierstil in Sprachen mit und ohne Garbage Collector gesprochen.

Vasya, du weißt schon nach 2-3 Beiträgen nicht mehr, welchen Standpunkt du in der Diskussion eingenommen hast, es geht mal so und mal so weiter.

 
fxsaber #:

Ein Beispiel für ein mögliches Problem wäre gut.

Ihor Herasko #:

Ein weiterer Punkt. Es ist besser, Arrays von Objekten mit Hilfe eines Zeigers zu erstellen. Andernfalls erhalten Sie ein Array im Stapelspeicher, das sehr klein ist:

Ich hatte ein Beispiel für die Erschöpfung des Stapelspeichers nur im Falle einer rekursiven Sortierung mit großen Datenmengen.
Das Programm blieb einfach hängen.

Außerdem können Sie globale Deklarationen verwenden, und in diesem Fall handelt es sich nicht um Stapelspeicher.
Meinen Sie nicht auch?

 
Ihor Herasko #:

Das ist kein Problem, geschweige denn ein potenzielles Problem. Das liegt nur an den Eigenheiten der Speicherverwaltung in MT. Hier ist ein statisches Array:

Und hier ist ein dynamisches Array:

In diesem Fall wird alles kompiliert und funktioniert.

Dem stimme ich zu, aber ich habe in meiner Praxis noch nie solche Mengen gehabt.
In der Regel benötige ich z.B. eine schnelle Berechnung eines Indikator-"Schwanzes", ohne die eingebaute Indikatorfunktion (Bibliothek) selbst aufzurufen,
, daher habe ich eine schnellere formelbasierte Berechnung von Indikatorwerten angewandt. In diesem Fall ist der Speicherverbrauch im Allgemeinen sehr gering.
Generell empfehle ich diesen Ansatz allen Entwicklern in Zukunft, um Speicher und Zeit bei der Berechnung von Funktionen mit Fließkomma zu sparen.
Wenn möglich, sollten viele Daten in das Ganzzahlformat konvertiert werden - das beschleunigt den Prozess erheblich.

P.S.: Natürlich geht es hier um die Einsparung von z.B. ein paar hundert Millisekunden.

 
Dmitiry Ananiev:

Ich mache einen solchen Kurs.

Jetzt möchte ich ein Objekt-Array aufrufen:

Wie kann man dann schnell ein Array von Objekten erstellen, wenn der Konstruktor Parameter auf globaler Ebene hat?

Erstellen Sie zum Beispiel zuerst Objekte, indem Sie den Konstruktor ändern, und wie kann ich dann die Objekte in OnInit durch Symbole ersetzen?

Gibt es vielleicht eine einfachere Lösung?

class Strategy1
{
        Strategy1();
 };

class Strategy2
{
        Strategy (string sym);
}

In der Deklaration der Klasse Strategy2 fehlt im Namen des Klassenkonstruktors selbst die "2", da es sich sonst nicht um einen Konstruktor handelt.