Condividi tramite


Procedura dettagliata: profilatura di un'applicazione di SharePoint

In questa procedura dettagliata viene illustrato come utilizzare gli strumenti di profilatura in Visual Studio per ottimizzare le prestazioni di un'applicazione di SharePoint.L'applicazione di esempio è un ricevitore di eventi di funzionalità SharePoint che contiene un ciclo inattivo che comporta una riduzione delle prestazioni del ricevitore di eventi di funzionalità.Il profiler di Visual Studio consente di inserire ed eliminare la parte (lento- esecuzione) più costosa del progetto, nota anche come il percorso ricorrente.

In questa procedura dettagliata vengono illustrate le attività seguenti:

  • Aggiunta di una funzionalità e del ricevitore di eventi di funzionalità.

  • Configurando e distribuzione dell'applicazione di SharePoint.

  • Esecuzione dell'applicazione SharePoint.

  • Visualizzazione e interpretazione dei risultati di analisi.

[!NOTA]

Nel computer in uso è possibile che vengano visualizzati nomi o percorsi diversi per alcuni elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti. La versione di Visual Studio in uso e le impostazioni configurate determinano questi elementi. Per ulteriori informazioni vedere Impostazioni di Visual Studio.

Prerequisiti

Per completare la procedura dettagliata, è necessario disporre dei componenti seguenti:

Creazione di un progetto SharePoint

Innanzitutto, creare un progetto SharePoint.

Per creare un progetto SharePoint

  1. Sulla barra dei menu, scegliere Il file, Nuova, Project per visualizzare la finestra di dialogo Nuovo progetto.

  2. Espandere il nodo SharePoint in Visual C# o Visual Basicquindi selezionare il nodo 2010.

  3. Nel riquadro Modelli, scegliere il modello Progetto SharePoint 2010.

  4. Nella casella Nome, immettere ProfileTest quindi scegliere il pulsante OK.

    Viene visualizzata la Personalizzazione guidata SharePoint.

  5. Nella pagina Specificare il sito e il livello di sicurezza per il debug immettere l'URL per il sito del server SharePoint in cui si desidera eseguire il debug della definizione di sito o utilizzare il percorso predefinito (http://nome del sistema/).

  6. Nella sezione Selezionare il livello di attendibilità per la soluzione SharePoint., scegliere il pulsante di opzione Distribuisci come soluzione farm.

    Attualmente, è possibile profilare solo le soluzioni farm.Per ulteriori informazioni sulle differenze tra le soluzioni create mediante sandbox e quelle della farm, vedere Considerazioni sulle soluzioni create mediante sandbox.

  7. Scegliere il pulsante Fine.Il progetto viene visualizzato in Esplora soluzioni.

Aggiunta di una funzionalità e del ricevitore di eventi di funzionalità

Successivamente, aggiungere una funzionalità al progetto con un ricevitore di eventi alla funzionalità.Il ricevitore di eventi conterrà il codice da profilare.

Per aggiungere una funzionalità e un ricevitore di eventi di funzionalità

  1. In Esplora soluzioni, aprire il menu di scelta rapida del nodo Funzionalità, scegliere Aggiungi funzionalitàe lasciare il nome e il valore predefinito, Funzionalità1.

  2. In Esplora soluzioni, aprire il menu di scelta rapida per Funzionalità1quindi scegliere Aggiungi ricevitore di eventi.

    Verrà aggiunto un file di codice alla funzionalità con diversi gestori eventi impostati come commenti e apre il file da modificare.

  3. Nella classe del ricevitore, aggiungere le seguenti dichiarazioni delle variabili.

    ' SharePoint site/subsite.
    Private siteUrl As String = "https://localhost"
    Private webUrl As String = "/"
    
    // SharePoint site/subsite.
    private string siteUrl = "https://localhost";
    private string webUrl = "/";
    
  4. Sostituire la procedura FeatureActivated con il codice seguente.

    Public Overrides Sub FeatureActivated(properties As SPFeatureReceiverProperties)
        Try
            Using site As New SPSite(siteUrl)
                Using web As SPWeb = site.OpenWeb(webUrl)
                    ' Reference the lists.
                    Dim announcementsList As SPList = web.Lists("Announcements")
    
                    ' Add a new announcement to the Announcements list.
                    Dim listItem As SPListItem = announcementsList.Items.Add()
                    listItem("Title") = "Activated Feature: " & Convert.ToString(properties.Definition.DisplayName)
                    listItem("Body") = Convert.ToString(properties.Definition.DisplayName) & " was activated on: " & DateTime.Now.ToString()
                    ' Waste some time.
                    TimeCounter()
                    ' Update the list.
                    listItem.Update()
                End Using
            End Using
    
        Catch e As Exception
            Console.WriteLine("Error: " & e.ToString())
        End Try
    End Sub
    
    public override void FeatureActivated(SPFeatureReceiverProperties properties)
    {
        try
        {
            using (SPSite site = new SPSite(siteUrl))
            {
                using (SPWeb web = site.OpenWeb(webUrl))
                {
                    // Reference the lists.
                    SPList announcementsList = web.Lists["Announcements"];
    
                    // Add a new announcement to the Announcements list.
                    SPListItem listItem = announcementsList.Items.Add();
                    listItem["Title"] = "Activated Feature: " + properties.Definition.DisplayName;
                    listItem["Body"] = properties.Definition.DisplayName + " was activated on: " + 
    DateTime.Now.ToString();
                    // Waste some time.
                    TimeCounter();
                    // Update the list.
                    listItem.Update();                        
                }
            }
        }
    
        catch (Exception e)
        {
            Console.WriteLine("Error: " + e.ToString());
        }
    }
    
  5. Aggiungere la procedura seguente nella routine FeatureActivated.

    Public Sub TimeCounter()
        Dim result As Integer
        For i As Integer = 0 To 99999
            For j As Integer = 0 To 9999
                result = i * j
            Next j
        Next i
    End Sub
    
    public void TimeCounter()
    {
        for (int i = 0; i < 100000; i++)
        {
            for (int j = 0; j < 10000; j++)
            {
                int result = i * j;
            }
        }
    }
    
  6. In Esplora soluzioni, aprire il menu di scelta rapida del progetto (ProfileTest) e quindi scegliere Proprietà.

  7. Nella finestra di dialogo Proprietà, scegliere la scheda SharePoint.

  8. Nell'elenco Configurazione distribuzione attiva, scegliere Nessuna attivazione.

    Selezionare la configurazione di distribuzione consente manualmente per attivare successivamente la funzionalità in SharePoint.

  9. Salvare il progetto.

Configurando e distribuzione dell'applicazione di SharePoint

Ora che il progetto SharePoint, è possibile configurarlo e distribuirlo sul server SharePoint.

Per configurare e distribuire l'applicazione di SharePoint

  1. Scegliere dal menu Analizza, scegliere Avvia Creazione guidata sessione di prestazioni.

  2. Nella pagina una Creazione guidata sessione di prestazioni, lasciare il metodo di profilatura come Campionamento CPU e scegliere il pulsante Avanti.

    Gli altri metodi di profilatura possono essere utilizzati in situazioni di profilatura più avanzate.Per ulteriori informazioni, vedere Informazioni sui metodi di profilatura.

  3. Nella seconda pagina Creazione guidata sessione di prestazioni, lasciare la destinazione di profilo come ProfileTest e scegliere il pulsante Avanti.

    Se una soluzione con più progetti, in questo elenco.

  4. Nella pagina tre Creazione guidata sessione di prestazioni, deselezionare la casella di controllo Abilita profilatura interazione tra livelli quindi scegliere il pulsante Avanti.

    Il profilo interazione tra livelli la funzionalità di (TIP) è utile per misurare le prestazioni delle applicazioni con esecuzione di query di database e per indicare il numero di volte una pagina Web è necessaria.Poiché i dati non sono necessari per questo esempio, non abiliteremo questa funzionalità.

  5. Nella pagina di quattro Creazione guidata sessione di prestazioni, lasciare la casella di controllo Avvia profilatura al termine della procedura guidata quindi scegliere il pulsante Fine.

    La procedura guidata consente l'applicazione di profilatura sul server, viene visualizzata la finestra Esplora prestazioni quindi compila, distribuzioni e eseguita l'applicazione di SharePoint.

Esecuzione dell'applicazione SharePoint

Attivare la funzionalità in SharePoint, attivando il codice dell'evento FeatureActivation per l'esecuzione.

Per eseguire l'applicazione di SharePoint

  1. In SharePoint, aprire il menu Azioni sito quindi scegliere Impostazioni sito.

  2. Nell'elenco Azioni sito, scegliere il collegamento Gestisci caratteristiche sito.

  3. Nell'elenco Funzionalità, scegliere il pulsante Attiva accanto a ProfileTest Funzionalità1.

    Esiste una pausa in questo caso, a causa del ciclo inattivo chiamato la funzione FeatureActivated.

  4. Sulla barra Avvio veloce, scegliere Elenchi quindi nell'elenco Elenchi, scegliere Annunci.

    Si noti che un nuovo annuncio è stato aggiunto all'elenco per indicare che la funzionalità è stata attivata.

  5. Chiudere il sito di SharePoint.

    Dopo avere chiuso SharePoint, il profiler crea e visualizza un rapporto di profilo di esempio e viene salvato come file vsp nella cartella del progetto ProfileTest.

Visualizzazione e interpretazione dei risultati di analisi

Dopo aver eseguito e profilare l'applicazione di SharePoint, visualizzare i risultati del test.

Per visualizzare e interpretare i risultati di analisi

  1. Nella sezione Funzioni che svolgono più lavoro individuale rapporti di profilo campione, si noti che è TimeCounter nella parte superiore dell'elenco.

    Questa impostazione indica che TimeCounter è una delle funzioni con il numero più elevato degli esempi, ovvero un subset più grandi di bottiglia delle prestazioni dell'applicazione.Questa situazione non è sorprendente, tuttavia, poiché è stato progettato espressamente che modalità a scopo dimostrativo.

  2. Nella sezione Funzioni che svolgono più lavoro individuale, scegliere il collegamento ProcessRequest per visualizzare la distribuzione dei costi per la funzione ProcessRequest.

    Nella sezione Funzioni chiamate per ProcessRequest, la funzione FeatureActiviated viene elencata come funzione chiamata più costosa.

  3. Nella sezione Funzioni chiamate, scegliere il pulsante FeatureActivated.

    Nella sezione Funzioni chiamate per FeatureActivated, la funzione TimeCounter viene elencata come funzione chiamata più costosa.Nel riquadro Visualizzazione codice funzione, il codice evidenziato (TimeCounter) è l'area sensibile e indica dove la correzione è necessario.

  4. Chiudere il rapporto di profilo di esempio.

    Per visualizzare nuovamente il rapporto in qualsiasi momento, aprire il file vsp nella finestra Esplora prestazioni.

Correzione del codice e il Reprofiling l'applicazione

Ora che la funzione di area sensibile nell'applicazione di SharePoint è stata identificata, correggala.

Per correggere il codice e reprofile l'applicazione

  1. Nel codice del ricevitore di eventi di funzionalità, impostare come commento la chiamata al metodo TimeCounter in FeatureActivated per impedire che venga chiamato.

  2. Salvare il progetto.

  3. In Esplora prestazioni, aprire la cartella di destinazione e quindi scegliere il nodo ProfileTest.

  4. Nella barra degli strumenti Esplora prestazioni, nella scheda Azioni, scegliere il pulsante Avvia profilatura.

    Se si desidera modificare le proprietà di profilo prima di reprofiling l'applicazione, scegliere il pulsante Avvia Creazione guidata sessione di prestazioni anziché.

  5. Seguire le istruzioni nella sezione Esecuzione dell'applicazione SharePoint, precedentemente in questo argomento.

    La funzionalità deve attivare molto più velocemente ora che la chiamata al ciclo inattivo è stata eliminata.Il rapporto di profilo di esempio deve conseguenza.

Vedere anche

Concetti

Analisi delle prestazioni dell'applicazione tramite gli strumenti di profilatura

Cenni preliminari sulle sessioni di prestazioni degli strumenti di profilatura

Guida per principianti alla profilatura delle prestazioni

Altre risorse

Colli di bottiglia dell'applicazione di ricerca con il profiler di Visual Studio