문제

스토리지를 위해 SimpleDB와 Tokyo 폭군의 조합을 사용하는 MERB 응용 프로그램을 코딩하고 있습니다. 내가 구현하고있는이 두 데이터 저장소 모두에 대해 (목록) 각 값에 대한 스레드를 회전시켜 유형 기능 목록 그런 다음 결과 세트를 병합합니다. 이것은 웹 응용 프로그램이라는 점을 염두에두고, 내가 만들어야 할 스레드 수에 제한이 있습니까? 루비 1.8.7이므로 커널 스레드가 아닙니다.

도움이 되었습니까?

해결책

스레드는 여기서하려는 일에 대한 나쁜 접근 방식처럼 보이며 Jruby를 사용할 수 없다면 스레드를 완전히 떨어 뜨립니다. 그러나 데이터베이스를로드하는 루비 파일을 만들고 벤치 마크 라이브러리 가장 빠른 숫자에 대한 일부 벤치마킹을 수행합니다. 당신은 아마도 사용 된 기억을보고 싶을 것입니다.

다른 팁

나에게 당신의 문제는 io 묶인 것처럼 들리므로 단일 코어를 멀리 스레딩하면 도움이 될 수 있습니다.

주요 루비 루프에서 대부분의 시간은 아마도 별도의 멀티 스레드 프로세스로 실행되는 도쿄 폭군과 간단한 DB를 기다릴 것입니다.

그래서 얼마나 많은 스레드? 누가 알아? 당신은해야 할 것입니다 벤치 마크 및 측정.

MRI를 사용하는 경우 MRI가 계산 작업과 관련하여 도움이되지 않는 녹색 스레드를 사용하므로 이러한 경우에 스레드를 사용하는 것은 큰 도움이되지 않습니다. Jruby (기본 스레드)를 사용하는 것이 도움이 될 것이라고 생각합니다. 나는 기본 스레드의 경우 사용 가능한 코어를 사용하기 위해 사용하는 것이 가장 좋습니다 (코어 수 + 1).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top