2014-02-10 2 views
0

로그인하는 동안 파일 이름으로 세션 변수를 채우는 PHP 사이트가 있습니다. 사용자가 특정 페이지를 가져 오면이 파일에 포함 된 데이터가 페이지에 포함됩니다.PHP로 실행()

성능 측면에서 더 나은 방법이 있습니까? 세션 배열 자체에 파일 데이터를로드하는 것에 대해 생각하고 있었지만 어떤 차이가 있는지 확실하지 않았습니다.

foreach($_SESSION['windows'] as $file) 
{ 
    include("$file"); 
} 
+0

성능에 대해 알고 계십니까? 왜이 특정 장소를 최적화해야한다고 생각하십니까? – zerkms

+0

정말 느린 방법으로로드되는 수만 개의 파일 이름이 없으면 (예 : 전체 원시 파일 시스템을 루핑하는 방식을 통해) 또는 수백만 페이지 뷰가있는 경우 성능은 내가 상상할 수 없을 정도로 작기 때문에 테스트하기에 충분할 정도로 중요한 시나리오. – BrianHall

+0

전적으로 귀하의 파일의 데이터가 어떻게 생겼는지에 달려 있습니다. 저장된 파일에 대한 포인터 (파일 경로)를 가지고 특정 시점에 필요한 데이터에만 액세스하기 위해 파일 핸들러를 사용하여 지능적으로 액세스하는 것이 더 나을 수도 있습니다. 어떤 방법 으로든 모든 것을로드하는 것은 낭비입니다. –

답변

0

변수를 큰 따옴표로 묶지 않으면 성능을 향상시킬 수 있습니다.

include($file); 

그 외에도 세션에 코드 파일 이름을 저장할 필요가 있다는 점에 의문점이 있습니다. 그러나 이것은 어쨌든 의미가 있습니다.

최적의 성능을 위해 opcode 캐시를 사용해야합니다. include($var) 또는 include('filename.php')을 사용할 때 실제 차이점은 없습니다.

+0

로드 된 파일에 대한 사전 지식없이 어떻게 질문에 대답 할 수 있습니까? 파일이 몇 킬로바이트 (KiloBytes) 또는 100 메가 바이트 (MegaBytes)인지 알 수 없습니다.그가이 데이터를 사용하는 방법에 따라이 문제에서 매우 중요합니다. –

+0

@Allendar : 꽤 받아 들일 수있는 일반적인 답변입니다. 파일이 100MB이고 파일을 포함해야하는 경우 파일을 포함시켜야합니다. 그리고, 아니, "어떻게 그가 그 데이터를 사용하기를 원 하느냐" – zerkms