Con piccoli progetti, posso passare alla visualizzazione del progetto quasi istantaneamente (< 1 secondo).Cosa potrebbe causare un rallentamento della vista del progetto?
Ho un progetto di grandi dimensioni che impiega circa 60 secondi per aprire un controllo o un modulo in visualizzazione struttura - solo per la prima volta. Dopo questo ritardo di 60 secondi, posso aprire qualsiasi controllo nel progetto in modalità di visualizzazione quasi istantaneamente, finché non ricompilare il progetto.
Se l'exe creato da questo progetto viene fatto riferimento in un altro (piccolo) progetto, il piccolo progetto diventa istantaneamente lento come il grande progetto. Allo stesso modo, se aggiungo tutti i file dal grande progetto al singolo progetto, il piccolo progetto diventa lento.
Il progetto di grandi dimensioni fa riferimento a un progetto Managed C++ di grandi dimensioni, ma se aggiungo lo stesso riferimento (e richiamo una funzione dal riferimento per assicurarmi che sia caricato) nel piccolo progetto, il piccolo progetto è ancora veloce.
Il mio grande progetto utilizza SandDock. Se il mio piccolo progetto utilizza SandDock, è ancora veloce.
Il mio progetto di grandi dimensioni ha circa 60 controlli utente visualizzati nella casella degli strumenti. Se aggiungo 60 controlli utente al piccolo progetto, il piccolo progetto è ancora veloce.
Se eseguo il controllo utente nascosto dalla casella degli strumenti con [System.ComponentModel.ToolboxItem (false)], il progetto di grandi dimensioni è ancora lento.
Il problema si verifica sia in vs2005 che in vs2008.
Cosa potrebbe rendere il progetto di grandi dimensioni così lento da aprire la vista di progettazione per la prima volta? Qualche altro riferimento? Il gran numero di controlli? Il gran numero di classi? Qualche altra causa?
Una cosa che ho notato (anche se probabilmente un'aringa rossa) è che la cartella ProjectAssemblies (C: \ Documents and Settings \ tim.gradwell \ Impostazioni locali \ Dati applicazioni \ Microsoft \ VisualStudio \ 9.0 \ ProjectAssemblies) è enorme (> 1 GB) e la maggior parte delle cartelle qui presenti hanno una copia della mia DLL gestita per C++! Queste cartelle sembrano essere ricreate ogni volta che la vista del disegno viene riaperta (dopo una ricompilazione). Questo potrebbe avere qualcosa a che fare con il rallentamento?
ulteriori informazioni:
A toolstrip nel controllo utente o forma rende il modulo prendere 60 secondi per caricare. Rimuovendo la barra degli strumenti (ma avendo ancora diversi altri controlli sul modulo) si passa alla vista di progettazione istantanea.
Questo non è tutta la storia anche se ... Un toolstrip in un nuovo progetto non è causa di enorme rallentamento - quindi ci deve essere qualcosa nel mio grande progetto che sta colpendo toolstrips. Inoltre, alcuni altri moduli/controlli che non dispongono di barre su di essi impiegano ancora 60 secondi per visualizzare la vista del progetto, quindi qualunque sia l'effetto sulle strisce di strumenti influisce anche su altri controlli. Continuerò a cercare di inchiodare con precisione quali controlli e forse anche quello che lo sta causando!
Solo per chiarezza: il grande progetto che causa il rallentamento è in C#, corretto? – overslacked
Il progetto è scritto in C# ... fa anche riferimento a un progetto C++ gestito, ma non ho avuto il tempo di provare ad isolare il progetto C++ gestito per vedere se ciò ha fatto la differenza ... –