Kısa bir süre önce proje seçeneklerinde "çalışma zamanı temalarını etkinleştir" değerini değiştirdim ve değerinin uygulamanın performanslarını etkileyip etkilemediğini ve durumda nasıl bir durumda olduğunu merak ediyorum. Birisi bana bu noktaya açıklık getirebilir umarım. "Çalışma zamanı temaları etkinleştir" aslında ne yapar "Çalışma zamanı temalarını etkinleştir", performansı etkiler mi?
cevap
tezahür girdiyi aşağıdaki yoluyla başvuruların Enable Visual Styling Windows anlatıyor
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
Ayrıca farklı yöntemlerle eski Delphi sürümlerinde etkin çalışma zamanı temaları olabilir. Delphi 7, "Çalışma zamanı temasını etkinleştir" ile aynı etkiye sahip TXPManifest
bileşenini içeriyordu.
Çalışma zamanı temalarının etkinleştirilmesi, uygulamanın GUI bölümü üzerinde etkilidir. Açıkçası, Win 95 stil butonu, boyama gradyanı, Win XP/Vista/Win7 düğmesinin yuvarlandığı, ancak @DavidHeffernan ve @TLama tarafından belirtildiği gibi daha fazla performans göstermelidir. Buradaki problemlerden biri de gerçek performansı ölçmektir çünkü birçok faktöre bağlı olabilir. Bu yüzden bazı performans profil sonuçları elde etseniz bile, sonuçlar çok çarpık olabilir. Buradaki asıl soru, tematik olmayan ve temalı uygulama (hangisinin daha hızlı olduğu fark edilmeksizin) arasındaki GUI performansındaki farkın sizin için bazı kaygılar taşımasıdır.
Bu bölümün yanıtı hayır olur. İlk olarak, olabilecek herhangi bir performans, kesinlikle GUI ile ilgilidir. İkinci olarak, statik Windows uygulaması GUI, herhangi bir 3D oyundan çok daha az talepkar, bilgisayarlarımız tam olarak çalışabiliyor. Ve görsel stil Windows XP ile tanıtıldığından ve bilgisayarların günümüzün modern donanım üzerinde çalışan uygulamalarında runtime temaları performansı hakkında oturtma stilleri (tüm sistem üzerinde kullanılmaktadır) bilgisayarlarda herhangi bir performans sorunu yaşamadığı için sadece zaman kaybıdır.
Temalı resim yapmanın daha sonra temalı olmadığı daha mantıklı. Birincisi optimize edildi ve ikincisi öyle değil. –
Tek bir uygulamanın temalar olmadan oluşturulmasının temalı bir ortamda performansının iyileştirilip yükseltilmeyeceğini söylemek zor. DWM, renderleme için donanım hızlandırmayı (DirectX aracılığıyla) kullanır, bu yüzden verimli olması gerekiyordu. Soru şu ki tematik olmayan bir uygulama oluşturmak için bu ortamın ne kadar zor olduğu. – TLama
@DavidHeffernan Evet, bunun başka bir yol olduğu makul. Temalarla başka bir düşünceniz var ve Aero teması kullanılırsa performansa etkisi olan Windows sınır saydamlığı. –
Uygulamamda performans üzerinde hiçbir etkisi yoktur. Uygulamanızın ne yaptığını bilmiyorum, bu yüzden sizin için önemli olup olmadığını tahmin etmek zor. Neredeyse kesinlikle önemli değil. Profil mi yaptın –
Performansı ölçüyor musunuz? Öyleyse, ayarı değiştirin, tekrar ölçün ve sonuçları almak için sonuçları karşılaştırın. Eğer değilseniz, o zaman bu sorunun cevabının nasıl olduğunu göremiyorum. –