2013-10-21 16 views
5

'den daha yavaş çalışıyor x86'dan AnyCPU'ya bazı NUnit test projelerini değiştirdim ve bunları nunit-console yerine nunit-console.exe kullanarak 64 bitlik çalışma zamanında çalıştırmaya başladım -x86.exe. Bu benim büyük sürprizime% 50-100 daha uzun test süresiyle sonuçlandı. Test takımlarının herhangi birinde tekrar tekrar kolayca simüle edebilirim ve hatta test işlemlerini belirleyebilirim, ancak performans cezasına neyin neden olduğunu anlayamıyorum çünkü sadece her şey 64 bitte daha yavaş performans gösteriyor. Aynı sonuçları birkaç farklı makinede de test etmeye çalıştım.Oracle ODP.NET Yönetilen Sürücü 64bit'de 64bit'de 32bit

Test derlemeleri, tümleştirme testlerini gerçekleştirmek için Spring.NET IOC ve Oracle ODP tarafından yönetilen sağlayıcıyı (x86'dan AnyCPU'ya anahtarlama testlerinin arkasındaki nedendir) kullanıyor. Test çalışmalarındaki tek fark, sırasıyla 32 bit 64bit ortam veya rahibe yürütülebilir (nunit-console-x86.exe vs nunit-console.exe).

Böyle büyük bir test süresi farkı için genel bir sebep var mı? Ya da herhangi birinin fikrinin sebebini bulmak için neleri kontrol etmem gerektiğini düşündüğü bir fikri var mı?


Takip: Oracle ODP.NET Sürücü bu Ağustos (sürüm 121010 veya 4.121.1.0) yayımlanan Yönetilen tarafından

sorun neden olur. Görünüşe göre many performance issues ve bunlardan biri 64bit performans cezası. Şimdi

 var sw = Stopwatch.StartNew(); 
     using (var conn = new OracleConnection(ConnectionString)) 
     { 
      conn.Open(); 

      for (var i = 0; i < 100; i++) 
      { 
       using (var cmd = conn.CreateCommand()) 
       { 
        cmd.CommandText = "select sysdate from dual"; 
        var result = Convert.ToDateTime(cmd.ExecuteScalar()); 
       } 
      } 
     } 

     Console.Out.WriteLine(sw.Elapsed); 

herhangi hüner Oracle ODP.NET dışına kabul edilebilir performans elde etmek nasıl olduğu sürücüyü Yönetilen veya öyle: Ben 64bit altında çalışırken 32bit ortamında ve 1.5s etrafında kodunu aşağıdaki çalıştırırken 0.6s etrafında süresini var Oracle henüz "nihai" sürüm olduğunu iddia etse de henüz üretime hazır değil mi? Yerel ODP.NET sağlayıcısına geri dönme dışında başka seçeneğim var mı?

+0

Test ettiğiniz testler ve projeler 64 bit olarak yapılandırıldı mı? – Kjartan

+0

Tüm projeler AnyCPU. – Buthrakaur

+0

Basit bir açıklama, sınamakta olduğunuz kodun çok daha yavaş olmasıdır. Bize neden daha yavaş olduğunu soramazsın, neye benzediğini bilmiyoruz. Bir * profiler * sormanız gerekir. –

cevap

0

Basit yanıt, her iki kutu için ETW izlerini elde etmeli ve wpa/PerfView gibi araçları kullanarak bunları analiz etmelidir.