Makale numarası: 306979 - Son Gözden Geçirme: 11 Aralık 2006 Pazartesi - Gözden geçirme: 1.4

Visual C#, sınıflar ve nesneler oluşturma

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.

Bu Sayfada

Hepsini aç | Hepsini kapa

Özet

Bu adım adım makalede, zaman uygulama kodu QueryPerformanceCounter işlevine kullanmayı açıklamaktadır.

Performans sorunları tanımlamak için kod sınarken, sistem sunmak için olan en yüksek çözünürlük süreölçer kullanmak istediğiniz.

Not: JScript .NET, Microsoft Windows API işlevi çağrılamıyor.

Oluşturun ve sonra da bir tanıtım uygulama Çalıştır

  1. Visual Studio .NET veya Visual Studio 2005'i başlatın ve yeni bir Visual C# konsol uygulaması oluşturun.
  2. Varsayılan kod, hangi işlemler halinde 100 kez aşağıdaki kodla değiştirin:
    using System;
    using System.Runtime.InteropServices;
    
    namespace csConPerfCounter
    {
    	class Class1
    	{
    		[DllImport("kernel32.dll")]
    		extern static short QueryPerformanceCounter(ref long x);
    		[DllImport("kernel32.dll")]
    		extern static short QueryPerformanceFrequency(ref long x);
    
    		static void Main(string[] args)
    		{
    			long ctr1 = 0, ctr2 = 0, freq = 0;
    			int acc = 0, i = 0;
    			if (QueryPerformanceCounter(ref ctr1)!=0)	// Begin timing.
    			{
    				for (i=0; i<100; i++) acc++;		// Code being timed.
    				QueryPerformanceCounter(ref ctr2);	// Finish timing.
    				Console.WriteLine("Start Value: " + ctr1);
    				Console.WriteLine("End Value: " + ctr2);
    				QueryPerformanceFrequency(ref freq);
    				Console.WriteLine("QueryPerformanceCounter minimum resolution: 1/" + freq + " seconds.");
    				Console.WriteLine("100 Increment time: " + (ctr2 - ctr1) * 1.0 / freq + " seconds.");
    			}
    			else
    			   Console.WriteLine("High-resolution counter not supported.");
    
    			// Make the console window wait.
    
    			Console.WriteLine();
    			Console.Write("Press Enter to finish ... ");
    			Console.Read();
    		}
    	}
    }
    					
  3. Uygulama kaydetmek ve derlemek ve bu uygulamayı çalıştırmak için F5 tuşuna basın. Konsol pencereleri, aşağıdakine benzer bir çıktı görüntülenmelidir:
    Start Value: 281060816204
    End Value: 281060816269
    QueryPerformanceCounter minimum resolution: 1/3579545 seconds.
    100 Increment time: 1.81587324646009E-05 seconds.
    
    Press Enter to finish ...
    					
  4. Uygulama çalışmıyor ve konsol penceresi kapatmak için ENTER'E basın.

SORUN GİDERME

  • Bu API çağrısı, bazı durumlarda başarısız olabilir. Dönüş değeri denetleyin ve geçerli sonuçları aldığınızdan emin olmak için posta kodunuzu ayarlayın.
  • En iyi sonuçları elde etmek için birden çok kez ile diğer uygulamalara veya sunucu işlemlerini çalıştıran uygulama sınayın. Başka bir iş parçacığı ve işlemlerin aktiviteleri hedef uygulamada sistem geçirdiği zaman yüzdesini etkileyebilir.

Referanslar

Daha fazla bilgi için "QueryPerformanceCounter" ve "QueryPerformanceFrequency" çevrimiçi Yardımı'nda arayın.

"TimeGetTime için", "GetTickCount" diğer zamanlayıcıları hakkında daha fazla bilgi için arama ve çevrimiçi Yardım'da "System.DateTime sınıfı".


Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual C# 2005
  • Microsoft Visual C# .NET 2002 Standard Edition
Anahtar Kelimeler: 
kbmt kbhowtomaster kbperformance KB306979 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:306979  (http://support.microsoft.com/kb/306979/en-us/ )