사람들은 왜 루비가 느리다고 말합니까? [닫은]


184

Ruby on Rails를 좋아하며 모든 웹 개발 프로젝트에 사용합니다. 몇 년 전에 Rails가 메모리 호그 인 것에 대해 이야기하고 그것이 얼마나 잘 확장되지 않았는 지에 대해 많은 이야기가 있었지만 이러한 제안은 여기 Gregg Pollack에 의해 취해졌습니다 .

최근에 나는 루비 자체가 느리다는 사람들의 말을 듣고있다.

  • 루비는 왜 느린 것으로 간주됩니까?

루비가 느리다는 것을 알지 못하지만 다시 간단한 CRUD 앱과 회사 블로그를 만드는 데 사용하고 있습니다. 루비가 느려지기 전에 어떤 종류의 프로젝트를해야합니까? 아니면이 느려짐이 모든 프로그래밍 언어에 영향을 미치는 것입니까?

  • 이 "느림"을 처리하려면 Ruby 프로그래머가 선택할 수있는 옵션은 무엇입니까?

  • 속도가 중요하고 트래픽이 많은 스택 오버플로와 같은 응용 프로그램에 가장 적합한 Ruby 버전은 무엇입니까?

질문은 주관적이며 아키텍처 설정 (EC2 대 독립형 서버 등)이 큰 차이를 만들지 만 사람들이 Ruby에 대해 느리게 생각하는 것을 듣고 싶습니다.

마지막으로, Ruby 2.0에 관한 뉴스를 많이 찾을 수 없습니다. 그로부터 몇 년이 지났다고 생각합니까?




훌륭한 답변 외에는 아무도 실제로 왜 대답하지 않습니다. 더 나은 통찰력은 Nakilon이 언급 한 관련 질문에 있습니다
Andre Figueiredo

답변:


184

루비는 왜 느린 것으로 간주됩니까?

Ruby와 다른 언어간에 일반적인 벤치 마크를 실행하면 Ruby가 손실됩니다.

루비가 느리다는 것을 알지 못하지만 다시 간단한 CRUD 앱과 회사 블로그를 만드는 데 사용하고 있습니다. 루비가 느려지기 전에 어떤 종류의 프로젝트를해야합니까? 아니면이 느려짐이 모든 프로그래밍 언어에 영향을 미치는 것입니까?

루비는 아마도 실시간 디지털 신호 처리 응용 프로그램이나 모든 종류의 실시간 제어 시스템을 작성하는 데 도움이되지 않을 것입니다. 루비 (오늘날 VM과 함께)는 아마도 스마트 폰과 같은 리소스가 제한된 컴퓨터에서 질식 할 것입니다.

웹 응용 프로그램의 많은 처리는 실제로 C로 개발 된 소프트웨어에 의해 수행됩니다. Apache, Thin, Nginx, SQLite, MySQL, PostgreSQL, 많은 파싱 라이브러리, RMagick, TCP / IP 등은 Ruby에서 사용하는 C 프로그램입니다. . 루비는 접착제와 비즈니스 로직을 제공합니다.

이 "느림"을 처리하려면 Ruby 프로그래머가 선택할 수있는 옵션은 무엇입니까?

더 빠른 언어로 전환하십시오. 그러나 비용이 든다. 그만한 가치가있는 비용입니다. 그러나 대부분의 웹 응용 프로그램의 경우 언어 선택은 관련 요소가 아닙니다. 개발에 더 많은 비용이 드는 더 빠른 언어를 사용하는 트래픽이 충분하지 않기 때문입니다.

속도가 중요하고 트래픽이 많은 스택 오버플로와 같은 응용 프로그램에 가장 적합한 Ruby 버전은 무엇입니까?

JRuby, IronRuby, REE는 VM을 감당할 수있는 플랫폼에서 애플리케이션의 루비 부분을 더 빨리 실행하게 할 것입니다. 느리게하는 것은 Ruby가 아니지만 컴퓨터 시스템 아키텍처 및 애플리케이션 아키텍처이므로 데이터베이스 복제, 다중 애플리케이션 서버, 리버스 프록시를 사용한로드 밸런싱, HTTP 캐싱, memcache, Ajax, 클라이언트 측 캐싱 등과 같은 작업을 수행 할 수 있습니다. 루비가 아닙니다.

마지막으로, Ruby 2.0에 관한 뉴스를 많이 찾을 수 없습니다. 그로부터 몇 년이 지났다고 생각합니까?

대부분의 사람들은 Ruby 1.9.1을 기다리고 있습니다. JRuby의 Ruby 1.9.1에서 Rails 3.1을 기다리고 있습니다.

마지막으로 많은 개발자들이 다른 언어에 비해 프로그래밍을보다 즐겁게 경험할 수 있고 Ruby with Rails를 통해 숙련 된 웹 개발자가 응용 프로그램을 매우 빠르게 개발할 수 있기 때문에 Ruby를 선택한다는 사실을 기억하십시오.


3
많은 사항을 고려한 후 이것이 최선의 답변이라고 판단했습니다. 고맙게도 신호 처리 앱에 대한 비유가 마음에 듭니다. 유용한 답변을 모두 마치면 사람들이 무엇에 대해 이야기하고 있는지 쉽게 알 수 있습니다.
stephenmurdoch

1
예, 당신은 ruby ​​2에서 몇 년 떨어져있었습니다. Ruby 2.0.0 2013 년 2 월 24 일에 출시
Morgan

3
Ruby 2.1을 사용한 경험은 Ruby 2.0에서 실행되는 동일한 앱보다 약 25 % 빠릅니다.
Matt Connolly

14
언어는 느리거나 빠르지 않으며 구현, 인터프리터 및 컴파일러는 다음과 같습니다.)
Zelphir Kaltstahl

122

우선, 무엇과 관련하여 느리게 ? 씨? 파이썬? 의는하자 몇 가지 숫자를 얻을 상기 컴퓨터 언어 벤치 마크 게임 :

루비는 왜 느린 것으로 간주됩니까?

누구에게 물어 보느냐에 따라 다릅니다. 당신은 말할 수 있습니다 :

  • 루비는 해석 된 언어 이며 해석 된 언어는 컴파일 된 언어보다 속도가 느린 경향이 있습니다.
  • Ruby는 가비지 수집을 사용합니다 ( 가비지 수집 도 사용하는 C #은 위의 알고리즘을 사용하고 메모리를 많이 사용하지 않는 벤치 마크에서 Ruby, Python, PHP 등보다 2 배 빠릅니다).
  • 루비 메소드 호출은 느리다 (덕 타이핑 때문에 강력하게 해석 된 언어보다 빠르다)
  • Ruby (JRuby 제외) 진정한 멀티 스레딩을 지원하지 않습니다
  • 기타

그러나 다시, 무엇에 관해서 천천히? Ruby 1.9는 C와 비교할 때 Python과 PHP (3 배 성능 요소 이내)만큼 빠르기 때문에 (최대 300 배 더 빠를 수 있음) 위의 사항 (스레딩 고려 사항을 제외하고 응용 프로그램이이 측면에 크게 의존하는 경우) )는 대부분 학문적입니다.

이 "느림"을 처리하려면 Ruby 프로그래머가 선택할 수있는 옵션은 무엇입니까?

확장 성을 위해 쓰고 더 많은 하드웨어를 던지십시오 (예 : 메모리)

속도가 중요하고 트래픽이 많은 스택 오버플로와 같은 응용 프로그램에 가장 적합한 Ruby 버전은 무엇입니까?

음, REE (결합 여객은 ) 아주 좋은 후보가 될 것입니다.


1
가비지 콜렉션 자체는 반드시 느리지는 않지만 MRI의 가비지 콜렉션은 느립니다. 더 빠른 루비가 필요하다면 JRuby와 REE도 볼 수 있습니다.
Andreas

1
@igouy, True, 2008 년 중반 극단적 일 수 있습니다. 링크를 업데이트했지만 몇 달 후에는 구식이 될 것입니다. :) 어느 쪽이든, 하드웨어와 일부 패치 수준이 다를 수 있으며 몇 가지 추가 테스트가 추가되었지만 더 큰 그림은 바뀌지 않았습니다.
vladr

11
>> 같은 차수 내에서 << 당신이 7 세 또는 69 세 사이라면 같은 차수 내에 있습니다. 그 차이는 중요하지 않습니까?
igouy

10
@igouy, 나는 당신에 대해 모른다. 그러나 나는 실행 속도 측면에서 내 수명을 측정하는 프로그램이 아니다. 예를 들어 실행 속도에 관심이있는 곳은 HTTP 응답 렌더링 시간입니다. 7ms와 69ms 렌더링 시간 (130ms 이상의 네트워크 대기 시간 이상을 타는 경우)의 차이를 느끼지 못할 것입니다. 나는 7ms와 700ms의 차이를 알게 될 것임을 알고 있으며, 7ms와 7s의 차이를 확실히 알 수 있지만 7ms와 69ms 사이는 아닙니다.
vladr

3
@vladr, 70ms 또는 700ms는 어떻습니까? 그 차이를 알 수 있습니까?
Paul Draper

60

Rails의 제작자 David Heinemeier Hansson 이 말한 내용은 다음과 같습니다 .

Rails [Ruby]는 대부분의 웹 애플리케이션 Fast Enough를위한 것입니다. 하루에 수백만 건의 동적 페이지 조회를 수행하는 사이트가 있습니다. Yahoo 또는 Amazon 첫 페이지를 보게되면 어떤 언어로든 상용 프레임 워크가 당신에게 큰 도움이되지 않을 것입니다. 당신은 아마 자신의 롤을해야합니다. 그러나 물론 무료 CPU 사이클도 원합니다. 나는 단지 무료 개발자 사이클에 대해 훨씬 더 신경을 쓰며 전자를 후자에 교환하려고합니다.

즉, 문제에 더 많은 하드웨어 또는 기계를 던지는 것은 더 많은 개발자를 고용하고 더 빠르지 만 언어를 유지하기가 더 어려운 것보다 저렴합니다. 결국 C로 웹 애플리케이션을 작성하는 사람은 거의 없습니다.

Ruby 1.9는 1.8에 비해 크게 개선되었습니다. Ruby 1.8의 가장 큰 문제는 해석 된 특성 (바이트 코드 없음, 컴파일 없음)이며 Ruby에서 가장 일반적인 작업 중 하나 인 메소드 호출이 특히 느립니다.

그것은 거의 모든 것이 Ruby에서 메소드 조회라는 것을 도와주지 않습니다. 두 개의 숫자를 추가하고 배열을 색인화합니다. 다른 언어가 핵을 노출 __add__시키는 경우 (Python의 방법, Perl의 overload.pm) Ruby는 모든 경우에 순수 OO를 수행하므로 컴파일러 / 통역이 영리하지 않으면 성능이 저하 될 수 있습니다.

루비로 인기있는 웹 애플리케이션을 작성한다면, 캐싱에 중점을 둘 것입니다. 페이지를 캐시하면 사용중인 언어에 상관없이 해당 페이지의 처리 시간이 0으로 줄어 듭니다. 웹 응용 프로그램의 경우 데이터베이스 오버 헤드 및 기타 I / O가 언어 속도보다 훨씬 중요해지기 때문에이를 최적화하는 데 집중합니다.


7
"결국 C에서 웹 애플리케이션을 작성하는 사람은 거의 없습니다." -물론 그렇지는 않지만 많은 성능에 중요한 웹 사이트가 스칼라로 이동했습니다.
Dario

6
나는 '더 많은 하드웨어를 던질 때'가 더 저렴하다는 데 동의하지 않습니다. 플랫폼은 개발자를 염두에두고 설계되었으므로 X 개월마다 호스팅하는 데 더 많은 비용을 지불해야한다고 고객에게 확신시키기는 어렵습니다.
케빈

9
@Keven : 확실히 개발 비용이 절감 될까요? 그렇지 않으면 처음에 루비를 사용하는 이유는 무엇입니까?
rjh

4
@Kevin 그 진술은 약간 광범위하다. 하루에 약 100 회의 방문으로 트래픽이 10 % 증가 할 때마다 새 서버를 설정해야하는 경우 고객은 분명히 불만을 제기 할 수 있습니다. 그러나 현실적으로는 오래된 하드웨어가 더 이상 대처할 수 없게되기 전에 트래픽을 더 많이 시작하고 그 정도를 늘려야합니다. 이 시점에서 주제는 "좋은 문제"영역으로 이동하고 하드웨어 업그레이드에 대해 아무도 불평하지 않습니다. 또한 이런 종류의 일을 인식하지 않고 트래픽이 많은 웹 사이트를 운영하는 "고객"은 없습니다.
deceze

5
@ 케빈-그 주위를 돌려 보자. "플랫폼은 컴퓨터를 염두에두고 설계 되었기 때문에 고객이 새로운 기능을 3 개월 동안 기다려야한다고 설득하기가 어렵습니다." 새로운 기능으로 인해 매출이 크게 증가하면 추가 하드웨어 비용을 지불하게됩니다. 게다가, 초기부터 빠른 언어를 고르는 것은 많은 응용 분야에서 조기 최적화입니다. 데이터베이스 읽기, 네트워크 대기 시간 등과 같은 병목 현상이 발생할 수 있습니다.
Nathan Long

34

코드 작성이 느립니다. 코드 읽기가 느립니다. 버그 찾기 및 수정이 느립니다. 기능 및 개선 사항 추가가 느립니다. 이전에 개선 된 것은 승리입니다. 실행 성능 문제는 거의 없습니다.


30
@GregS : 사용성에 영향을주는 경우 실행 성능은 항상 문제입니다. 사실, 1 ~ 3 초 안에 xml 파일에서 문자열을 스캔하는 것은 순수한 숫자의 관점에서 중요하지 않지만, 몇 초의 차이로 인해 사용자가 직면 한 응용 프로그램에 대해 이야기 할 때 유용성에 큰 차이가 생길 수 있습니다.
Bryan Oakley

5
@ 아약스 : 아냐, 네가이기는 성격이라고 내기.
James K. Polk 대통령

15
지금까지 나의 기록은 하루 작업으로 회사에 연간 $ 30,000를 절약하는 것입니다. 엔지니어들은 클라우드 컴퓨팅 알고리즘이 각 반복에서 수행 된 작업 수를 계산하여 n을 발생시키는 것이 더 읽기 쉽다고 결정했습니다! 작업 단위가 20,000 개 이상인 작업에 대한 쿼리 하나의 작업 항목이 남아 있는지 확인하기 위해 변경하면 n 개의 쿼리로 삭제되고 청구서가 하루 $ 130에서 $ 20 / day로 줄어 듭니다. 게으른 코더는 돈을 벌어줍니다. 더 게으른 코더를 장려하십시오.
Ajax

10
유감 스럽지만 지금은 다른 회사로 옮겼습니다. 다른 회사로 이사를갔습니다. 미국의 한 대형 은행이 시스템까지 수백만 달러 계약을 거부하기 때문에 15 명의 개발자가 기능과 성능을 떨어 뜨려야했습니다. 그들의 짐을 처리 할 수 ​​있습니다. 그들은 우리가 가진 기능을 좋아하지만 수행 속도가 아닙니다. 성능을 충분히 오랫동안 무시하면 사용 가능한 기능이 느려질 수 있으므로 어떤 기능을 사용하든 문제가되지 않습니다 .
Ajax

4
실행 성능은 항상 문제이며, 우리가 말하는 문제의 양은 얼마입니까? 사용자가 배터리를 죽이기 때문에 앱 구매를 중단하기 전에 휴대 전화에서 얼마나 해석 된 코드를 실행할 수 있습니까? 광고 수익을 박탈하기 전에 광고를 닫기 전에 사용자가 페이지가로드 될 때까지 얼마나 걸립니까? 이러한 종류의 질문에 답하고 실행 성능이 얼마나 중요합니까?
Sqeaky

15

대답은 간단하다 : 사람들이이 때문에 루비가 느린라고 되어 속도가 느린 다른 언어로 측정 비교를 기반으로. 그러나 "느리게"는 상대적입니다. 종종 루비와 다른 "느린"언어는 충분히 빠릅니다.


그래, 그게 내가 생각한
것인데

11
>> 그것은 여전히 ​​내 요구 사항에
감히

나는 이것에 대해 부분적으로 편견입니다. 아마도 이것은 오래된 주석입니다. 이제 우리는 루비 2.3을 가지고 있으며 루비 2.2 경험에서 레일 스택이 무겁다는 것을 알았습니다. 더 빠른 프레임 워크가 필요한 경우 sinatra를 기반으로 한 pidrano를 시도하고 가능한 한 rails 명령에 가까워 지려고 노력했지만 훨씬 가볍습니다. 그러나 그들은 아직 1.0 버전에 도달하지 못했지만 앞으로 더 나올 것이지만 내 테스트에서 훌륭하고 빠르게 실행됩니다. 나는 레일에서 빌린 활성 레코드 5와 피 라노 스프라켓으로 작업했습니다. 200 개의 동시 연결을 통해 스프라켓의 자산을 사용하여 DB 쿼리없이 1.5 초 응답을받습니다.
James Tan

5

Joel on Software-Ruby Performance Revisited에 설명되어 있습니다. 그래도 구식 일 수 있습니다 ...

Ruby on Rails에 익숙 할 때 그대로 사용하는 것이 좋습니다
. 성능 문제가 발생하면 다른 언어와 프레임 워크를 사용하는 것이 좋습니다.

이 경우 ASP.NET MVC 2를 사용하는 C #을 제안 하고 CRUD 앱에서 매우 잘 작동합니다.


링크에 감사드립니다. 저는 Joel의 의견을 항상 읽습니다. 그는 DHH의 "범퍼 스티커 슬로건"에 대한 흥미로운 말 ...
stephenmurdoch

인용구 : " 모든 사람에게 적용되는 것은 아니지만, 사람들이 Ruby에 성능 문제가 있거나 핵심 Ruby 언어 엔진이 실행할 수있는 것보다 더 빠르게 코드를 실행할 수 있어야한다고 말하면 도움이되지 않습니다. 루비는 개발자주기와 CPU주기에 관해 찬송가를 부르는 것을지지 한다.
Marc.2377

3

나는 인터프리터를 더 빨리 만들기 위해 많은 노력을 기울이지 않았기 때문에 Ruby가 느리다고 말합니다. 파이썬에도 동일하게 적용됩니다. 스몰 토크는 루비 나 파이썬만큼이나 역동적이지만 성능이 훨씬 뛰어납니다 ( http://benchmarksgame.alioth.debian.org 참조) . 스몰 토크는 자바와 C # (적어도 10 년 전)으로 대체되었으므로 더 이상 성능 최적화 작업이 수행되지 않았으며 스몰 토크는 여전히 루비와 파이썬보다 훨씬 빠릅니다. Xerox Parc 및 OTI / IBM의 직원은 Smalltalk를보다 빠르게 수행하는 직원에게 비용을 지불했습니다. 내가 이해하지 못하는 것은 Google이 파이썬을 큰 파이썬 상점이기 때문에 더 빨리 파이썬을 만드는 데 돈을 쓰지 않는 이유입니다. 대신 그들은 Go와 같은 언어의 개발에 돈을 쓴다.


파이썬이 이미 존재하고 현재 많이 사용되고 있기 때문이라고 생각합니다. 고성능이 필요한 경우 사용하거나 직조 할 수있는 많은 라이브러리와 사용할 수있는 다른 것들이 있습니다.
Zelphir Kaltstahl

내가 읽은 내용에서 이미 Ruby 2.5에서 좋은 결과를 얻었습니다.
Marc.2377

2

우선, 당신이 좋아하는 언어에 대해 다른 사람들의 말에 관심이 있습니까? 그것이해야 할 일을하면 괜찮습니다.

OO는 코드를 실행하는 가장 빠른 방법은 아니지만 코드 작성에 도움이됩니다. 스마트 코드는 항상 멍청한 코드와 쓸모없는 루프보다 빠릅니다. 나는 DBA이고 쓸모없는 루프를 많이보고, 삭제하고, 더 나은 코드와 쿼리를 사용하며 응용 프로그램이 더 빠르고 빠릅니다. 마지막 마이크로 초에 관심이 있습니까? 속도에 최적화 된 언어가있을 수도 있고, 다른 사람들은해야 할 일만하고 여러 프로그래머가 유지할 수 있습니다.

모두 선택에 불과합니다.


2

분명히 루비가 잃는 속도에 대해 이야기하십시오. 벤치 마크 테스트에서 루비가 PHP보다 그리 느리지 않음을 시사합니다. 그러나 그 대가로 다양한 언어로 된 모든 프레임 워크 중에서 가장 좋은 DRY 코드를 유지 관리하기가 쉬워지고 있습니다.

소규모 프로젝트의 경우 코드에서 복잡한 계산이 사용되지 않고 주류 일뿐이므로 사용자가 50K 미만이 될 때까지 느려질 것입니다.

더 큰 프로젝트의 경우 리소스 비용을 지불하면 개발자 임금보다 저렴합니다. 또한 RoR에 코드를 작성하는 것이 다른 것보다 훨씬 빠릅니다.

2014 년에 말한 속도 차이는 대부분의 웹 사이트에서 중요하지 않습니다.


2

웹 애플리케이션에서 Ruby의 성능을 처리하는 방법은 다른 프로그래밍 언어와 동일합니다.

건축물

이는 대부분의 다른 웹 프레임 워크보다 Rails에서 수행하는 것이 더 쉽습니다.

응용 프로그램 수준 에서 캐시되어야하는 모든 것을 캐싱하고 지능적인 방식으로 DB에 대한 액세스를 관리함으로써 (병목 현상은 일반적으로 대부분의 WEB 앱에 대한 "DB"액세스이므로)

Rails를 사용하면 이러한 문제를 매우 쉽고 자연스럽게 해결할 수 있습니다. 데이터, 페이지 및 조각 캐싱에 대한 몇 가지 추상화 가 있으며 SQL 파트를 최적화되고 재사용 가능한 방식 ( Active RecordAREL ) 으로 처리하기위한 추상화도 있습니다 .

이것이 PHP와 같이 표현이 빠르며 표현이 빠르지 않은 언어로 작성된 많은 응용 프로그램이 루비보다 더 느린 이유입니다. Ruby보다 캐싱 및 쿼리를 다루는 것이 그렇게 쉽고 우아하지 않습니다.

인프라 수준 에서는로드 밸런싱과 내가 알지 못하는 모든 것을 생각하는 것이 합리적입니다. Heroku 또는 Engine Yard 와 같은 서비스 제공 업체로 일부 플랫폼을 고용하여 해당 문제를 아웃소싱합니다 . 어쨌든. 로드 밸런싱으로 레일을 배포하는 것은 그리 어렵지 않습니다.


1

루비는 쉽게 측정 할 수있는 많은 작업 (예 : 부동 소수점에 크게 의존하는 코드 수행)에서 C ++보다 느립니다. 이것은 놀라운 일이 아니지만 일부 사람들이 자격없이“루비가 느리다”고 말할 수있는 충분한 근거입니다. 그들은 C ++보다 Ruby 코드를 작성하는 것이 훨씬 쉽고 안전하다는 사실을 계산하지 않습니다.

가장 좋은 해결책은 Ruby 코드에서 다른 언어로 작성된 대상 모듈 (예 : C, C ++, Fortran)을 사용하는 것입니다. 그것들은 힘든 일을 할 수 있고 스크립트는 더 높은 수준의 조정 문제에 집중할 수 있습니다.


비교는 종종 Java, C #, Python, 아마도 C ++이 아닌 Perl로 이루어집니다.
rjh

5
물론이야. 그러나 나는 사람들이 항상 당신을 다른 언어와 불공평하게 비교할 것이라고 (Tcl의 개발자로서) 확신 할 수 있습니다 . 수정은 다른 언어를 함께 연결하는 구성 요소에 사용하는 것입니다. 한 언어로 모든 작업을 수행하는 것은 모든 작업에 단일 도구를 사용하는 것과 약간 비슷합니다. 당신이 가진 전부 망치라면 모든 것이 엄지 손가락처럼 보입니다.
Donal Fellows

필요할 때 외국어 모듈을 사용하는 것에 대한 좋은 아이디어
stephenmurdoch

>> 자격없이“루비가 느리다”고 말하기 << 몇 년 전에 그들은 Tcl 프로그램보다 느린 루비 프로그램을 보여 주려고했을 수도 있습니다 :-)
igouy

1
당신은 그들이 거짓말, 저주받은 거짓말 및 벤치 마크에 대해 말하는 것을 알고 있습니다. ;-)
Donal Fellows

0

성능은 거의 항상 우수한 디자인과 최적화 된 데이터베이스 상호 작용에 관한 것입니다. 루비는 대부분의 웹 사이트에서 특히 최신 버전이 필요한 작업을 매우 빠르게 수행합니다. 개발 속도와 유지 관리 편의성 덕분에 비용이 크게 증가하고 고객 만족도를 높일 수 있습니다. JAVA는 일부 작업의 실행 성능이 느리고 JAVA에서 개발하기가 어렵다는 점을 감안할 때 많은 개발자가 벤치 마크에서 입증 된 이론적 속도 기능에 관계없이 느린 응용 프로그램을 만듭니다 (벤치 마크는 일반적으로 구체적이고 좁은 기능을 보여주기 위해 고안되었습니다). 데이터베이스 기능에 적합하지 않은 집중적 인 처리가 필요한 경우 플랫폼에 따라 해당 작업에 C 또는 Objective-C 또는 다른 고성능 컴파일 언어를 선택합니다. 데이터베이스 웹 애플리케이션을 작성해야하는 경우 다른 요구 사항에 따라 RoR 또는 때로는 C # ASP.NET을 사용합니다. 모든 플랫폼에는 장단점이 있기 때문입니다. 응용 프로그램이 수행하는 작업의 실행 속도는 중요하지만 결국 언어의 좁은 측면 중 하나의 실행 성능이 중요한 경우입니다. 그때 나는 여전히 모든 것을 위해 어셈블러 언어를 사용하고있을 것입니다.



-5

루비는 개발자 생산성을 위해 잘 수행합니다. 루비는 본질적으로 유형이 없기 때문에 테스트 주도 개발을 강요합니다. Ruby는 C 라이브러리를위한 고급 래퍼로 사용될 때 성능이 우수합니다. Ruby는 JVM 또는 Rbx VM을 통해 머신 코드로 JIT 컴파일 될 때 장기 실행 프로세스에서도 잘 수행됩니다. 순수한 루비 코드로 짧은 시간 내에 숫자를 크런치해야하는 경우 Ruby가 제대로 작동하지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.