我正在分析我的代碼在php中。一個問題是關於未來的功能:php。爲什麼功能的運行時間很大?
// returns true if edge exists in the tree
protected function edgeExist($srcNodeId, $firstToken) {
$result = array_key_exists($srcNodeId, $this->edges)
&& array_key_exists($firstToken, $this->edges[$srcNodeId]);
return $result;
}
根據探查,功能edgeExist
消耗的運行時間的10%左右,但功能array_key_exists
消耗的運行時間約0.2%。 爲什麼功能edgeExist
消耗這麼多?使用array_key_exists()
和isset()
當
protected function edgeExist($srcNodeId, $firstToken) {
return isset($this->edges[$srcNodeId][$firstToken]);
}
有一個小的差異:
嘗試使用'isset',它可以* *是不是'array_key_exists'更快。例如'$ result = isset($ srcNodeId [$ this-> edges])&& isset($ firstToken [$ this - > $ this-> edges [$ srcNodeId]]);'。 – 2012-07-11 22:54:27
但無論如何'array_key_exists'足夠快,它消耗0.2%的運行時間。我無法理解爲什麼'edgeExist'消耗這麼多。 – ashim 2012-07-11 22:57:44