Python Programlama

peki hata ayıklama kısmını derlemeden yapsak ve son ürünü derleyerek oluştursak nasıl olur ? Sizce ?

Konuyu biraz daha açabilir misiniz?

örneğin masaüstü bir client geliştiriyorum tkinter ve socket modüllerini kullanan basit bir uygulama son haline karar verdikten sonra bunu c olarak derleyip build edersem hız konusunda avantaj sağlar mı ? bana geliştirme aşamasında hata ayıklama işlemleri bittitken sonra

Bir durumdan bahsetmek istiyorum:

Örneğin bir hello.c dosyasının içinde şunlar yazıyor olsun:

#include <stdio.h>

int main(){
    printf("Hello World\n");
    return 0;
}

Bir tane de hello.py dosyası olsun:

print("Hello World")

Şimdi bu iki dosyayı da derlediğimiz zaman, aynı işlemi yapan iki tane dosya elde etmiş oluruz.

Gördüğünüz gibi hello.c dosyasındaki “Hello World” yazısını ekrana bastırmak için Python’da ihtiyaç duyulandan daha fazla kod yazılması gerekiyor.

Ancak cython ile daha az kodu olan hello.py dosyasını hello.c dosyasına dönüştürürsek, 2103 satırlık bir hello.c dosyası oluşuyor.

Her ne kadar aynı işi yapıyor da olsalar, bu iki c dosyasının aynı dosyalar olmadığı ortada.
Bu iki dosyadan hangisi daha kısa sürede çalışır , onu test etmek lazım.

1 Beğeni

benimde merak ettiğim oydu zaten biraz bile hız konusunda avantaj sağlıyorsa kullanılabilir gibi geldi bana

time komutuyla çalıştırılma zamanlarını ölçmeye çalıştım:

tanberk@kutlu:~/1$ time ./C
Hello World

real	0m0,002s
user	0m0,000s
sys	0m0,000s
tanberk@kutlu:~/1$ time ./Python
Hello World

real	0m0,047s
user	0m0,036s
sys	0m0,008s
tanberk@kutlu:~/1$ 

Yukarıdaki çıktılara göre hello.c dosyasından derlenen C isimli dosya, hello.py dosyasından derlenen Python isimli dosyadan çok daha kısa sürede çalışıyor.

Bu da hello.py’nin çalışma zamanı:

tanberk@kutlu:~$ time ./hello.py
Hello World

real	0m0,044s
user	0m0,036s
sys	0m0,004s
tanberk@kutlu:~$ 

Gördüğüm kadarıyla, hello.py dosyası C dosyasına dönüştürüldüğünde ve bu yeni dosya gcc ile derlendiğinde, derlenmiş dosya ile hello.py dosyası arasında pek bir çalışma zamanı farkı olmuyor.

1 Beğeni

Tabiki C ile yazilan daha performansli nedenide qayet basit simdi C ile Hello world yazan bir program yazarsak bunu derlersek ortaya kucuk boyutlu bir program cikiyor aynisini Python ile yaparsak ve .exe yapmak icin derleme isleminden gecirirsek o zaman print(“Hello world”) C-e nazaran cok buyuk boyutlari olacak tabiki buda performansi etgiliyor.Kisaca soyle ozetleleyim hani dil makinaya daha yakinsa onun performans daha iyi oluyor .Python yuksek seviyyeli bir dil C orta seviyyeli yani makinaya daha yakin…Siralamak gerekirse hangi programlama dilleri daha performansli o zaman ben soyle siralardim…1) Makina kodlari 2) Assambly 3) C ,Python sonlarda fakat bu python kotu dil anlamina gelmiyor pythonda hello world ekrana basdirmak icin 1 satrlik C-de en az 5 satirik Assambly dilindeyse daha cok satirlik kod yazmak gerekiyor yani python ile yapdigini Assambly dilinden yazmak istersen boss yere hamalik yapmis olursun …Python ile yapdigini C veya Assambly dilinde yapa bilirsin fakat cok zamanni harcar

Efrahim’in söylediklerine katılmakla birlikte şunları söylemek isterim. Bir dili başka bir dil ile kıyaslamak bence çok birşey ifade etmiyor. Her bir dilin yaygın olarak kullanıldığı alanlar var…

2 Beğeni

Evet bende onu belirtm mesele performans acisindan C-dende daha iyi Assambly ile program yazmaktir fakat bu dil suan mikroisemci kodlamlarda kullaniliyor normal masaustu programlarda hic kullanilmiyor neredeyse nedeni gerekde yok zaten Python Java C# gibi guclu kutuphaneler bulunduran diller varken 0-dann bu islemleri yapacak kodlari Assamblu ile yazmak akillica diyl her dilin kendi alani var .C gerekirse Assambly gibi diller performans gerekli yerlerde kullanilir bunlarda cogu zaman mikroislemci mikrodenetleyici driverlern yazilmasi gibi performans boyuutun az olmasi gerekdiyi yerler

1 Beğeni

Ubuntu 18.04’e geçtiken sonra Ubuntu 17.04’de yapılabilen bazı işlemler bu sürümde eskisi gibi yapılamıyor.

Örnek olarak bu başlıktaki şu mesajımda yazdıklarımı verebilirim. Daha önce o mesajda bahsedilen adımlardan olan

wine python.exe Scripts/pip.exe install pyinstaller

komutu pypiwin32’nin indirilememesi yüzünden çalışmıyor. pyinstaller’ı yüklemeye çalışırken pypiwin32’nin 223 sürümünü indirmeye kalkıyor, oysa bu sürüm Python3.4.4’ü desteklemiyor. Python3.4.4’ün desteklendiği sürüm pypiwin32 219 sürümü.

Dolayısıyla pyinstaller’ı yüklemeden önce:

wine python.exe Scripts/pip.exe install pypiwin32==219

komutunu çalıştırmak gerekiyor. Daha sonra pyinstaller’ı yükleyebilirsiniz.