Java, Python ve Ruby Dillerinin Performans Karşılaştırması



Benzer belgeler
BLM-112 PROGRAMLAMA DİLLERİ II. Ders-7 Sıralama Algoritmaları

Yrd. Doç. Dr. Ümit ATİLA

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

Algoritma ve Akış Diyagramları

Bilişim Teknolojilerine Giriş

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

VERİ YAPILARI DERS NOTLARI BÖLÜM 1 GİRİŞ. Yard. Doç. Dr. Deniz KILINÇ

TEMEL BİLGİ TEKNOLOJİSİ KULLANIMI. Enformatik Bölümü

ESKİŞEHİR OSMANGAZİ ÜNİVERSİTESİ

YZM 2116 Veri Yapıları

Algoritmaların Karşılaştırılması. Doç. Dr. Aybars UĞUR

Yazılım Çeşitleri. Uygulama Yazılımları. İşletim Sistemleri. Donanım

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#3: ALGORİTMA ANALİZİ#2

Algoritma ve Akış Diyagramları

KONUMSAL VERİNİN ELDE EDİLMESİNDE MOBİL CBS OLANAKLARI: GELENEKSEL YÖNTEMLERLE KARŞILAŞTIRMA. Fatih DÖNER

WINDOWS 7. Eğitim ID 98 2/4 (Normal Seviye Kullanıcı) Konu ID Windows 7 Hakkında Genel Bilgi Ek Bilgi -

40. yıl INTEL CORE 2 DUO PC BİLGİSAYAR. Açıklama Intel Core 2 Duo 2.13 PC Bilgisayar (4 adet) Denklik/Onay

PARDUS ÖNYÜKLER. Fatih Semiz. Bilgisayar Mühendisliği Bölümü Lisansüstü Öğrencisi. Arda Güney

BİLGİSAYAR PROGRAMLAMA Araş. Gör. Ahmet ARDAHANLI. Kafkas Üniversitesi Mühendislik Fakültesi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

ENF 100 Temel Bilgi Teknolojileri Kullanımı Ders Notları 2. Hafta. Öğr. Gör. Dr. Barış Doğru

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#1: ALGORİTMA KAVRAMI

Bilgisayar Donanımı. Temel Birimler ve Çevre Birimler. Öğr.Gör.Günay TEMÜR / KAYNAŞLI MESLEK YÜKSEOKULU

DİSK DEPOLAMA ALANLARI

Tarih Saat Modül Adı Öğretim Üyesi. 01/05/2018 Salı 3 Bilgisayar Bilimlerine Giriş Doç. Dr. Hacer Karacan

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

BİLGİSAYAR KULLANMA KURSU

MODÜLLER: CARİ KASA BANKA ÇEK/SENET STOK SATIN ALMA SATIŞ HIZLI SATIŞ

YZM 2105 Nesneye Yönelik Programlama

Veri Yapıları. for(i=1;i<n;i++) { ekle=d[i]; for (k=i 1; k>=0 && ekle<=d[k] ;k ) D[k+1]=D[k]; /* Geriye kaydırılıyor*/

BİL 423 Bilgisayar Mimarisi 1. Ara Sınavı

Merkezi İşlem Birimi (CPU)

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

ALGORİTMA TASARIMI VE SCRATCH UYGULAMASI

C PROGRAMLAMA D İ L İ

PROGRAMLAMA TEMELLERİ

DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II

Kablosuz Algılayıcı Ağları İçin TinyOS İle Uygulama Geliştirme

MAKİNELERE IBM SPSS Statistics 24 nin KURULMASI. IBM SPSS Statistics 24 Yüklemeye Başlamadan Önce Kontrol Edilmesi Gerekenler

ALGORİTMA VE PROGRAMLAMA I

EM205 26/9/2014. Programlamaya giriş Algoritmalar. Amaçlar

Öğr. Gör. Serkan AKSU 1

Algoritma Geliştirme ve Veri Yapıları 1 Temel Algoritma Kavramları. Mustafa Kemal Üniversitesi

İşletim Sistemleri. Discovering Computers Living in a Digital World

Diziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU

DONANIM VE YAZILIM. Bilişim Teknolojileri ve Yazılım Dersi

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Alternatif ADET TAŞINABİLİR BİLGİSAYAR HP PAVİLİON 13-B101NT CORE İ5 4210U 1.7GHZ-8GB-750GB-13.3"-INTEL-W8.1 NOTEBOOK

Linux İşletim Sistemleri. Eren BAŞTÜRK.

YAZILIM VE PROGRAMLAMA DİLİ. Donanım ve yazılım nedir? Yazılım nedir? Yazılım çeşitleri nelerdir? Programlama dili nedir

Açık Kaynak Kodlu Yazılım

A BAYİİ YENİ BAYİLİKLERİMİZ BAYİLİKLERİMİZ. Sipariş Hattı:

Sayılar Teorisi SAYILAR TEORİSİ VE SAYILAR

İşletim Sisteminin Temel İşlemleri

Bilgisayar Yazılımları

Algoritma ve Programlama Tamamı Çözümlü Soru Bankası Editör Deniz Mertkan GEZGİN

BMB204. Veri Yapıları Ders 12. Dizgi Eşleme (String Matching) Algoritmaları İleri Veri Yapıları

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-3 İşaretçiler (Pointer) (Kısım-2)

İşletim Sistemleri; İÇERİK. Yazılım BİLGİ TEKNOLOJİLERİ VE UYGULAMALARI Yazılım Türleri

BİLGİ TEKNOLOJİSİNİN TEMEL KAVRAMLARI. 1-Bilgisayar, donanım ve yazılım kavramları 2-Bilgisayar çeşitleri 3-Bilgisayarlar arsındaki farklılıklar

Bilgisayar Mimarisi Nedir?

Önsöz. İçindekiler Algoritma Algoritma Nasıl Hazırlanır? Yazılımda Algoritma Mantığı Nedir? 1.2. Algoritma Örnekleri ve Sorular

5. HAFTA KBT104 BİLGİSAYAR DONANIMI. KBUZEM Karabük Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi

BİLGİSAYAR MİMARİSİ. Komut Seti Mimarisi. Özer Çelik Matematik-Bilgisayar Bölümü

Doğu Akdeniz Üniversitesi Bilgisayar ve Teknoloji Yüksek Okulu Bilgi teknolojileri ve Programcılığı Bölümü DERS 1 - BİLGİSAYAR VE ÇEVRE ÜNİTELERİ

İELEV EĞİTİM KURUMLARI BİLİŞİM TEKNOLOJİLERİ

Ünite-3 Bilgisayar Yazılımı.

Bilgisayar programlamanın üç temel mantık yapısından biridir. Diğer ikisi ise Seçilim(Selection) ve Döngü(Loop, Iteration)dür.

Programlama Nedir? Bir bilgisayar bilimcisi gibi düşünmek ve programlama ne demektir?

Bazı Gömülü Sistemlerde OpenCV ile Performans Analizi

ALGORİTMA ANALİZİ. Cumhuriyet Üniversitesi Bilgisayar Mühendisliği Bölümü

Dizi türündeki referanslar, dizi nesnelerine bağlanmaktadır. Dizi referansları tanımlamak bu dizinin hemen kullanılacağı anlamına gelmez...

KADİRLİ ŞEHİT ÖĞRETMEN ORHAN GÖK ANADOLU LİSESİ BİLGİ VE İLETİŞİM TEKNOLOJİLERİ DERSİ ÇALIŞMA SORULARI Boşluklara uygun olan kelimeleri yazınız.

VERİ YAPILARI DERS NOTLARI BÖLÜM 2 ALGORİTMA ANALİZİ. Yard. Doç. Dr. Deniz KILINÇ

Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf

Bilgisayarların Gelişimi

Bilgi ve iletişim teknolojileri

ALGORİTMA VE PROGRAMLAMA I

YMT219 VERİ YAPILARI ÖDEV-1

YZM 2116 Veri Yapıları

R ile Programlamaya Giriş ve Uygulamalar

VERİ YAPILARI VE PROGRAMLAMA

YZM 2116 Veri Yapıları

4. Bölüm Programlamaya Giriş

Millî Savunma Bakanlığında Pardus Kullanımı 1/32

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi

C) 19 inçlik CRT ile LCD monitörün görünebilir alanı farklıdır. D) Dijital sinyali, analog sinyale çevirmek için DAC kullanılır.

* * * BİLGİ TEKNOLOJİLERİNE GİRİŞ * * * ÜNİTE 1

Öğr.Gör. Mehmet Can HANAYLI

AutoCAD LT Bir bina veya kafes köprü üzerinde pencere gibi diziler arasında ilişkisel nesneler koyma

EĞİTİM ÖĞRETİM MÜNEVVER ÖZTÜRK ORTAOKULU II. DÖNEM BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ DERS NOTLARI

Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir.

Transkript:

Java, Python ve Ruby Dillerinin Performans Karşılaştırması Çanakkale Onsekiz Mart Üniversitesi Mustafa ŞAHİN Akademik Bilişim 2007 1

Dillerin seçim nedeni Java, Pyton ve Ruby Programlama dillerinin popülerliği her geçen gün artmaktadır. Nesneye yönelik program geliştirilebilir. Her üç dil de yorumlanarak çalıştırılır. Üç programlama dili de açık kaynaklıdır. Akademik Bilişim 2007 2

Performans Testleri Bu diller üzerinde daha öncede birçok performans testleri gerçekleştirilmiştir. Bu çalışmalarda programlama dillerinin eski sürümleri kullanılmıştır. Akademik Bilişim 2007 3

Gerçekleştirilen Testler Yapılan testlerde kullanılan uygulamalar aynı ihtiyaçlara cevap veren uygulamalardır. Testler her uygulama için 5 kez tekrarlanmıştır ve sonuç olarak ortalama değerler kullanılmıştır. Yapılan testler ile üç programlama dilinin Çalışma süreleri Bellek tüketimleri Yazılan kodun uzunluğu incelenmiştir. Akademik Bilişim 2007 4

1 2 3 4 5 6 7 8 9 10 11 Test uygulamalarının açıklamaları [0..3,000,000] aralığındaki sayıların ortalamasının hesaplanması. [2..50,000,000] aralığındaki asal sayıların hesaplanması. [1..100,000,000] aralığında çalışan boş döngü. 500x500 boyutlarında iki matrisin çarpımı. 10,000 elemanlı, eleman değerleri en kötü durumda olan dizinin Kabarcık Sıralama (Bubble Sort) algoritması ile sıralanması. Hanoi kuleleri probleminin 25 disk için öz yinelemeli çözümü. 100,000 elemanlı, eleman değerleri en kötü durumda olan dizinin Hızlı Sıralama (Quick Sort) algoritması ile sıralanması. 500,000 adet farklı dizginin listeye eklenmesi; eklenen ilk ve son elemanın liste içinde aranması. 500,000 adet farklı dizgi anahtarlarına sahip sayıların Eşleme (Map) veri yapısına eklenmesi; ilk ve son elemanın eşleme içinde aranması. 1,000,000 elemanlı, eleman değerleri en kötü durumda olan dizinin; dilin yerleşik sıralama algoritmaları kullanılarak sıralanması. [0..1,000,000] aralığındaki sayıların dosyaya yazılması. Akademik Bilişim 2007 5

Kullanılan Test Ortamı HP Compaq NX9005 serisi Notebook 30 GB Harddisk 1 GB RAM Mobile AMD Athlon XP2400+ işlemci Windows 2003, Debian 3.1 Linux İşletim Sistemi Java 6.0, Python 2.5, Ruby 1.8.5 Akademik Bilişim 2007 6

Test No 1 2 3 4 5 6 7 8 9 10 11 Çalışma Süreleri (sn) 1,165 61,183 6,636 71,014 13,370 39,193 1,318 0,964 1,252 0,498 2,720 Python 4,228 105,512 16,854 248,661 83,744 86,773 4,979 4,402 6,427 1,197 3,964 Ruby 0,056 8,354 0,182 8,288 78 0,369 0,054 2,191 3,221 2,189 0,846 Java Akademik Bilişim 2007 7

Çalışma Süreleri (%) 100% 80% 60% 40% 20% Java Ruby Python 0% 1 2 3 4 5 6 7 8 9 10 11 Testler Akademik Bilişim 2007 8

Test Uygulamalarının Bellek Tüketim Yüzdeleri Test No Python Ruby Java 1 2 20,4 20,3 6,5 3 0,3 4 1,3 0,5 2,1 5 1,3 0,3 6 0,3 7 0,4 8 2,3 3,4 5,6 9 3,5 4,4 7,1 10 8,3 1,0 4,5 11 0,3 Akademik Bilişim 2007 9

Test Uygulamalarının Bellek Tüketim Yüzdeleri 100% 90% 80% 70% 60% 50% 40% 30% 20% 10% 0% 1 2 3 4 5 6 7 8 9 10 11 Testler Java Ruby Python Akademik Bilişim 2007 10

Uygulamaların Satır Sayıları Satır Sayıları 60 50 40 30 20 10 Python Ruby Java 1 2 3 4 5 6 7 8 9 10 11 Testler Akademik Bilişim 2007 11

Uygulamalarda Kullanılan Karakter Sayıları Karakter Sayıları 1800 1600 1400 1200 1000 800 600 400 200 Python Ruby Java 1 2 3 4 5 6 7 8 9 10 11 Testler Akademik Bilişim 2007 12

Sonuçlar Ruby ve Python ile yazılan uygulamaların geliştirilme süreleri ve kod uzunlukları, Java ile yazılan uygulamaların geliştirme süresi ve kod uzunluğunun yarısıdır. Ruby programlama dili ile yazılan uygulamalar diğer programlama dillerine göre en kısa kod uzunluğuna sahiptir. Akademik Bilişim 2007 13

Sonuçlar Ruby en az bellek tüketen programlama dilidir. Python en çok bellek tüketen programlama dilidir. Akademik Bilişim 2007 14

Sonuçlar Java, Python programlama diline göre 7.5 kat daha hızlı, Ruby programlama diline göre 21 kat daha hızlı çalışmaktadır. Akademik Bilişim 2007 15

Sonuçlar Java programlama dili dizgi(string) işlemlerinde Python programlama diline göre yavaş çalışmaktadır. Python, Ruby programlama dilleri dizi işlemlerinde liste veri yapılarını kullandıkları için oldukça yavaştırlar. Akademik Bilişim 2007 16

Teşekkürler Oğuz YARIMTEPE ve Pınar YANARDAĞ a Python ve Ruby dillerinde test uygulamalarını geliştirmemde yardımlarından dolayı teşekkür ediyorum. Davut AKÇİÇEK ve Hande ŞEN e yardımlarından dolayı teşekkür ediyorum. Akademik Bilişim 2007 17

Java, Python ve Ruby Dillerinin Performans Karşılaştırması Çanakkale Onsekiz Mart Üniversitesi Mustafa ŞAHİN Akademik Bilişim 2007 18