Stackoverflow bei instanzierung eine großen Objekts.



  • @SoIntMan sagte in Stackoverflow bei instanzierung eine großen Objekts.:

    Aber von CreateInstance<MyBigObject>() bis zum Breakpoint der ersten Zeile in Ctor des MyBigObject. sehe ich im Diagnose tool VS dass der Speicher auf 1,3GB ansteigt, dann absinkt auf 200MB und dann zum Breakpoint hängt.
    Das dauert 10-15sekunden , und da kann eben ein OutOfMemory kommen oder ein StackOverflow.. aber wenn er dann im ctor hängt passiert nichts mehr (außer ich würde evlt. in den 50k Zeilen zu viel Speicher allokieren dass es dann dock knallt=)

    Das klingt würde ich sagen sehr nach JIT. Aber...

    Weißt wie ich mein?)

    Nein, bin nicht sicher ob ich das richtig verstehe. Was macht denn CreateInstance<MyBigObject>()? Bisher hast du immer von new MyBigObject geschrieben. (Bzw. 1x new ObjectX wo aber vermutlich new MyBigObject gemeint war.)

    Und: hast du denn ausprobiert was passiert wenn du den Code 2x hintereinander ausführst (natürlich ohne das Programm 2x zu starten)?



  • @hustbaer sagte in Stackoverflow bei instanzierung eine großen Objekts.:

    Nein, bin nicht sicher ob ich das richtig verstehe. Was macht denn CreateInstance<MyBigObject>()? Bisher hast du immer von new MyBigObject geschrieben. (Bzw. 1x new ObjectX wo aber vermutlich new MyBigObject gemeint war.)

    sorry für Verwirrung, ich meinte ich hatte die allokieren in ein funktion ausgelagert, weil ich vorhatte evtl. business logig zu kapseln, aber bisher siehtes einfach so aus.

    T x = CreateInstance<T>() where T: class, new() => new T() ;
    

    genau ich meinte im Prinzip immer n```csharp
    ew MyBigObject().

    hmm ok 2 mal hintereiander also :

    var a = new MyBigObject ();
    var b = new MyBigObject ();
    

    du vermutest dass es dann nur bei de ersten Zeile so lang dauert, und bei de 2-ten dann nich mehr , hab ich recht!?

    Muss ich heute abend mal ausprobieren



  • @SoIntMan sagte in Stackoverflow bei instanzierung eine großen Objekts.:

    du vermutest dass es dann nur bei de ersten Zeile so lang dauert, und bei de 2-ten dann nich mehr , hab ich recht!?

    Ja. Oder sagen wir so: wenn es am JIT liegt, dann müsste das so sein. Bzw. auch umgekehrt: wenn es so ist, dann liegt es ziemlich sicher am JIT.



  • @hustbaer sagte in Stackoverflow bei instanzierung eine großen Objekts.:

    Ja. Oder sagen wir so: wenn es am JIT liegt, dann müsste das so sein. Bzw. auch umgekehrt: wenn es so ist, dann liegt es ziemlich sicher am JIT.

    Alles klar Kommender ich kam bisher nicht dazu , heute probiere ich es 😉

    EDIT: @hustbaer Ja die zweite Instanziierung scheint schneller zu gehen;)


Anmelden zum Antworten