2011-02-17 5 views
1

매우 긴 파일 인 utilities.php가 있다고 가정 해 봅시다. utilities.php에는 웹 응용 프로그램에서 사용하는 모든 기능이 아닌 대부분의 기능이 들어 있습니다. 로드 된 모든 단일 페이지는이 파일을 포함하지만 그 중 일부 기능 만 활용할 수 있습니다.PHP에서 긴 함수 컬렉션을 포함하는 데 많은 오버 헤드가 있습니까?

이런 식으로 일하는 데 중요한 단점이 있습니까? 필자는 제공되는 기능 유형에 따라 파일을 여러 개로 나눌 수 있지만 성능 관점에서 볼 때 모든 것을 모든 페이지에 포함시키는 것은 좋지 않지만 필요한 것만 실행하면됩니까?

답변

5

솔직히 말하면 파일의 크기보다 코드의 유지 관리 가능성이 더 중요합니다. (코드베이스가 기능성에 기반하여 더 작은 파일들로 나눠지면 코드베이스가 더 쉽게 유지 될 것이라고 생각한다면 현명 할 것입니다.)

아무리 큰 사안이라도 상관 없지만, 운영 체제가 메모리 등 자주 사용되는 파일을 캐싱 할 가능성이 높습니다.

또한 파일이 너무 커져 성능 문제가 발생하면 훨씬 더 긴급한 코드가 발생할 수 있습니다 유지 보수 (로 파일을 관리하는 측면에서 많은 기능) 문제가 발생했을 때, 해당 기능을 자체 파일의 관련 청크로 나눌 수 있습니다.

그러나이 작업은 곧 필요하지 않을 가능성이 높습니다. 향후 속도가 느려지는 경우, 프로파일 링 도구 (예 : Xdebug)를 사용하여 문제를 정확히 파악하는 것이 좋습니다. 문제가 무엇인지 추측 할 수 있습니다.

0

아니요, 중요하지 않습니다.
성능 질문에 올 때 해결할 해결책이 있습니다.

+1

그리고 그 해결책은 무엇일까요? – Htbaa

+0

"실제 공연 질문"? – Chris

+0

@Chris 예. 따라서 실제 성능 문제가 아닌 가상의 what-ifs가됩니다. 그 차이가 보이니? –

2

PHP는 JIT 방식을 사용하지 않으므로 스크립트를 먼저 바이트 코드로 컴파일하므로 스크립트가 매우 큰 경우 약간의 시간이 걸릴 수 있습니다. 그러나 APC 또는 XCache와 같은 옵 코드 캐쉬를 사용할 때 첫 번째 히트에만 중요합니다. 이후의 히트가 이미 캐시 된 바이트 코드 버전을 사용합니다.

+0

JIT를 바이트 코드 캐시와 혼동하고 있습니다. – delnan

+0

? 나는 PHP가 JIT를하지 않지만 결과 바이트 코드 캐싱을 지원한다고 말했다. – Htbaa

관련 문제