무지개 문제

4962 단어 async_sinatra

묘사

무지개가 생겼어요. 이 실수를 받았어요.
NoMethodError: 정의되지 않은 방법each' for "hello async":String /Users/Francesco/.rvm/gems/ruby-1.9.2-p0/gems/rainbows-2.0.1/lib/rainbows/response/body.rb:118:in 쓰기 body each'
/사용자/Francesco/rvm/gems/ruby-1.9.2-p0/gems/rainbows-2.0.1/lib/rainbows/event_machine.rb:149:inem_write_response' /Users/Francesco/.rvm/gems/ruby-1.9.2-p0/gems/async_sinatra-0.3.0/lib/sinatra/async.rb:80:in[]
/사용자/Francesco/rvm/gems/ruby-1.9.2-p0/gems/async_sinatra-0.3.0/lib/sinatra/async.rb:80:in'body'
이 구성을 사용하려면 다음과 같이 하십시오.
임금제
무지개하다
사용예: EventMachine
일꾼 연락처 100
end

토론 #1

rack spec 설명은 응답 #마다 문자열을 생성하는 주체를 되돌려야 합니다.
살이 빠지면 벌을 면할 수 있지만 무지개는 안 된다.
기술적으로는 랙 사양을 위반했지만 기술적으로는 가능한 일반적인 규칙을 준수해야 합니다.

토론 #2

그런데 async sinatra를 수정해야 합니까?

토론 #셋

아니, 너는 단지:body ['hello world']

토론 #4

thin과rainbows로 이벤트machine에서 이 코드로 기준 테스트를 해 주셔서 감사합니다.
클래스 AsyncTestSinatra::Async 등록
활성화:예외 표시
/test sync do 가져오기
"프로바"
끝맺다
aget'/test_async'do
본문 {"prova async"}
끝맺다
끝맺다
레인보우와 4개의worker 프로세스를 통해 획득:
초당 요청 횟수: 805.41#/sec
요청당 시간: 124.16ms
요청당 시간: 1.24ms
전송 속도: 95.10KB/sec로 수신
나는 마른 일꾼과
초당 요청 횟수: 1747.95 #/sec
요청 시간: 57.21 ms
요청당 시간: 0.57ms
전송 속도: 초당 183.53KB로 수신
이게 어떻게 가능하지?'얇다'와'무지개'는 이벤트machine과 어떤 차이가 있습니까?저도 시험이 있어요.
일꾼 한 명의 무지개가 있는데, 일꾼 한 명의 무지개는 정말 빠르다.
무지개.
노동자
무지개하다
사용예: EventMachine
일꾼 연락처 400
고객 최대 차체 사이즈 0
keepalive 시간 초과 0
끝맺다
ab-n 10000-c 100http://localhost:8080/test_async
ApacheBench, 1.3d 버전 <$Revision:1.73$>apache-1.3
판권소유(c)1996 아담 테비스, 제우스과학기술유한공사,http://www.zeustech.net/
저작권 소유 (c) 2006 Apache 소프트웨어 재단,http://www.apache.org/
로컬 호스트에 대한 벤치마크 테스트(기다림)
1000개 요청 완료
2000개 요청 완료
3000개 요청 완료
4000개 요청 완료
5000개 요청 완료
6000개 요청 완료
7000개 요청 완료
8000개 요청 완료
9000개 요청 완료
10000개 요청 완료
서버 소프트웨어:
서버 호스트 이름: localhost
서버 포트: 8080
문서 경로:/test\u async
파일 길이: 11바이트
동시 사용 가능: 100
테스트 시간: 12.416초
요청 완료: 10000
실패한 요청: 0
연결 해제된 파이프 오류: 0
총 전송: 1180708바이트
전송된 HTML: 110066바이트
초당 요청 횟수: 805.41#/sec
요청당 시간: 124.16ms
요청당 시간: 1.24ms
전송 속도: 95.10KB/sec로 수신
연결 횟수(ms)
최소 평균치 [+/-sd] 최대 중간값
연결: 0 1 2.8 0 66
처리: 2 122 40.3 115 367
대기 시간: 0 122 40.3 115 367
총수:21240.0116367
특정 시간 동안 받은 요청의 백분율(ms)
50% 116
66% 130
75% 141
80% 148
90% 172
95% 199
98% 241
99% 263
100%367(마지막 요청)
희박했어
ab-n 10000-c 100http://localhost:3000/test_async
ApacheBench, 1.3d 버전 <$Revision:1.73$>apache-1.3
판권소유(c)1996 아담 테비스, 제우스과학기술유한공사,http://www.zeustech.net/
저작권 소유 (c) 2006 Apache 소프트웨어 재단,http://www.apache.org/
로컬 호스트에 대한 벤치마크 테스트(기다림)
1000개 요청 완료
2000개 요청 완료
3000개 요청 완료
4000개 요청 완료
5000개 요청 완료
6000개 요청 완료
7000개 요청 완료
8000개 요청 완료
9000개 요청 완료
10000개 요청 완료
서버 소프트웨어:씬
서버 호스트 이름: localhost
서버 포트: 3000
문서 경로:/test\u async
파일 길이: 11바이트
동시 사용 가능: 100
테스트 시간: 5.721초
요청 완료: 10000
실패한 요청: 0
연결 해제된 파이프 오류: 0
총 전송: 1050000바이트
전송된 HTML: 1100바이트
초당 요청 횟수: 1747.95 #/sec
요청 시간: 57.21 ms
요청당 시간: 0.57ms
전송 속도: 초당 183.53KB로 수신
연결 횟수(ms)
최소 평균치 [+/-sd] 최대 중간값
연결: 01 0.9 0 14
처리: 225631.245211
대기 시간: 175531.345211
총수:225631.346211
특정 시간 동안 받은 요청의 백분율(ms)
50% 46
66% 48
75% 51
80% 57
90% 74
95% 166
98% 175
99% 187
100% 211 (마지막 요청)

토론 #5

레인보우의 연결 설정 전 시간은 훨씬 높고 표준 편차도 훨씬 높을 것 같습니다.이는 이벤트machines C++와 반대로 순수한 루비 코드에서 실행되는 IO의 수가 많기 때문일 수 있지만 코드를 분석하지 않은 것은 순전히 가설이다.
또한 삼복량이 훨씬 낮아 MRI와 이벤트machine 사이의 원시 IO 성능 차이에 대해'정상적'이다.

토론 #6

네, 고맙습니다.

좋은 웹페이지 즐겨찾기