나는뿐만 아니라 Neo4j Google 그룹에 질문을 본 당신은 PHP의 실행 시간을 측정하는 경우 대신 [앤]를
에코 $ 행을 사용하여 수 있는지 물었다
-> getProperty에 ('이름'). "\엔";.
당신은
인 print_r ($ 결과)를 사용;
이유를 설명해 드리겠습니다. Neo4j와 PHP로 게임을 시작했을 때 PHP의 속도면에서 약간의 우려가있었습니다. 이렇게 문제를 재현했습니다. 먼저 200 개의 랜덤 노드를 만들었습니다. 각 노드에는 레이블, 10 개의 등록 정보가 있으며 각 등록 정보에는 10 자의 값이 있습니다. 이것은 제가 사용하는 스크립트입니다.
for ($x=1; $x<=200; $x++)
{
$queryString = "CREATE (n:User { name : '".substr(md5(rand()), 0, 10)."' , city : '".substr(md5(rand()), 0, 10)."' , date : '".substr(md5(rand()), 0, 10)."', age : '".substr(md5(rand()), 0, 10)."', country : '".substr(md5(rand()), 0, 10)."', language : '".substr(md5(rand()), 0, 10)."', origin : '".substr(md5(rand()), 0, 10)."', preference : '".substr(md5(rand()), 0, 10)."', color : '".substr(md5(rand()), 0, 10)."', graduate : '".substr(md5(rand()), 0, 10)."'})";
$query = new Everyman\Neo4j\Cypher\Query($client, $queryString);
$result = $query->getResultSet();
}
당신이
foreach ($result as $row) {
echo $row['n']->getProperty('name') . "\n";
}
을했고,이 코드 (200 개) 내가으로 WebAdmin 모두에있어 노드와 함께
$time_start = microtime(true);
$queryString = "MATCH (n) RETURN n";
$query = new Everyman\Neo4j\Cypher\Query($client, $queryString);
$result = $query->getResultSet();
foreach ($result as $row) {
echo $row['n']->getProperty('name') . "\n";
}
$time_end = microtime(true);
$execution_time = ($time_end - $time_start)*1000;
//execution time of the script
echo '<b>Total Execution Time:</b> '.$execution_time.' ms';
를 사용하여 실행 시간을 측정처럼 나는 결과를 얻은 foreach 루프를 사용하여 PHP는 약 85ms. 데이터의 양이 정확한 결과를 얻기에 충분하지 않기 때문에 노드를 500으로 늘 렸습니다. 시간 실행은 webadmin과 PHP 스크립트 모두 115ms까지 올라갔습니다. 내 노드를 2000으로 늘리는 데는 200ms의 실행 시간이 있었지만 webadmin과 PHP 사이에는 큰 차이가 없었다. 마지막으로 노드 수를 10000 개로 늘 렸습니다. 이제 결과가 나타납니다. Webadmin은 1020ms에 10000 개의 노드를 반환합니다. PHP는 너무 느립니다.
총 실행 시간 : 1635.6329917908 MS
나는 이것이 내가 기대하지 생각합니다. 대신 $ 행을 사용하는 [ 'x'를] 방법 나는 결과를 인 print_r와 시간이
에 총 실행 시간 증가 :
그래서 나는 모든 속성을 인쇄 할 수 있습니다 생각 2452.4049758911 밀리 화면을 표시하지만 노드와 카운트 (n)를 반환하고 "1"이 될 각각의 카운트를 인쇄하면 무엇을 가지고 있는지 확인하십시오.
$queryString = "MATCH (n) RETURN n AS n, count(n) AS x";
$query = new Everyman\Neo4j\Cypher\Query($client, $queryString);
$result = $query->getResultSet();
foreach ($result as $row) {
echo $row['x'];
}
위 코드의 결과는 다음과 같습니다.
1111111111111111111111 ...... 총 실행 시간 : 당신이 (10000 개 노드 I (60) 생각하지 않습니다 PHP를 볼 수 있으며, 같은 시간에 10000 개 결과를 반환으로 WebAdmin으로 1084.1178894043 MS
ms는 큰 차이가 있습니다.) 그리고 내 큰 대답을 결론 지으면서 : php와 Neo4j에서 많은 양의 데이터를 검색 할 시간이 없지만 PHP에서이 데이터를 브라우저에 렌더링하는 데 많은 시간이 필요합니다.
매개 변수는 무엇을 의미합니까? 당신은 내가 그것에 대해 읽을 수있는 링크를 공유 할 수 있습니까? 감사 – user609306