간단한 쿼리를 수행하기 위해 XSL을 사용하여 Filemaker 데이터베이스에서 데이터를로드하는 ASP 프론트 엔드가 있습니다. 문제는 첫 번째 페이지로드에 20 초 +/- 200ms가 걸린 다음 첫 번째 요청에서 1 분 이내에 다음 몇 페이지를 새로 고침하면 < 200ms가 소요되고주기가 다시 시작됩니다.Filemaker XSL 20sec 쿼리 대기 시간
각 페이지로드는 첫 번째 페이지로드 이후 두 번만 수행하므로 두 번째 페이지로드 후에 지연이 발생합니다. 첫 번째 페이지로드가 지연되는 원인은 무엇입니까? 캐싱은 100 %의 히트 율과 100의 연결 수로 나타났습니다. 변경없이 XSL 데이터베이스 세션을 켜고 끄고 세션 시간을 1 분에서 60 분까지 시도했습니다.
ASP의 XSL로드는 GET 요청을 사용하고 매번 인증 할 기본 Authorization
헤더를 추가합니다. 빠른 페이지 요청시
는 fmserver.exe
및 fmswpc.exe
프로세스도 주저하지 않는다, 그러나 20초 정체하는 동안 나는 fmserver
점프 30 %의 CPU와 3메가바이트의 I/O는 요청에 몇 초를 읽어보고, 때때로 fmswpc
60 % CPU로 점프.
성능 향상을 위해 매번 스타일 시트를 구문 분석하는 대신 서비스처럼 실행되는 미리 컴파일 된 변환이 필요하다고 생각합니다 (캐시 메커니즘에 개선점이 있다고 생각합니다) –
문제는 스타일 시트의 구문 분석 시간이 아닙니다. 일부 페이지로드가 허용 가능한 시간 (200ms)으로 실행되기 때문입니다. 문제는 첫 번째 장소에서 스타일 시트를 만드는 데 약간의 대기 시간이 있다는 것입니다. 즉, 반환 된 XML을보기 위해 스타일 시트 URL을로드하려고 할 때 나는 여전히 20 초 지연됩니다. –
아마도 ASP 프레임 워크에 어떤 종류의 최적화가 있으며, 내가 작성한 것을 수행하고 있습니다. 컴파일 된 스타일 시트를 메모리에 보존하여 재사용 할 수 있습니다. 물론 자동 최적화는 메모리 누수 최적화로 인해 영원히 지속될 수 없습니다. 이 명백 함을 선언 할 수있는 방법이 있어야합니다. –