2009-02-25 4 views
0

PHP를 사용하여 LaTeX를 CMS의 일부로 png에 렌더링하는 경우 서버에 2 초 정도 걸리므로 간단한 캐싱 메커니즘이 필요합니다. 원시 TeX를 가져 와서 md5 함수를 통해 실행하면 현재 타임 스탬프와 함께 해시를 데이터베이스에 삽입하고 < 해시 > .png를 파일 이름으로 사용합니다. 이미지에 액세스 할 때마다 타임 스탬프가 업데이트됩니다.이것은 합리적인 캐싱 방법입니까?

+0

PNG를 너무 길게 렌더링하는 데 2 ​​초가 걸리는 이유는 무엇입니까? – staticsan

+0

페이지에 여러 개가 있으면로드하는 데 오래 걸릴 수 있습니다. – GameFreak

+0

@staticsan : ... * * *? 2 초 전체가 너무 길지 않아? –

답변

0

흠, 좋은 접근 방법이라고 생각합니다.하지만 해시하기 전에 LaTeX에서 추가 처리를하고 싶을 것입니다. 그렇지 않으면, 공백 (그리고 당신의 입력 방법에 따라 잠재적으로 주석 및 다른 것들)의 변화는 다른 해시를 초래할 것이다.

또한 타임 스탬프를 업데이트하는 목적은 무엇입니까? 오랫동안 액세스되지 않은 PNG를 제거하는 일괄 처리 방법의 일부로?

+0

타임 스탬프 사용에 대한 나의 의도가 맞습니다. – GameFreak

1

괜찮습니다. .png의 이름을 변경할 수 있다면 데이터베이스 ID 또는 해시 자체를 변경하여 이미지를 클라이언트 측에서 캐시 할 수도 있습니다.

+0

파일 이름은 IS입니다. – GameFreak

+0

당신은 질문에 그것을 나타내지 않았습니다. –

+0

그래, 문제가 생겼어. 질문에 .png를 입력했지만 은 HTML 태그로 해석되어 게시물에서 제거되었습니다. 나는 지금 가서 고칠 것이다. – GameFreak

2

이 시나리오에서는 디스크의 임시 디렉터리를 사용하는 것을 선호합니다. 요청에

:

if the file doesn't exist 
    render it to the file 
fpassthru() the file from disk 
+0

캐시 재생성 제어를 위해 파일의 타임 스탬프를 사용할 수 있습니다. – sfossen

0

그들이 렌더링 된 한 이후의 변경 수 .PNG, 내가 .PNG이 (확인 스레드를 업데이트 될 때마다 관찰의 일종을 사용하여 해당를 차지한다 또한 당신을 생각하면, 마지막으로 수정 한 키 또는 다른 것을 업데이트하는 메서드 설정)

관련 문제