Domanda

Contesto: Stiamo costruendo un framework per la consegna rapida delle applicazioni WPF. Questo framework utilizza Autofac come contenitore IoC e utilizza anche regioni di Prism v1. Stiamo programmando attività con estensioni parallele di Microsoft.

Stiamo affrontando il seguente problema: Quando avvieremo l'applicazione con viste vuote (quindi solo una shell con regioni e controlli segnaposto), la memoria rimarrà stabile per circa 60 secondi e successivamente aumenterà di circa ogni secondo con 4kb, quindi 4kb, quindi con 8kb. Quindi ogni 3 secondi abbiamo aggiunto 16Kb alla nostra pressione di memoria.

Cosa abbiamo provato a rintracciare la perdita. Ho iniziato usando dotTrace ma non sono riuscito a vedere alcuna differenza tra 2 istantanee distanti 30 minuti. Passato al profiler di memoria .NET perché mi dà più informazioni ma ancora non possiamo vedere alcuna differenza tra 2 istantanee. Possiamo vedere che un certo numero di oggetti viene creato ma anche loro vengono rimossi e si traduce in un delta di 0. Quindi sono passato a windbg ma il risultato è lo stesso.

Un'altra cosa strana è che quando iniziamo sysinternals dbgvw non vediamo alcuna chiamata nelle nostre applicazioni.

Hai qualche suggerimento su cosa potremmo provare dopo per scoprire quale / chi è il colpevole?

È stato utile?

Soluzione 2

A quanto pare, era un bug all'interno di WPF e la soluzione era creare un gestore di finestre come primo oggetto o qualcosa del genere. Grazie ragazzi

Altri suggerimenti

Se stai cercando perdite non gestite e stai usando Visual Studio puoi ottenere informazioni sorprendentemente utili usando le funzioni crt integrate:

vedi una risposta a una domanda correlata

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top