La micro-performance, c'est :
C'est la réponse de beaucoup d'acteurs du web, surtout sur les grosses applications. Le cache c'est comme le parfum, ça sent bon seulement quand on dose bien.
La prochaine fois que vous croiserez quelqu'un du service compta, je ne pourrai plus rien pour vous.
Mais après tout...
$conn = $this->getEntityManager()->getConnection();
$qb = $conn->createQueryBuilder();
$qb->select("o.type")
->from("organization__organization", "o")
->where("o.{$column}=:organization_property");
$qb->setParameter("organization_property", $value);
$type = $qb->execute()->fetch();
$type = $this
->getEntityManager()
->getConnection()
->createQueryBuilder()
->select("o.type")
->from("organization__organization", "o")
->where("o.{$column}=:organization_property")
->setParameter("organization_property", $value)
->execute()
->fetch()
;
Comment ça fonctionne ?
Le moteur Zend utilise une unité de mémoire, la Zval. Elle contient :
class ParentTest {
protected $child;
public function __construct(){
$this->child = new ChildTest($this);
}
}
class ChildTest {
protected $parent;
public function __construct(ParentTest $parent) {
$this->parent = $parent;
}
}
class ParentTest {
// ...
public function __destruct(){
unset($this->child);
}
}
class ChildTest {
// ...
public function __destruct() {
unset($this->parent);
}
}
function recursiveFunction($i) {
$object = new HeavyObject();
// Opérations sur $object
if($i % 10000 === 0) {
echo memory_get_usage() . '<br>';
}
if($i < 100000) {
$i++;
recursiveFunction($i);
}
}
801600
12230496
23724864
34170656
46713600
57683208
68129000
82769096
93214888
104184496