2009-10-31 4 views
1

I/O를하는 라이브러리가 있습니다. 내부적으로 사용되는 메모리 버퍼의 크기를 조정하기위한 두 개의 외부 손잡이가 있습니다. 일부 테스트를 실행했을 때 버퍼의 크기가 성능에 큰 영향을 줄 수 있음을 발견했습니다.적응 형 또는 최적화 메모리 전략을 라이브러리에 포함시키는 것이 현실적입니까?

그러나 최적의 크기는 PC의 사용 가능한 메모리, 처리되는 파일의 크기 (매우 작음에서 매우 큰 것까지 다양 함), 파일 수, 입력 스트림에 상대적인 출력 스트림, 그리고 나는 그 밖의 무엇이 확실하지 않다.

적응 형 메모리 전략을 라이브러리에 구축하는 것이 합리적입니까? 아니면 그냥 펀트하는 것이 더 좋고, 도서관 이용자가 무엇을 사용해야하는지 알아낼 수있게 할 것인가?

누구나 이런 식으로 일한 적이 있습니까? 얼마나 힘들습니까? 작동 했나요?

다른 버퍼 크기가 주어지면 라이브러리는 다양한 작업에 소요되는 시간을 추적 할 수 있다고 가정하고 최적의 크기를 결정할 수 있다고 가정합니다. 라이브러리가 초기 I/O 라운드에서 다양한 버퍼 크기를 통해 회전하는 것을 상상할 수 있습니다. 그리고 나서 결국 계산을 수행하고 결과에 따라 향후 라운드에서 버퍼 크기를 조정합니다. 그런데 얼마나 자주 다시 확인해야합니까? 얼마나 자주 조정해야합니까?

+0

노인 용 버퍼입니다. 메모리 맵을 사용하십시오. – Jherico

답변

2

인간의 자율 신경계의 비유를 사용하여 적응 방식을 "자율 신경계"라고 부릅니다. 심박수와 호흡을 조심스럽게 조절하지 않아도 자율 신경계는 그렇게합니다.

당신이 here의 일부에 대한 읽을 수

here (플러그에 대한 사과,하지만 난 개념이 심각되고 있으며, 실제 제품에 명시되어 있음을 보여주고 싶었어요.) 사용

내 경험 이렇게하려고하는 제품은 실제로 작동하지만, 나를 불행하게 만들 수 있습니다. 즉, "아버지가 가장 잘 알고있는"방법을 사용하는 경향이 있기 때문입니다. 당신은 당신의 앱에 작은 변화 (또는 당신이 믿는다)를하거나, 환경과 예기치 않은 일이 일어난다. 당신은 왜 그런지 알지 못하며 그것이 좋은지 당신은 모른다. 그래서 자율성에 대한 내 규칙은 다음과 같습니다

지금 때때로 기본 수학은 매우 복잡 이유

당신이 무엇을하고 있는지 저와 에게 - 어떤 자율 시스템은 예측의 변화 동향 때문에 만드는 것을 고려 (이 유형의 요청 수가 늘어남에 따라 더 많은 리소스 X를 제공하자) 수학적 모델은 그리 중요하지 않다. 따라서 간단한 설명이 항상 사용 가능한 것은 아닙니다. 그러나 보는 인간에 대한 어떤 수준의 피드백은 안심할 수 있습니다.