2010-02-05 3 views
8

스레딩에 크게 의존하는 앱을 개발할 수 있습니다 (최대 200 개). 나는 JRuby 같은 쓰레딩을 위해 다른 Ruby 인터프리터를 사용할 수 있다는 것을 알고있다. 하지만 두 가지가 있습니다 :루비 스레드를 사용해야합니까, 아니면 스레딩에 루비를 사용하지 않을까요?

1) Jruby는 아직 1.9를 지원하지 않으므로 아니오입니다. 루비를 사용할 경우 적어도 1.9 이상을 지원하는 다른 비 초록색 인터프리터가 필요합니다.

2) Jruby와 같은 인터프리터를 사용하는 경우에도 실제로 자바에서 얻을 수있는 적절한 스레드 성능을 얻을 수 있습니까? 아마도이 응용 프로그램에 Java를 사용해야합니다.

참고 : 주관적인 토론이 아닙니다. 스레드 성능에 관한 조언입니다. 또한, 이것은 Java vs Ruby 또는 그와 유사한 것이 아닙니다. 나는 루비에게 새로운 것이고, 내 자신의 이익을 위해 이것을 정리하기를 희망한다.

+0

JRuby 스레드가 JVM 스레드에 직접 매핑되었다고 생각했습니다. 사실이라면 JRuby가 "1.9"가 아니더라도 네이티브 쓰레드를 사용해야합니다 (JVM이 네이티브 쓰레드를 사용한다면). 오, 그리고 당신의 응용 프로그램이하고있는 것에 대한 아이디어를 줄 수 있습니까? 때로는 생각지 못한 스레드에 대한 대안이 있습니다. –

+0

네트워크 I/O/Http. JMeter와 비슷합니다. 각 스레드는 그 이유 때문에 작성됩니다. 성능이 매우 중요합니다. 그래서 루비에서 프로그래밍하고 싶습니다.이 프로젝트를 위해서라면 할 수 있습니다. – Zombies

+0

측면 문제 : 200 스레드? 그래서 당신은 200 개의 핵심 기계를 가지고 있습니까? 시원한. –

답변

6

정말 벤치마킹해야합니다.

스레드가 많은 동시 계산을 수행 할 예정입니까? 그렇다면 원시 스레드가 필요합니다. 하지만 항상 IO를 기다리고 있다면 Ruby의 녹색 스레드가 괜찮을 수도 있습니다.

이 조언을하더라도, 작은 테스트 프로그램을 작성하고 간단한 방법 (Ruby 1.9 만 사용)이 작동하는지 확인해야합니다.

+0

시간을 좀 벌면 결과를 다시 게시 해 보겠습니다. – Zombies

관련 문제