캐쉬라면 어떤 캐쉬를 말하시나요?
시피유의 캐쉬이나요? 아니면 운영체제가 관리하는 캐쉬이나요?
일반적으로 캐쉬를 날리는 방법은 유저레벨에서는 존재하지 않습니다.
윗분이 말씀하신 fflush는 캐쉬가 아니라 버퍼이지요..
-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.
-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.
man fflush
man fflush
개발자들의 궁극적 비전은 ?
캐쉬라면 어떤
캐쉬라면 어떤 캐쉬를 말하시나요?
시피유의 캐쉬이나요? 아니면 운영체제가 관리하는 캐쉬이나요?
일반적으로 캐쉬를 날리는 방법은 유저레벨에서는 존재하지 않습니다.
윗분이 말씀하신 fflush는 캐쉬가 아니라 버퍼이지요..
-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.
-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.
혹시 cache를 날릴
혹시 cache를 날릴 필요성을 느끼는 게, 멀티미디어 어플리케이션 같은 곳에서 데이터를 한번만 읽고 버릴 건데 얘들이 계속 OS disk cache에 쌓여서 성능 저하가 발생하는 경우인가요?
그렇다면 man open해서 O_DIRECT를 찾아보세요.
그게 아니고 (DB와 비슷한 이유로) 현재 메모리에 있는 dirty copy를 반드시 디스크에 내려야 하겠다는 경우라면 man 2 sync, man 2 fsync를 해보세요.
이것도 저것도 아니라면 좀 더 구체적으로 질문을 해주세요. :P
cpu의 인스트럭션
cpu의 인스트럭션 캐시를 날리고 싶다면 cacheflush라는 시스템 콜을 쓰면 됩니다만, 일부 아키텍쳐에서만 사용할 수 있습니다.
x86의 경우에는 저런 시스템콜은 없으며 원래 필요없다고 하네요. (mono의 jit 구현인 mini의 소스를 보시면 참조가 될듯 합니다.)
커널의 캐시들을 날리고 싶다면 http://linux-mm.org/Drop_Caches 를 참조하세요. (물론 root권한이 필요합니다.)
파일 시스템 상에서 캐시를 날리고 싶다면 윗분들께서 언급한 것 처럼 sync나 fsync를 사용하면 됩니다.
----
데스크탑 프로그래머를 꿈꾸는 임베디드 삽질러
----
데스크탑 프로그래머를 꿈꾸는 임베디드 삽질러
댓글 달기