Mengapa orang mengatakan bahwa Ruby lambat? [Tutup]

184

Saya suka Ruby on Rails dan saya menggunakannya untuk semua proyek pengembangan web saya. Beberapa tahun yang lalu ada banyak pembicaraan tentang Rails sebagai ingatan babi dan tentang bagaimana itu tidak skala dengan baik tetapi saran-saran ini dimasukkan ke tempat tidur oleh Gregg Pollack di sini .

Namun belakangan, saya telah mendengar orang mengatakan bahwa Ruby itu sendiri lambat.

  • Mengapa Ruby dianggap lambat?

Saya tidak menemukan Ruby lambat tapi sekali lagi, saya hanya menggunakannya untuk membuat aplikasi CRUD sederhana dan blog perusahaan. Proyek seperti apa yang harus saya lakukan sebelum saya menemukan Ruby menjadi lambat? Atau apakah kelambatan ini hanya sesuatu yang mempengaruhi semua bahasa pemrograman?

  • Apa pilihan Anda sebagai programmer Ruby jika Anda ingin berurusan dengan "kelambatan" ini?

  • Versi Ruby manakah yang paling cocok untuk aplikasi seperti Stack Overflow di mana kecepatan sangat penting dan lalu lintas sangat intens?

Pertanyaannya subyektif, dan saya menyadari bahwa pengaturan arsitektur (EC2 vs server mandiri dll) membuat perbedaan besar tetapi saya ingin mendengar pendapat orang tentang Ruby yang lambat.

Akhirnya, saya tidak dapat menemukan banyak berita di Ruby 2.0 - saya kira kita masih jauh dari itu?

stephenmurdoch
sumber
1
kemungkinan duplikat dari Apa yang membuat Ruby lambat?
Nakilon
youtube.com/… Ruby2.1
Nithin
selain dari jawaban yang bagus, tidak satupun dari mereka yang menjawab MENGAPA. wawasan yang lebih baik ada dalam pertanyaan terkait yang disebutkan oleh Nakilon
Andre Figueiredo

Jawaban:

184

Mengapa Ruby dianggap lambat?

Karena jika Anda menjalankan tolok ukur khas antara Ruby dan bahasa lain, Ruby akan kalah.

Saya tidak menemukan Ruby lambat tapi sekali lagi, saya hanya menggunakannya untuk membuat aplikasi CRUD sederhana dan blog perusahaan. Proyek seperti apa yang harus saya lakukan sebelum saya menemukan Ruby menjadi lambat? Atau apakah kelambatan ini hanya sesuatu yang mempengaruhi semua bahasa pemrograman?

Ruby mungkin tidak akan membantu Anda dengan baik dalam menulis aplikasi pemrosesan sinyal digital waktu-nyata, atau sistem kontrol waktu-nyata apa pun. Ruby (dengan VM hari ini) mungkin akan tercekik pada komputer yang terbatas sumber daya seperti smartphone.

Ingat bahwa banyak pemrosesan pada aplikasi web Anda sebenarnya dilakukan oleh perangkat lunak yang dikembangkan dalam C. mis. Apache, Thin, Nginx, SQLite, MySQL, PostgreSQL, banyak parsing libraries, RMagick, TCP / IP, dll adalah program C yang digunakan oleh Ruby . Ruby menyediakan lem dan logika bisnis.

Apa pilihan Anda sebagai programmer Ruby jika Anda ingin berurusan dengan "kelambatan" ini?

Beralih ke bahasa yang lebih cepat. Tapi itu butuh biaya. Ini adalah biaya yang mungkin sepadan. Tetapi untuk sebagian besar aplikasi web, pilihan bahasa bukan merupakan faktor yang relevan karena tidak ada lalu lintas yang cukup membenarkan menggunakan bahasa yang lebih cepat yang membutuhkan biaya lebih banyak untuk dikembangkan.

Versi Ruby manakah yang paling cocok untuk aplikasi seperti Stack Overflow di mana kecepatan sangat penting dan lalu lintas sangat intens?

Orang lain telah menjawab ini - JRuby, IronRuby, REE akan membuat Ruby bagian dari aplikasi Anda berjalan lebih cepat pada platform yang mampu membayar para VM. Dan karena seringkali bukan Ruby yang menyebabkan kelambatan, tetapi arsitektur sistem komputer Anda dan arsitektur aplikasi, Anda dapat melakukan hal-hal seperti replikasi database, beberapa server aplikasi, loadbalancing dengan proxy terbalik, caching HTTP, memcache, Ajax, caching sisi klien, dll. Tak satu pun dari hal ini adalah Ruby.

Akhirnya, saya tidak dapat menemukan banyak berita di Ruby 2.0 - saya kira kita masih jauh dari itu?

Kebanyakan orang menunggu Ruby 1.9.1. Saya sendiri sedang menunggu Rails 3.1 di Ruby 1.9.1 di JRuby.

Akhirnya, harap diingat bahwa banyak pengembang memilih Ruby karena membuat pemrograman pengalaman yang lebih menyenangkan dibandingkan dengan bahasa lain, dan karena Ruby dengan Rails memungkinkan pengembang web yang terampil untuk mengembangkan aplikasi dengan sangat cepat.

Jay Godse
sumber
3
setelah banyak pertimbangan, saya telah memutuskan bahwa ini adalah jawaban terbaik. Terima kasih, saya suka analogi tentang aplikasi pemrosesan sinyal. Lebih mudah melihat apa yang dibicarakan orang sekarang setelah semua jawaban yang bermanfaat ini.
stephenmurdoch
1
Ya, Anda beberapa tahun lagi dari ruby ​​2, Ruby 2.0.0 Dirilis pada 24 Februari 2013
Morgan
3
Pengalaman saya menggunakan Ruby 2.1 adalah sekitar 25% lebih cepat dari aplikasi yang sama yang berjalan di Ruby 2.0
Matt Connolly
14
Bahasa tidak lambat atau cepat, implementasinya, juru bahasa, dan penyusunnya adalah
:)
122

Pertama-tama, lebih lambat sehubungan dengan apa ? C? Python? Mari kita dapatkan beberapa angka di Game Benchmarks Bahasa Komputer :

Mengapa Ruby dianggap lambat?

Tergantung pada siapa Anda bertanya. Anda dapat diberitahu bahwa:

  • Ruby adalah bahasa yang ditafsirkan dan bahasa yang ditafsirkan akan cenderung lebih lambat daripada yang dikompilasi
  • Ruby menggunakan pengumpulan sampah (meskipun C #, yang juga menggunakan pengumpulan sampah, keluar dua urutan besarnya di depan Ruby, Python, PHP dll. Dalam benchmark yang lebih algoritmik, kurang alokasi memori yang intensif di atas)
  • Panggilan metode Ruby lambat (meskipun, karena mengetik bebek, mereka bisa dibilang lebih cepat daripada dalam bahasa yang ditafsirkan sangat diketik)
  • Ruby (dengan pengecualian JRuby) tidak mendukung multithreading yang sebenarnya
  • dll.

Tapi, sekali lagi, lambat sehubungan dengan apa? Ruby 1.9 adalah secepat Python dan PHP (dalam faktor kinerja 3x) bila dibandingkan dengan C (yang bisa mencapai 300x lebih cepat), jadi hal di atas (dengan pengecualian pertimbangan threading, haruskah aplikasi Anda sangat bergantung pada aspek ini ) sebagian besar bersifat akademis.

Apa pilihan Anda sebagai programmer Ruby jika Anda ingin berurusan dengan "kelambatan" ini?

Menulis untuk skalabilitas dan melemparkan lebih banyak perangkat keras padanya (mis. Memori)

Versi Ruby manakah yang paling cocok untuk aplikasi seperti Stack Overflow di mana kecepatan sangat penting dan lalu lintas sangat intens?

Nah, REE (dikombinasikan dengan Penumpang ) akan menjadi kandidat yang sangat baik.

vladr
sumber
1
Pengumpulan sampah itu sendiri tidak selalu lambat, tetapi pengumpulan sampah MRI adalah. Jika Anda membutuhkan Ruby yang lebih cepat, Anda juga dapat melihat JRuby dan juga REE.
Andreas
1
@igouy, Benar, pertengahan 2008 mungkin ekstrem. Saya memperbarui tautan, tetapi pada gilirannya akan menjadi usang dalam beberapa bulan. :) Bagaimanapun juga, perangkat keras dan beberapa patchlevel mungkin berbeda, dan beberapa tes tambahan ditambahkan, tetapi gambaran yang lebih besar tentang hal-hal tidak berubah.
vladr
11
>> dalam urutan besarnya yang sama << Ada dalam urutan besarnya yang sama jika Anda hidup sampai 7 atau hidup sampai 69. Apakah perbedaannya tidak signifikan?
igouy
10
@igouy, saya tidak tahu tentang Anda, tapi saya bukan program untuk mengukur umur saya dalam hal kecepatan eksekusi. Di mana saya peduli tentang kecepatan eksekusi, misalnya, adalah waktu rendering respons HTTP. Saya tahu bahwa saya tidak akan melihat perbedaan antara waktu rendering 7ms dan 69ms (khususnya saat berkendara di atas latensi jaringan 130ms). Saya tahu bahwa saya akan melihat perbedaan antara 7ms dan 700ms, dan saya pasti akan melihat perbedaan antara 7ms dan 7s - tetapi tidak, tidak antara 7ms dan 69ms.
vladr
3
@vladr, bagaimana dengan 70ms atau 700ms? Bisakah Anda memperhatikan perbedaan itu?
Paul Draper
60

Inilah yang dikatakan pencipta Rails, David Heinemeier Hansson :

Rails [Ruby] adalah untuk sebagian besar aplikasi web Cukup Cepat. Kami mendapati situs melakukan jutaan tampilan halaman dinamis per hari. Jika Anda akhirnya berada di halaman depan Yahoo atau Amazon, kecil kemungkinan kerangka kerja off-the-shelfed dalam bahasa APA akan banyak membantu Anda. Anda mungkin harus menggulung sendiri. Tapi tentu saja, saya juga ingin siklus CPU gratis. Saya kebetulan lebih peduli tentang siklus pengembang gratis dan saya bersedia memperdagangkan yang pertama.

yaitu melemparkan lebih banyak perangkat keras atau mesin pada masalah lebih murah daripada mempekerjakan lebih banyak pengembang dan menggunakan bahasa yang lebih cepat, tetapi lebih sulit untuk dipertahankan. Bagaimanapun, sedikit orang yang menulis aplikasi web dalam bahasa C.

Ruby 1.9 adalah peningkatan besar di atas 1.8. Masalah terbesar dengan Ruby 1.8 adalah sifatnya yang ditafsirkan (tidak ada bytecode, tidak ada kompilasi) dan bahwa panggilan metode, salah satu operasi yang paling umum di Ruby, sangat lambat.

Itu tidak membantu bahwa hampir semuanya adalah metode pencarian di Ruby - menambahkan dua angka, mengindeks array. Di mana bahasa lain mengekspos hacks ( __add__metode Python , overload.pm Perl) Ruby melakukan OO murni dalam semua kasus, dan ini dapat merusak kinerja jika kompiler / juru bahasa tidak cukup pintar.

Jika saya sedang menulis aplikasi web populer di Ruby, fokus saya akan pada caching. Caching halaman mengurangi waktu pemrosesan untuk halaman tersebut menjadi nol, bahasa apa pun yang Anda gunakan. Untuk aplikasi web, overhead database dan I / O lainnya mulai lebih penting daripada kecepatan bahasa, jadi saya akan fokus pada pengoptimalan itu.

rjh
sumber
7
"Lagi pula, sedikit orang yang menulis aplikasi web dalam C." - Tentu saja tidak, tetapi banyak situs web yang kritis terhadap kinerja dipindahkan misalnya ke Scala.
Dario
6
Saya tidak setuju dengan 'melemparkan lebih banyak perangkat keras padanya' lebih murah. Sulit meyakinkan pelanggan bahwa mereka harus membayar lebih banyak untuk hosting setiap X bulan karena platform mereka dirancang untuk pengembang.
Kevin
9
@Keven: tentunya biaya pengembangan akan berkurang? Kalau tidak, apa gunanya menggunakan Ruby?
rjh
4
@Kevin Pernyataan itu agak luas. Jika Anda perlu menyiapkan server baru untuk setiap peningkatan lalu lintas 10% atau lebih dengan sekitar 100 kunjungan per hari, pelanggan jelas memiliki hak untuk mengeluh. Namun secara realistis, Anda biasanya perlu memiliki lebih banyak lalu lintas untuk memulai dan meningkatkannya dengan urutan besarnya, sebelum perangkat keras lama tidak dapat mengatasinya lagi. Pada saat itu topik bergerak ke wilayah "masalah yang baik untuk dimiliki" dan hampir tidak ada orang yang mengeluh tentang peningkatan perangkat keras. Juga, tidak ada "pelanggan" yang menjalankan situs web dengan lalu lintas tinggi seperti itu tanpa mengetahui hal-hal semacam ini.
tipuan
5
@Kevin - mari balikkan itu. "Sulit meyakinkan pelanggan bahwa mereka harus menunggu 3 bulan untuk fitur baru karena platform mereka dirancang dengan mempertimbangkan komputer." Jika fitur baru itu secara drastis akan meningkatkan pendapatan, itu akan membayar perangkat keras tambahan. Selain itu, memilih bahasa yang cepat sejak awal, bagi banyak aplikasi, merupakan pengoptimalan prematur. Kemungkinannya adalah kemacetan Anda akan berada di tempat lain: basis data dibaca, latensi jaringan, dll.
Nathan Long
34

Menulis kode lambat. Membaca kode lambat. Menemukan dan memperbaiki bug lambat. Menambahkan fitur dan peningkatan lambat. Apa pun yang membaik pada yang sebelumnya adalah kemenangan. Jarang sekali kinerja eksekusi menjadi masalah.

Presiden James K. Polk
sumber
30
@Regs: kinerja eksekusi selalu menjadi masalah jika itu mempengaruhi kegunaan. Benar, memindai file xml untuk string dalam satu detik atau tiga tidak masalah dari sudut pandang angka murni, tetapi perbedaan beberapa detik dapat membuat perbedaan besar dalam kegunaan ketika Anda berbicara tentang aplikasi yang menghadap pengguna.
Bryan Oakley
5
@Ajax: Tidak, saya yakin ini kepribadian Anda yang menang.
Presiden James K. Polk
15
Rekor saya sejauh ini adalah menghemat perusahaan $ 30.000 / tahun dalam satu hari kerja. Teknisi mereka memutuskan bahwa lebih mudah untuk memiliki algoritma komputasi awan menghitung jumlah tugas yang dilakukan pada setiap iterasi, menyebabkan n! pertanyaan tentang pekerjaan dengan 20.000 unit kerja. Mengubah itu untuk memeriksa apakah 1 item pekerjaan dibiarkan dijatuhkan ke n pertanyaan, dan potong tagihan dari $ 130 / hari menjadi $ 20 / hari. Coders malas menghasilkan uang bagi saya. Mohon dorong lebih banyak pemodal malas.
Ajax
10
Lucu Anda berkomentar sekarang ... Saya sudah pindah ke perusahaan lain, di mana kami baru saja harus menarik lima belas pengembang dari fitur dan ke kinerja sejak bank besar Amerika menolak untuk menandatangani kontrak jutaan dolar sampai sistem dapat menangani beban mereka. Mereka menyukai fitur yang kami miliki, hanya saja bukan kecepatan di mana mereka melakukan. Jika Anda mengabaikan kinerja cukup lama, tidak masalah fitur apa yang Anda miliki karena mereka akan sangat lambat .
Ajax
4
Kinerja eksekusi selalu menjadi masalah, seberapa banyak masalah yang kita bicarakan. Berapa banyak kode yang ditafsirkan yang dapat Anda jalankan di ponsel sebelum pengguna berhenti membeli aplikasi Anda karena membunuh baterai? Berapa lama seorang pengguna akan menunggu halaman Anda dimuat sebelum menutup iklan yang menghalangi Anda dari pendapatan iklan? Jawab pertanyaan-pertanyaan semacam ini dan Anda seberapa penting kinerja eksekusi.
Sqeaky
15

Jawabannya sederhana: orang mengatakan ruby lambat karena ini lambat didasarkan pada perbandingan diukur dengan bahasa lain. Ingatlah, "lambat" itu relatif. Seringkali, ruby ​​dan bahasa "lambat" lainnya cukup cepat.

Bryan Oakley
sumber
ya, itulah yang saya pikirkan, maksud saya, orang mengatakan itu lambat, tetapi masih sangat cepat untuk kebutuhan saya ...
stephenmurdoch
11
>> masih sangat cepat untuk kebutuhan saya << Cukup cepat untuk semua yang tidak perlu cepat :-)
igouy
Saya sebagian bias dalam hal ini, mungkin cox ini adalah komentar yang sudah ketinggalan zaman. sekarang kami memiliki ruby ​​2.3, dan dari pengalaman ruby ​​2.2, saya menemukan bahwa stack rail itu berat. jika orang membutuhkan kerangka kerja yang lebih cepat, cobalah pidrano, yang didasarkan pada sinatra dan mereka mencoba melakukan sedekat mungkin dengan perintah rails, tetapi jauh lebih ringan. tetapi mereka belum mencapai versi 1.0, masih banyak yang akan datang, tetapi dari pengujian saya, ini berjalan dengan baik dan cepat. Saya sudah bekerja dengan rekaman aktif 5 dan sprocket pidrano, dipinjam dari rel. Dengan 200 koneksi bersamaan, saya mendapatkan respons 1,5 detik tanpa permintaan db, dengan aset dari sprocket
James Tan
5

Joel on Software - Ruby Performance Revisited menjelaskan dengan cukup baik. Mungkin sudah ketinggalan zaman ...

Saya akan merekomendasikan untuk tetap menggunakannya karena Anda terbiasa dengan Ruby on Rails,
jika Anda pernah menemui masalah kinerja, Anda mungkin mempertimbangkan untuk menggunakan bahasa dan kerangka kerja yang berbeda.

Dalam hal ini saya benar-benar menyarankan C # dengan ASP.NET MVC 2 , berfungsi sangat baik untuk aplikasi CRUD.

Tamara Wijsman
sumber
Terima kasih untuk tautannya, saya selalu suka membaca hal-hal yang diambil Joel. Pernyataan menarik yang ia buat tentang "slogan stiker-bumper" DHH ...
stephenmurdoch
Quote: " Ini tidak berlaku untuk semua orang, tetapi ketika orang mengatakan mereka memiliki masalah kinerja dengan Ruby atau bahwa mereka hanya perlu dapat menjalankan kode lebih cepat daripada mesin inti bahasa Ruby dapat menjalankannya, itu tidak membantu untuk memiliki Pendukung Ruby menyanyikan lagu-lagu tentang siklus pengembang vs. siklus CPU. "Kata baik.
Marc.2377
3

Saya akan mengatakan Ruby lambat karena tidak banyak upaya yang dihabiskan dalam membuat penerjemah lebih cepat. Hal yang sama berlaku untuk Python. Smalltalk sama dinamisnya dengan Ruby atau Python tetapi berkinerja lebih baik dengan besaran, lihat http://benchmarksgame.alioth.debian.org . Sejak Smalltalk lebih atau kurang digantikan oleh Java dan C # (yaitu setidaknya 10 tahun yang lalu) tidak ada lagi pekerjaan optimasi kinerja yang telah dilakukan untuk itu dan Smalltalk masih jauh lebih cepat daripada Ruby dan Python. Orang-orang di Xerox Parc dan OTI / IBM memiliki uang untuk membayar orang-orang yang bekerja untuk membuat Smalltalk lebih cepat. Yang tidak saya mengerti adalah mengapa Google tidak menghabiskan uang untuk membuat Python lebih cepat karena mereka adalah toko Python besar. Sebaliknya mereka menghabiskan uang untuk pengembangan bahasa seperti Go ...

OlliP
sumber
Saya pikir itu karena Python sudah memiliki tempatnya dan banyak digunakan saat ini. Jika Anda membutuhkan kinerja tinggi ada banyak perpustakaan yang dapat Anda gunakan atau menenun dan hal-hal lain yang dapat Anda gunakan.
Zelphir Kaltstahl
Dari apa yang saya baca beberapa upaya telah menghasilkan hasil yang baik di Ruby 2.5.
Marc.2377
2

Pertama-tama, apakah Anda peduli dengan apa yang orang lain katakan tentang bahasa yang Anda sukai? Ketika melakukan pekerjaan yang harus dilakukan, Anda baik-baik saja.

OO bukan cara tercepat untuk mengeksekusi kode, tetapi itu membantu dalam membuat kode. Kode pintar selalu lebih cepat daripada kode bodoh dan loop tidak berguna. Saya seorang DBA dan melihat banyak dari loop yang tidak berguna ini, lepaskan, gunakan kode dan kueri yang lebih baik dan aplikasi lebih cepat, lebih cepat. Apakah Anda peduli dengan mikrodetik terakhir? Anda mungkin memiliki bahasa yang dioptimalkan untuk kecepatan, yang lain hanya melakukan pekerjaan yang harus mereka lakukan dan dapat dipertahankan oleh banyak programmer yang berbeda.

Itu semua hanya pilihan.

Frank Heikens
sumber
2

Jelas, berbicara tentang kecepatan Ruby hilang. Meskipun tes benchmark menunjukkan bahwa Ruby tidak jauh lebih lambat dari PHP. Tetapi sebagai gantinya, Anda mendapatkan kode KERING yang mudah dipelihara, yang terbaik dari semua kerangka kerja dalam berbagai bahasa.

Untuk proyek kecil, Anda tidak akan merasakan kelambatan (maksud saya sampai seperti <50K pengguna) mengingat bahwa tidak ada perhitungan kompleks yang digunakan dalam kode, hanya hal-hal utama.

Untuk proyek yang lebih besar, membayar sumber daya terbayar dan lebih murah daripada upah pengembang. Selain itu, menulis kode pada RoR ternyata jauh lebih cepat daripada yang lain.

Pada tahun 2014, besarnya perbedaan kecepatan yang Anda bicarakan ini untuk sebagian besar situs web tidak signifikan.

Rápli András
sumber
2

Cara untuk berurusan dengan kinerja Ruby dalam aplikasi Web sama dengan bahasa pemrograman lainnya:

ARSITEKTUR

Ini lebih mudah dilakukan di Rails daripada di sebagian besar Kerangka Kerja Web lainnya.

Pada level aplikasi , dengan menembolok apa pun yang seharusnya di-cache dan dengan mengelola akses ke DB dengan cara yang cerdas (karena bottleneck biasanya pada akses "DB" untuk sebagian besar aplikasi WEB).

Rel membuatnya sangat mudah dan alami untuk menyelesaikan masalah ini. Ada beberapa abstraksi untuk caching data, halaman, dan fragmen , dan ada juga abstraksi yang sangat bagus untuk menangani bagian SQL dengan cara yang dioptimalkan dan dapat digunakan kembali ( Rekaman Aktif dan AREL ).

Ini adalah alasan mengapa begitu banyak aplikasi yang ditulis dalam bahasa yang lebih cepat dan tidak terlalu ekspresif (seperti php) akhirnya menjadi lebih lambat daripada rekan-rekan Ruby. Tidak mudah dan elegan untuk menangani caching dan query dengan bahasa-bahasa ini dibandingkan dengan Ruby.

Pada tingkat infrastruktur , masuk akal untuk memikirkan penyeimbangan muatan dan semua hal yang tidak saya ketahui banyak tentangnya. Saya akan mengalihdayakan masalah itu dengan menyewa beberapa platform sebagai penyedia layanan, seperti Heroku atau Engine Yard . Bagaimanapun. Menyebarkan rel dengan load balancing mungkin tidak terlalu sulit untuk dilakukan.

Pedro Morte Rolo
sumber
1

Ruby lebih lambat daripada C ++ di sejumlah tugas yang mudah diukur (mis., Melakukan kode yang sangat bergantung pada floating point). Ini tidak terlalu mengejutkan, tetapi cukup banyak pembenaran bagi beberapa orang untuk mengatakan bahwa "Ruby itu Lambat" tanpa kualifikasi. Mereka tidak menghitung fakta bahwa jauh lebih mudah dan aman untuk menulis kode Ruby daripada C ++.

Perbaikan terbaik adalah dengan menggunakan modul bertarget yang ditulis dalam bahasa lain (misalnya, C, C ++, Fortran) dalam kode Ruby Anda. Mereka dapat melakukan angkat berat dan skrip Anda dapat fokus pada masalah koordinasi tingkat yang lebih tinggi.

Donal Fellows
sumber
Perbandingan sering dibuat dengan Java, C #, Python, mungkin Perl daripada C ++.
rjh
5
Tentu saja. Tetapi saya dapat meyakinkan Anda (sebagai pengembang Tcl) bahwa orang akan selalu membandingkan Anda dengan bahasa lain secara tidak adil. Cara mengatasinya adalah dengan menggunakan bahasa-bahasa lain tersebut untuk komponen yang Anda jahit bersama; melakukan semuanya dalam satu bahasa agak mirip dengan menggunakan alat tunggal untuk semua tugas. Jika yang Anda miliki adalah palu, semuanya tampak seperti ibu jari.
Donal Fellows
ide bagus tentang menggunakan modul bahasa asing saat dibutuhkan
stephenmurdoch
>> untuk mengatakan bahwa "Ruby itu Lambat" tanpa kualifikasi << Beberapa tahun yang lalu mereka mungkin melanjutkan untuk menampilkan program Ruby yang lebih lambat daripada program Tcl :-)
igouy
1
Anda tahu apa yang mereka katakan tentang Kebohongan, Kebohongan Terkutuk, dan Tolok Ukur. ;-)
Donal Fellows
0

Kinerja hampir selalu tentang desain yang baik dan interaksi basis data yang dioptimalkan. Ruby melakukan apa yang dibutuhkan sebagian besar situs web dengan cukup cepat, terutama versi yang lebih baru; dan kecepatan pengembangan dan kemudahan perawatan memberikan hasil besar dalam biaya dan untuk membuat pelanggan senang. Saya menemukan JAVA memiliki kinerja eksekusi yang lambat untuk beberapa tugas, dan mengingat sulitnya pengembangan di JAVA, banyak pengembang membuat aplikasi lambat terlepas dari kemampuan kecepatan teoretis seperti yang ditunjukkan dalam tolok ukur (tolok ukur biasanya dibuat untuk menunjukkan kemampuan yang spesifik dan sempit). Ketika saya membutuhkan pemrosesan intensif yang tidak cocok dengan kemampuan basis data saya, saya memilih C atau Objective-C atau bahasa kompilasi lain yang benar-benar berkinerja tinggi untuk tugas-tugas tersebut tergantung pada platform. Jika saya perlu membuat aplikasi web berbasis data, Saya menggunakan RoR atau terkadang C # ASP.NET tergantung pada persyaratan lain; karena semua platform memiliki kekuatan dan kelemahan. Kecepatan eksekusi dari hal-hal yang dilakukan aplikasi Anda penting, tetapi bagaimanapun, jika kinerja eksekusi dari satu aspek sempit bahasa adalah yang terpenting; maka saya mungkin masih menggunakan bahasa Assembler untuk semuanya.

Richard
sumber
-5

Ruby berkinerja baik untuk produktivitas pengembang. Ruby secara alami memaksa pengembangan yang didorong oleh tes karena kurangnya jenis. Ruby berkinerja baik ketika digunakan sebagai pembungkus tingkat tinggi untuk perpustakaan C. Ruby juga berkinerja baik selama proses yang berjalan lama ketika JIT-dikompilasi ke kode mesin melalui JVM atau Rbx VM. Ruby tidak berkinerja baik ketika diharuskan untuk memecahkan angka dalam waktu singkat dengan kode ruby ​​murni.

nurettin
sumber