2017-11-29 19 views
0

항목이 인 다양한 시스템이 있습니다. 초당 1 또는 초당 100이 될 수 있습니다 (또는 그 이상).항목 수에 따라 새로 고침 빈도 계산

그러면 모든 화면을 새로 고침 할 때마다 X 항목 (약 10 개)을 표시해야하는 페이지가 있습니다.

예를 들어 시스템이 초당 1 개의 항목을 생성하는 경우 항목을 가져 오는 데 가장 좋은 새로 고침 빈도는 10 초입니다.

내가 필요로하는 것은 다음의 데이터를 기반으로 가장 좋은 비율을 계산하는 방법입니다. 따라서 다음 번 새로 고침 할 때 내가 찾고있는 번호와 관련된 항목을 많이 얻을 수 있습니다.

물론 이것은 완벽하지 않을 것입니다 (정보가 폭발적으로 많으면 원본 10보다 훨씬 많은 항목을 검색 할 수 있지만 중요하지는 않습니다).

아이디어는 한 번에 하나 또는 두 개의 항목을 표시하는 것이 생산적이지 않기 때문에 데이터를 과도하게 가져 오는 것이 아니라 한 번에 100 개의 항목이 유용하지 않기 때문에 오랜 시간 동안 시스템이 잠자기 상태가되지 않도록하기위한 것입니다.

알고리즘에 대한 아이디어가 있습니까?

답변

0

이미 알고리즘이 있으므로 게시물에 잘 설명되어 있습니다.

요금에 이전 데이터가없는 경우 ... 초당받는 항목 수를 계산하고 (X) 총계 (T)를 X로 나눠 Y를 얻습니다. 이제 요금은 Y입니다. 초. 비율을 계산하는 동안 통과하는 초마다 이전 Y에 새 Y를 더하고 평균 2 인 (평균), 즉 새 비율 (Y 초)로 나눕니다. 이제 T 또는 T 항목을받은 후 초당 요금을 저장할 수 있습니다.

이전 데이터가있는 경우 마지막 Y 값을 이전에 저장된 비율로 설정 한 다음 위의 방법으로 계속하십시오.

+0

나는 당신을 쫓고 있는지 잘 모르겠다. 위의 예제를 사용하여 첫 번째 항목에 50 개 항목이 있다고 가정 해 봅시다. 이것이 첫 번째 가져 오기이기 때문에 1 초 만에 그 값을 얻었다고 가정해야합니다 (단순화하기 위해 0은 사용할 수 없습니다. 0은 분모에 없기 때문에). 나의 총계가 10 인 경우에, 나의 새로운 비율은 10/50이어야한다. 1 초도 안되는 간격으로 가져오고 싶지 않으므로 두 번째 가져 오기는 첫 번째 가져 오기 바로 1 초 후에 수행됩니다. 두 번째 가져 오기, 나는 5 항목을 얻습니다. 이제 (10/5 + 10/50)/2를 사용해야한다고 말합니까? – CheloXL

+0

합계가 10이지만 50 개 항목을 얻으면 문제가 발생합니다. 예, 매초마다 얻는 항목의 수를 계산 한 다음 계속해서 평균을 구합니다. –