Condividi tramite


Procedura dettagliata: Profilatura di un'applicazione SharePoint

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

In questa procedura dettagliata sono illustrati i task seguenti:

Prerequisiti

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

  • Edizioni supportate di Microsoft Windows e SharePoint.

  • Visual Studio 2012.

Creare un progetto di SharePoint

Creare innanzitutto un progetto SharePoint.

Per creare un progetto SharePoint

  1. Nella barra dei menu scegliere File>nuovo>progetto per visualizzare la finestra di dialogo Nuovo progetto.

  2. Espandere il nodo SharePoint in Visual C# o Visual Basic e quindi scegliere il nodo 2010 .

  3. Nel riquadro modelli scegliere il modello progetto di SharePoint 2010.

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

    Verrà 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 vuole eseguire il debug della definizione del sito oppure usare il percorso predefinito (http:// nome del sistema/).

  6. Nella sezione Qual è il livello di attendibilità per questa soluzione SharePoint? scegliere il pulsante di opzione Distribuisci come soluzione farm.

    Attualmente, è possibile profilare solo soluzioni farm. Per altre informazioni sulle soluzioni in modalità sandbox e sulle soluzioni farm, vedere Considerazioni sulle soluzioni in modalità sandbox.

  7. Fare clic sul pulsante Finish . Il progetto viene visualizzato in Esplora soluzioni.

Aggiungere una funzionalità e un ricevitore di eventi di funzionalità

Successivamente, aggiungere una funzionalità al progetto insieme a un ricevitore di eventi per la funzionalità. In questo ricevitore di eventi sarà incluso 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 per il nodo Funzionalità, scegliere Aggiungi funzionalità e lasciare il nome al valore predefinito Feature1.

  2. In Esplora soluzioni aprire il menu di scelta rapida per Feature1 e quindi scegliere Aggiungi ricevitore di eventi.

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

  3. Nella classe del ricevitore di eventi aggiungere le seguenti dichiarazioni di variabili.

    // SharePoint site/subsite.
    private string siteUrl = "http://localhost";
    private string webUrl = "/";
    
  4. Sostituire la procedura FeatureActivated con il codice seguente.

    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 sotto la FeatureActivated procedura.

    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 per il 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.

    Se si seleziona questa configurazione di distribuzione è possibile attivare manualmente la funzionalità in un secondo momento in SharePoint.

  9. Salvare il progetto.

Configurare e distribuire l'applicazione SharePoint

Una volta pronto il progetto SharePoint, è possibile configurarlo e distribuirlo nel server SharePoint.

Per configurare e distribuire l'applicazione SharePoint

  1. Scegliere Avvia configurazione guidata prestazioni dal menu Analizza.

  2. Nella pagina 1 della Procedura guidata prestazioni lasciare il metodo di profilatura come campionamento della CPU e scegliere il pulsante Avanti .

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

  3. Nella seconda pagina della Procedura guidata prestazioni lasciare la destinazione del profilo come ProfileTest e scegliere il pulsante Avanti .

    Se in una soluzione sono disponibili più progetti, vengono visualizzati in questo elenco.

  4. Nella terza pagina della Procedura guidata prestazioni deselezionare la casella di controllo Abilita profilatura interazione tra livelli e quindi scegliere il pulsante Avanti .

    La funzionalità di profilatura interazione tra livelli (TIP) è utile per misurare le prestazioni di applicazioni in cui vengono eseguite query sui database e per visualizzare il numero di volte in cui viene richiesta una pagina Web. Poiché i dati non sono necessari per questo esempio, la funzionalità non verrà abilitata.

  5. Nella pagina quattro della Procedura guidata prestazioni lasciare selezionata la casella di controllo Avvia profilatura al termine della procedura guidata e quindi scegliere il pulsante Fine .

    La procedura guidata abilita la profilatura delle applicazioni nel server, visualizza la finestra Esplora prestazioni, quindi compila, distribuisce ed esegue l'applicazione SharePoint.

Eseguire l'applicazione SharePoint

Attivare la funzionalità in SharePoint, attivando il codice dell'evento FeatureActivation da eseguire.

Per eseguire l'applicazione SharePoint

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

  2. Nell'elenco Azioni sito scegliere il collegamento Gestisci funzionalità del sito.

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

    Vi sarà una pausa quando verrà eseguita questa operazione, a causa del ciclo inattivo chiamato nella funzione FeatureActivated.

  4. Sulla barra Avvio veloce scegliere Elenchi e 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 aver chiuso SharePoint, il profiler crea e visualizza un report di profilatura di esempio e lo salva come file con estensione vsp nella cartella del progetto ProfileTest .

Visualizzare e interpretare i risultati del profilo

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

Per visualizzare e interpretare i risultati del profilo

  1. Nella sezione Funzioni che eseguono il lavoro più individuale del report di profilatura di esempio, si noti che TimeCounter si trova nella parte superiore dell'elenco.

    Questa posizione indica che TimeCounter è una delle funzioni con il numero più elevato di campioni, pertanto è uno dei più grandi colli di bottiglia delle prestazioni nell'applicazione. Questa situazione non è insolita, tuttavia, dal momento che si tratta di una modalità progettata espressamente a scopo dimostrativo.

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

    Nella sezione Funzioni chiamate per ProcessRequestsi noti che la funzione FeatureActiviated è elencata come la funzione chiamata più costosa.

  3. Nella sezione Funzioni chiamate scegliere il pulsante FeatureActivated .In the Called functions section, choose the FeatureActivated button.

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

  4. Chiudere il Rapporto sulla profilatura dei campioni.

    Per visualizzare di nuovo il report in qualsiasi momento, aprire il file con estensione vsp nella finestra Esplora prestazioni.

Correggere il codice e ripetere il file dell'applicazione

Una volta identificata la funzione relativa all'area sensibile nell'applicazione SharePoint, correggerla.

Per correggere il codice e riprofilare 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 Destinazioni e quindi scegliere il nodo ProfileTest .

  4. Nella scheda Azioni della barra degli strumenti esplora prestazioni scegliere il pulsante Avvia profilatura.

    Se si desidera modificare una delle proprietà di profilatura prima di riprovare l'applicazione, scegliere invece il pulsante Avvia esecuzione guidata prestazioni.

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

    L'attivazione della funzionalità dovrebbe essere molto più veloce una volta che è stata eliminata la chiamata al ciclo inattivo. Il Rapporto sulla profilatura dei campioni dovrebbe riflettere questa situazione.