İnsanlar neden Ruby'nin yavaş olduğunu söylüyor? [kapalı]


184

Ruby on Rails'i seviyorum ve tüm web geliştirme projelerim için kullanıyorum. Birkaç yıl önce, Rails'in bir bellek domuzluğu ve nasıl çok iyi ölçeklenmediği hakkında çok fazla konuşma yapıldı, ancak bu öneriler burada Gregg Pollack tarafından yattı .

Son zamanlarda, insanların Ruby'nin kendisinin yavaş olduğunu söylediğini duydum.

  • Ruby neden yavaş sayılır?

Ruby'yi yavaş bulmuyorum ama yine de basit CRUD uygulamaları ve şirket blogları yapmak için kullanıyorum. Ruby'nin yavaşladığını görmeden önce ne tür projeler yapmam gerekir? Yoksa bu yavaşlama tüm programlama dillerini etkileyen bir şey midir?

  • Bu "yavaşlık" ile uğraşmak istiyorsanız Ruby programcısı olarak seçenekleriniz nelerdir?

  • Ruby'nin hangi sürümü, hızın kritik olduğu ve trafiğin yoğun olduğu Stack Overflow gibi bir uygulamaya en uygun olur?

Sorular özneldir ve mimari kurulumun (EC2 ve bağımsız sunucular vb.) Büyük bir fark yarattığını fark ettim ama insanların Ruby'nin yavaş olduğu hakkında ne düşündüklerini duymak istiyorum.

Son olarak, Ruby 2.0 ile ilgili pek fazla haber bulamıyorum - anlıyorum, bundan birkaç yıl uzaktayız?


1
olası yinelenen Ne yavaş Ruby yapar?
Nakilon


harika cevaplar dışında hiçbiri NEDEN gerçekten cevap vermiyor. daha iyi içgörü ilgili soru Nakilon
Andre Figueiredo

Yanıtlar:


184

Ruby neden yavaş sayılır?

Çünkü Ruby ve diğer diller arasında tipik ölçütler kullanırsanız, Ruby kaybeder.

Ruby'yi yavaş bulmuyorum ama yine de basit CRUD uygulamaları ve şirket blogları yapmak için kullanıyorum. Ruby'nin yavaşladığını görmeden önce ne tür projeler yapmam gerekir? Yoksa bu yavaşlama tüm programlama dillerini etkileyen bir şey midir?

Ruby muhtemelen gerçek zamanlı dijital sinyal işleme uygulaması veya herhangi bir gerçek zamanlı kontrol sistemi yazarken size iyi hizmet etmeyecektir. Ruby (günümüz VM'leriyle birlikte) muhtemelen akıllı telefonlar gibi kaynak kısıtlı bir bilgisayarı boğabilirdi.

Web uygulamalarınızdaki işlemlerin çoğunun aslında C'de geliştirilen yazılımlar tarafından yapıldığını unutmayın. Örneğin Apache, Thin, Nginx, SQLite, MySQL, PostgreSQL, birçok ayrıştırma kütüphanesi, RMagick, TCP / IP, vb. Ruby tarafından kullanılan C programlarıdır. . Ruby tutkal ve iş mantığını sağlar.

Bu "yavaşlık" ile uğraşmak istiyorsanız Ruby programcısı olarak seçenekleriniz nelerdir?

Daha hızlı bir dile geçin. Ama bu bir maliyet taşıyor. Buna değer bir maliyettir. Ancak çoğu web uygulaması için, dil seçimi önemli bir faktör değildir, çünkü daha hızlı bir dili kullanarak yeterli trafik gerekçesi yoktur.

Ruby'nin hangi sürümü, hızın kritik olduğu ve trafiğin yoğun olduğu Stack Overflow gibi bir uygulamaya en uygun olur?

Diğer insanlar bunu yanıtladı - JRuby, IronRuby, REE, uygulamanızın Ruby bölümünü VM'leri karşılayabilecek platformlarda daha hızlı çalıştıracak. Yavaşlığa neden olan genellikle Ruby değil, ancak bilgisayar sistem mimariniz ve uygulama mimariniz olduğundan, veritabanı çoğaltma, birden çok uygulama sunucusu, ters proxy'lerle yük dengeleme, HTTP önbellekleme, memcache, Ajax, istemci tarafı önbellekleme, vb. Bunların hiçbiri Ruby değil.

Son olarak, Ruby 2.0 ile ilgili pek fazla haber bulamıyorum - anlıyorum, bundan birkaç yıl uzaktayız?

Çoğu kişi Ruby 1.9.1'i bekliyor. JRuby'de Ruby 1.9.1'de Rails 3.1'i bekliyorum.

Son olarak, birçok geliştiricinin Ruby'yi seçtiğini, çünkü programlamayı diğer dillere göre daha keyifli bir deneyim haline getirdiğinden ve Ruby with Rails ile yetenekli web geliştiricilerinin uygulamaları çok hızlı bir şekilde geliştirmesine olanak tanıdığından lütfen unutmayın.


3
Çok düşündükten sonra, bunun en iyi cevap olduğuna karar verdim. Teşekkürler, sinyal işleme uygulaması ile benzerliği seviyorum. Tüm bu yararlı cevaplardan sonra insanların ne hakkında konuştuklarını görmek daha kolay.
stephenmurdoch

1
Evet, yakut 2, Ruby 2.0.0'dan
Morgan

3
Ruby 2.1'i kullanma deneyimim, Ruby 2.0'da çalışan aynı uygulamadan yaklaşık% 25 daha hızlı olması
Matt Connolly

14
Diller yavaş veya hızlı değildir, uygulamaları, tercümanları ve derleyicileri şunlardır
:)

122

Her şeyden önce, neye göre daha yavaş ? C? Python? Diyelim bazı rakamları elde at Bilgisayar Dil Testleri Oyunu :

Ruby neden yavaş sayılır?

Kime sorduğunuza bağlı. Size söylenebilir:

  • Ruby yorumlanmış bir dildir ve yorumlanan diller derlenmiş olanlardan daha yavaş olma eğilimindedir
  • Ruby çöp toplama kullanır (yine de çöp toplama kullanan C #, yukarıdaki daha algoritmik, daha az bellek ayırma yoğun ölçütlerinde Ruby, Python, PHP vb. Önünde iki büyüklük sırası çıkar)
  • Ruby yöntem çağrıları yavaştır (ancak, ördek yazma nedeniyle, güçlü bir şekilde yazılmış yorumlanmış dillere göre tartışmasız daha hızlıdır)
  • Ruby (JRuby hariç) gerçek çoklu okuma özelliğini desteklemez
  • vb.

Ama sonra tekrar neye göre yavaş? Ruby 1.9, C (300x'e kadar daha hızlı olabilir) ile karşılaştırıldığında Python ve PHP (3x performans faktörü içinde) kadar hızlıdır; ) büyük ölçüde akademiktir.

Bu "yavaşlık" ile uğraşmak istiyorsanız Ruby programcısı olarak seçenekleriniz nelerdir?

Ölçeklenebilirlik için yazın ve daha fazla donanım atın (örn. Bellek)

Ruby'nin hangi sürümü, hızın kritik olduğu ve trafiğin yoğun olduğu Stack Overflow gibi bir uygulamaya en uygun olur?

Eh, NTE (kombine Yolcu ) çok iyi bir aday olabilir.


1
Çöp toplamanın kendisi yavaş değildir, ancak MRG'nin çöp toplanmasıdır. Daha hızlı Ruby'ye ihtiyacınız varsa, REE'nin yanı sıra JRuby'ye de bakabilirsiniz.
Andreas

1
@igouy, Doğru, 2008'in ortaları aşırı olabilir. Bağlantıları güncelledim, ancak birkaç ay içinde güncelliğini yitirecekler. :) Her iki durumda da, donanım ve bazı patchlevel'ler farklı olabilir ve birkaç ek test eklenmiştir, ancak şeylerin daha büyük resmi değişmemiştir.
vladr

11
>> aynı büyüklük sırasına göre << 7'ye yaşıyorsanız veya 69'a yaşıyorsanız aynı büyüklük sırasına göre değişir. Bu fark önemsiz mi?
igouy

10
@igouy, seni tanımıyorum, ama yaşamımı yürütme hızı açısından ölçen bir program değilim. Örneğin yürütme hızını önemsediğim yerde HTTP yanıtı oluşturma süresidir. 7ms ve 69ms oluşturma süresi arasındaki farkı fark etmeyeceğimi biliyorum (özellikle 130ms ağ gecikmesinin üstünde sürerken). 7ms ve 700ms arasındaki farkı fark edeceğimi biliyorum ve 7ms ve 7s arasında KESİNLİKLE fark edeceğim - ama hayır, 7ms ve 69ms arasında değil.
vladr

3
@vladr, ya 70ms ya da 700ms? Farkı görebiliyor musunuz?
Paul Draper

60

Rails'in yaratıcısı David Heinemeier Hansson'ın söyledikleri:

Rails [Ruby] web uygulamaları Fast Enough büyük çoğunluğu içindir. Günde milyonlarca dinamik sayfa görüntüleme yapan sitelerimiz var. Yahoo veya Amazon ön sayfasıyla sonuçlanırsanız, HERHANGİ bir dilde hazır bir çerçevenin size çok iyi gelmesi olası değildir. Muhtemelen kendinizinkini yuvarlamanız gerekecektir. Ama eminim, ben de ücretsiz CPU döngüleri istiyorum. Ben sadece ücretsiz geliştirici döngüleri hakkında çok daha fazla önem veriyorum ve ikincisi için ikincisi ile ticaret yapmaya hazırım.

yani soruna daha fazla donanım veya makine atmak, daha fazla geliştirici kiralamaktan ve dili daha hızlı, ancak daha zor kullanmaktan daha ucuzdur. Sonuçta, birkaç kişi C'de web uygulamaları yazıyor.

Ruby 1.9 1.8 üzerinde büyük bir gelişme. Ruby 1.8 ile ilgili en büyük sorunlar yorumlanmış doğasıdır (bayt kodu yok, derleme yok) ve Ruby'deki en yaygın işlemlerden biri olan yöntem çağrıları özellikle yavaştır.

Hemen hemen her şeyin Ruby'de bir yöntem araması olmasına yardımcı olmaz - iki sayı ekleyerek bir dizini dizine ekler. Diğer dillerin korsanlıklara maruz kaldığı yerlerde (Python'un __add__yöntemi, Perl'in aşırı yük.pm) Ruby her durumda saf OO yapar ve derleyici / yorumlayıcı yeterince akıllı değilse performansa zarar verebilir.

Ruby'de popüler bir web uygulaması yazsaydım, odaklandığım önbellekleme olurdu. Bir sayfayı önbelleğe almak, kullandığınız dil ne olursa olsun, o sayfanın işlem süresini sıfıra indirir. Web uygulamaları için, veritabanı yükü ve diğer G / Ç dilin hızından çok daha önemli olmaya başlar, bu yüzden bunu optimize etmeye odaklanacağım.


7
"Sonuçta, çok az kişi C'de web uygulamaları yazıyor." - Elbette hayır, ancak performans açısından kritik birçok web sitesi örneğin Scala'ya taşındı.
Dario

6
'Daha fazla donanım fırlatmanın' daha ucuz olduğuna katılmıyorum. Müşterileri, platformları geliştiriciler için tasarlandığından, her X ayda bir barındırmak için daha fazla para ödemeleri gerektiğine ikna etmek zordur.
Kevin

9
@Keven: elbette geliştirme maliyetleri azalır mı? Aksi halde Ruby'yi ilk başta kullanmanın anlamı ne olurdu?
rjh

4
@Kevin Bu ifade biraz geniş. Her% 10 trafik artışı için yeni bir sunucu kurmanız gerekiyorsa, günde yaklaşık 100 ziyaretle müşterinin açıkça şikayet etme hakkı olacaktır. Gerçekçi olmakla birlikte, genellikle eski donanımın artık başa çıkamadan önce başlamak için çok daha fazla trafiğe sahip olmanız ve bunu bir büyüklükte artırmanız gerekir. Bu noktada konu "sahip olmak için iyi bir sorun" alanına girer ve hiç kimse donanım yükseltme konusunda şikayetçi olmazdı. Ayrıca, hiçbir "müşteri" bu tür şeylerin farkında olmadan böyle yüksek trafikli bir web sitesi çalıştırmaz.
deceze

5
@Kevin - bunu tersine çevirelim. "Müşterileri yeni bir özellik için 3 ay beklemeleri gerektiğine ikna etmek zor, çünkü platformları bilgisayarlar düşünülerek tasarlandı." Bu yeni özellik geliri büyük ölçüde artıracaksa, ekstra donanım için ödeme yapar. Ayrıca, başlangıçtan hızlı bir dil seçmek, birçok uygulama için erken bir optimizasyondur. Şansınız, darboğazınızın başka bir yerde olması olacak: veritabanı okumaları, ağ gecikmesi, vb.
Nathan Long

34

Kod yazma yavaş. Okuma kodu yavaş. Hataları bulmak ve düzeltmek yavaştır. Özellik ve geliştirme eklemek yavaş. Bir öncekinde düzelen her şey bir kazanç. Çok nadiren yürütme performansı bir sorundur.


30
@GregS: yürütme performansı kullanılabilirliği etkiliyorsa her zaman bir sorundur. Doğru, bir xml dosyasını bir saniye veya üçte bir dize için taramak saf sayılar açısından önemli değildir, ancak birkaç saniye fark, kullanıcılara yönelik bir uygulamadan bahsederken kullanılabilirlikte büyük bir fark yaratabilir.
Bryan Oakley

5
@Ajax: Hayır, bahse girerim kazanan kişiliğinizdir.
Başkan James K. Polk

15
Şimdiye kadar kaydım bir şirketin bir günlük işte 30.000 $ / yıl tasarruf etmesini sağlıyor. Mühendisleri, bir bulut bilgi işlem algoritmasının her yinelemede yapılan görev sayısını saymasının daha fazla okunabilir olduğuna karar vererek n'ye neden oldu! 20.000'den fazla iş ile iş sorguları. 1 iş öğesinin bırakılıp bırakılmadığını kontrol etmek için bunu n sorguya bıraktı ve faturayı günde 130 $ 'dan 20 $ / gün' e düşürdü. Tembel kodlayıcılar bana para kazandırıyor. Lütfen daha tembel kodlayıcıları teşvik edin.
Ajax

10
Şu anda yorum yapmak komik ... Büyük bir Amerikan bankası sisteme kadar multi milyon dolarlık bir sözleşme imzalamayı reddettiği için on beş geliştiriciyi özelliklerden ve performansa çekmek zorunda kaldığımız başka bir şirkete geçtim. yüklerini kaldırabilir. Sahip olduğumuz özellikleri seviyorlar, sadece performanslarını değil. Performansı yeterince uzun süre göz ardı ederseniz, hangi özelliklere sahip olduğunuz önemli değildir, çünkü alışılmadık derecede yavaş olacaktır .
Ajax

4
Yürütme performansı her zaman bir konudur, ne kadar konuştuğumuzdan bahsediyoruz. Kullanıcılar pilinizi öldürdüğü için uygulamanızı satın almayı bırakmadan önce bir cep telefonunda ne kadar yorumlanmış kod çalıştırabilirsiniz? Bir kullanıcı sizi reklam gelirinden mahrum eden reklamı kapatmadan önce sayfanızın yüklenmesini ne kadar bekleyecek? Bu tür soruları ve yürütme performansının ne kadar önemli olduğunu cevaplayın.
Sqeaky

15

Cevap basit: insanlar çünkü yakut yavaş olduğunu söylemek olduğunu yavaş diğer dillere ölçülen karşılaştırmalar dayalı. Ancak, "yavaş" göreceli olduğunu unutmayın. Genellikle yakut ve diğer "yavaş" diller yeterince hızlıdır.


evet, ben de öyle düşünüyordum, demek istediğim, insanlar bunun yavaş olduğunu söylüyorlar, ama yine de gereksinimlerim için çabuk darn ...
stephenmurdoch

11
>> hala benim gereksinimleri için çabuk darn << hızlı olması gerekmez her şey için yeterince hızlı :-)
igouy

Ben kısmen bu konuda taraflı, belki cox bu eski bir yorum. şimdi yakut 2.3 var ve yakut 2.2 deneyim, raylar yığını ağır bulundu. eğer daha hızlı bir çerçeveye ihtiyaç duyarlarsa, pidrano'yu deneyin, sinatra temelli ve raylar komutuna mümkün olduğunca yakın, ama çok daha hafif yapmaya çalıştılar. ancak henüz 1.0 sürümüne ulaşmadılar, yine de daha fazlası gelecek, ancak testimden sonra güzel ve hızlı çalışıyor. Aktif kayıt 5 ve raylardan ödünç alınmış pidrano dişlileri ile çalışıyorum. 200 eşzamanlı bağlantı ile, sprockets varlıklarla db sorgusu olmadan 1.5s yanıt alıyorum
James Tan

5

Joel on Software - Ruby Performance Revisited bunu oldukça iyi açıklıyor. Gerçi modası geçmiş olabilir ...

Ruby on Rails'e alışkın olduğunuza bağlı kalmanızı tavsiye ederim,
eğer bir performans sorunuyla karşılaşırsanız farklı bir dil ve çerçeve kullanmayı yeniden düşünebilirsiniz.

Bu durumda gerçekten ASP.NET MVC 2 ile C # öneririz , CRUD uygulamaları için çok iyi çalışıyor.


Bağlantı için teşekkürler, her zaman Joel'in bir şeyleri okumasını okumayı severim. DHH'nin "tampon sticker sloganı" hakkında yaptığı ilginç açıklama ...
stephenmurdoch

Alıntı: " Bu herkes için geçerli değildir, ancak insanlar Ruby ile performans sorunları yaşadıklarını veya sadece Ruby dil motorunun çalıştırabileceğinden daha hızlı kod çalıştırmaları gerektiğini söylediklerinde, Ruby, geliştirici döngüleri ve CPU döngüleri hakkında ilahiler söylemeyi savunuyor .
Marc.2377

3

Ruby'nin yavaş olduğunu söyleyebilirim çünkü tercümanı daha hızlı hale getirmek için fazla çaba harcanmadı. Aynı şey Python için de geçerlidir. Smalltalk, Ruby veya Python kadar dinamiktir, ancak büyüklükle daha iyi performans gösterir, bkz. Http://benchmarksgame.alioth.debian.org . Smalltalk, aşağı yukarı Java ve C # ile değiştirildiğinden (en az 10 yıl önce) bunun için daha fazla performans optimizasyonu çalışması yapılmadı ve Smalltalk, Ruby ve Python'dan hala daha hızlı. Xerox Parc ve OTI / IBM'deki insanlar Smalltalk'ı daha hızlı hale getirmek için çalışanlara ödeme yapacak paraya sahipti. Anlamadığım şey, Google'ın neden büyük bir Python mağazası olduğu için Python'u daha hızlı hale getirmek için para harcamaması. Bunun yerine Go gibi dillerin geliştirilmesine para harcıyorlar ...


Sanırım bunun nedeni Python'un zaten yeri var ve günümüzde yoğun bir şekilde kullanılıyor. Yüksek performansa ihtiyacınız varsa kullanabileceğiniz veya örebileceğiniz birçok kitaplık ve kullanabileceğiniz diğer şeyler vardır.
Zelphir Kaltstahl

Okuduğum kadarıyla Ruby 2.5'te zaten iyi sonuçlar verdi.
Marc.2377

2

Her şeyden önce, başkalarının sevdiğiniz dil hakkında ne söylediğini önemsiyor musunuz? Yapması gereken işi yaptığında, iyisin.

OO, kodu yürütmenin en hızlı yolu değildir, ancak kodu oluşturmaya yardımcı olur. Akıllı kod her zaman aptal koddan ve işe yaramaz döngülerden daha hızlıdır. Ben bir DBA ve bu işe yaramaz döngüler bir sürü görmek, onları bırakın, daha iyi kod ve sorguları kullanın ve uygulama daha hızlı, çok daha hızlı. Son mikrosaniye umurunda mısınız? Hız için optimize edilmiş dilleriniz olabilir, diğerleri sadece yapmak zorunda oldukları işi yapar ve birçok farklı programcı tarafından idare edilebilir.

Hepsi sadece bir seçim.


2

Açıkçası, hız hakkında konuşmak Ruby kaybeder. Kıyaslama testleri Ruby'nin PHP'den çok daha yavaş olmadığını gösteriyor. Ancak bunun karşılığında, çeşitli dillerde tüm çerçevelerden en iyisi olan bakımı kolay DRY kodu elde edersiniz.

Küçük bir proje için, kodda karmaşık hesaplamalar kullanılmadığı, sadece ana akım şeyler olduğu göz önüne alındığında, herhangi bir yavaşlama hissetmeyeceksiniz (yani <50K kullanıcılarına kadar).

Daha büyük bir proje için, kaynakların ödenmesi işe yarar ve geliştirici ücretlerinden daha ucuzdur. Buna ek olarak, RoR üzerine kod yazmak diğerlerinden daha hızlıdır.

2014 yılında bahsettiğiniz hız farkı, çoğu web sitesi için önemsizdir.


2

Ruby'nin Web uygulamasındaki performansıyla baş etmenin yolu diğer programlama dilleriyle aynıdır:

MİMARİ

Bu, Rails'te diğer Web Çerçevelerinin çoğundan daha kolaydır.

Uygulama düzeyinde , önbelleğe alınması gerekenleri önbelleğe alarak ve DB'ye erişimi akıllı bir şekilde yöneterek (darboğaz genellikle çoğu WEB uygulaması için "DB" erişiminde olduğundan).

Rails bu sorunları çözmeyi çok kolay ve doğal hale getirir. Verileri, sayfaları ve parçaları önbelleğe almak için birkaç soyutlama vardır ve ayrıca SQL parçasıyla optimize edilmiş ve tekrar kullanılabilir bir şekilde ( Aktif Kayıt ve AREL ) ilgilenmek için çok güzel soyutlamalar vardır .

Bu yüzden daha hızlı ve çok etkileyici olmayan dillerde (php gibi) yazılmış birçok uygulamanın Ruby meslektaşlarından daha yavaş olmasının nedeni budur. Bu dillerle önbellekleme ve sorgulama yapmak için Ruby ile olduğundan çok kolay ve zarif değil.

Altyapı düzeyinde , yük dengelemesini ve hakkında çok şey bilmediğim tüm şeyleri düşünmek mantıklıdır. Heroku veya Engine Yard gibi bir hizmet sağlayıcı olarak bazı platformlar kiralayarak bu sorunu dış kaynaklardan sağlarım . Neyse. Yük dengelemeli rayların yerleştirilmesi muhtemelen çok zor değildir.


1

Ruby, kolayca ölçülebilir bir dizi görevde C ++ 'dan daha yavaştır (örneğin, kayan noktaya büyük ölçüde bağımlı olan kod yapmak). Bu çok şaşırtıcı değil, ancak bazı insanların niteliksiz “Ruby Yavaş” olduğunu söylemesi için yeterli gerekçe. Ruby kodunu yazmanın C ++ 'dan daha kolay ve güvenli olduğu gerçeğini saymıyorlar.

En iyi düzeltme Ruby kodunuzda başka bir dilde (örn. C, C ++, Fortran) yazılmış hedeflenmiş modüller kullanmaktır. Bunlar ağır kaldırma yapabilir ve senaryolarınız daha üst düzey koordinasyon konularına odaklanabilir.


Karşılaştırmalar genellikle C ++ yerine Java, C #, Python, belki Perl ile yapılır.
rjh

5
Elbette. Ancak (Tcl geliştiricisi olarak) insanların sizi her zaman haksız şekilde diğer dillerle karşılaştıracağından emin olabilirim. Çözüm, birlikte diktiğiniz bileşenler için bu diğer dilleri kullanmaktır; hepsini tek bir dilde yapmak, tüm görevler için tek bir araç kullanmak gibidir. Eğer sahip olduğunuz tek şey bir çekiçse, her şey bir başparmak gibi görünür.
Donal Fellows

gerektiğinde yabancı dil modüllerini kullanma hakkında güzel fikir
stephenmurdoch

>> niteliksiz “Ruby Yavaş” demek için << Birkaç yıl önce Tcl programlarından daha yavaş olan Ruby programlarını göstermeye devam etmiş olabilirler :-)
igouy

1
Lies, Damned Lies ve Benchmarks hakkında ne söylediklerini biliyorsunuz. ;-)
Donal Fellows

0

Performans neredeyse her zaman iyi tasarım ve optimize edilmiş veritabanı etkileşimleri ile ilgilidir. Ruby, çoğu web sitesinin oldukça hızlı, özellikle de daha yeni sürümlere ihtiyaç duyduğu şeyi yapar; ve geliştirme ve bakım kolaylığı hızı, maliyetlerde ve müşterileri mutlu etmede büyük bir kazanç sağlar. JAVA'nın bazı görevler için yavaş yürütme performansına sahip olduğunu ve JAVA'da geliştirmenin zorluğu göz önüne alındığında, birçok geliştirici, kıyaslamalarda gösterildiği gibi teorik hız kapasitesinden bağımsız olarak yavaş uygulamalar oluşturuyor (karşılaştırmalar genellikle belirli ve dar bir yetenek göstermek için tasarlanmıştır). Veritabanımın yeteneklerine uygun olmayan yoğun işlemeye ihtiyaç duyduğumda, platforma bağlı olarak bu görevler için C veya Objective-C veya başka bir gerçekten yüksek performanslı derlenmiş dil seçiyorum. Veritabanlı bir web uygulaması oluşturmam gerekirse, Diğer gereksinimlere bağlı olarak RoR veya bazen C # ASP.NET kullanın; çünkü tüm platformların güçlü ve zayıf yanları vardır. Uygulamanızın yaptığı işlemlerin yürütme hızı önemlidir, ancak sonuçta, bir dilin dar bir yönünün yürütme performansı önemliyse; o zaman hala her şey için Assembler dilini kullanıyor olabilirim.



-5

Ruby, geliştirici verimliliği için iyi bir performans sergiliyor. Doğa tarafından Ruby, tür eksikliği nedeniyle test odaklı gelişimi zorlar. Ruby, C kütüphaneleri için yüksek seviyeli bir sargı olarak kullanıldığında iyi performans gösterir. Ruby ayrıca JVM veya Rbx VM aracılığıyla makine koduna JIT derlendiğinde uzun süre çalışan işlemler sırasında da iyi performans gösterir. Yakut saf yakut koduyla sayıları kısa sürede kırmak gerektiğinde iyi performans göstermez.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.