WINFORM vs WPF Hız testi karşılaştırması

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,366
Excel Vers. ve Dili
Office 2013
Merhaba;
Çok önceleri yaptığım bir uygulamayı inceleyebilirsiniz. Ektede göreceğiniz üzere 100.000 kayıtlık bir Access mdb dosyamız var. Bu kayıtları aynı uygulama üzerinde hem WinForm hem de Wpf ile aldığımızdaki süreleri karşılaştırdım. Sonuca kendiniz bakabilirsiniz. Rar dosyasındaki exe ve mdb aynı dizinde olmalı test için... Aşağıdaki resimde de görünüyor gerçi her şey ;)

Winform Kod:

Kod:
        Dim connString As String = String.Format("Provider=Microsoft.Jet.OLEDB.4.0; Data Source={0};Jet OLEDB:Database Password={1};",
                                                                            "beab.mdb", "")

        Using connection As OleDbConnection = New OleDbConnection(connString)
            Dim command As OleDbCommand = New OleDbCommand("SELECT * FROM Tablo1")
            command.Connection = connection
            Dim dtst As New DataSet()

            Dim adpt As New OleDbDataAdapter()
            Try
                connection.Open()
                adpt.SelectCommand = command

                adpt.Fill(dtst, "Tablo1")

                ListBox1.DataSource = dtst.Tables("Tablo1")

                ListBox1.DisplayMember = "isim"
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
Wpf Kod:

Kod:
       Dim connString As String = String.Format("Provider=Microsoft.Jet.OLEDB.4.0; Data Source={0};Jet OLEDB:Database Password={1};",
                                                                           "beab.mdb", "")

        Using connection As OleDbConnection = New OleDbConnection(connString)
            Dim command As OleDbCommand = New OleDbCommand("SELECT * FROM Tablo1")
            command.Connection = connection
            Dim dtst As New DataSet()

            Dim adpt As New OleDbDataAdapter()
            Try
                connection.Open()
                adpt.SelectCommand = command

                adpt.Fill(dtst, "Tablo1")

                Listbox1.DataContext = dtst
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
        End Using
Wpf XAML:

Kod:
 <ListBox Margin="0,29,5,29" ItemsSource="{Binding Path=Tablo1}" Name="Listbox1">

            <ListBox.ItemTemplate>

                <DataTemplate>

                    <StackPanel>

                        <TextBlock Text="{Binding Path=isim}" FontSize="12" />

                    </StackPanel>

                </DataTemplate>

            </ListBox.ItemTemplate>

        </ListBox>
Adsız.png
 

Ekli dosyalar

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,226
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
Merhaba dostum. WPF, arka planda çaktırmadan virtual mode kullanıyor olmasın?
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,366
Excel Vers. ve Dili
Office 2013
Merhaba Zeki;

Valla çok uzun zamandır masaüstü uygulamalarıyla ilgilenmiyorum. Yakında bizim şu access eklentisi diye verdiğimiz eklentiyi vereceğiz tekrar. Tabii modifiye edilmiş olarak hem bu kez Excelden de veri alacak tüm sayfaları falan.. Bunu düzenlerken tekrar wpf ye bakmak zorunda kalınca aklıma geldi bu örnek ve sizler de vb.net falan ilgilendiğinizi görünce belki faydası olur diye ekledim. Wpf den uzak durmayın bence.. Xaml kodları da sizi uzaklaştırmasın..

Soruna gelince aşağıdaki linki incelemek faydalı olabilir..

https://docs.microsoft.com/en-us/dotnet/framework/wpf/advanced/optimizing-performance-controls
 
Üst