Doktrin tembel yükleme sınıfları 100 ms sürer?

2 Cevap php

Web siteme benim Doktrin Sınıfları yüklerken tembelim. Kıyaslama Doctrine::loadModels('models') tamamlamak için 100 ms aldığını gösterdi! Ben toplam 118 tablolar var, ama yine de ...

muhafazakar yükleme niteliğini ayarlayarak:

Doctrine_Manager::getInstance()->setAttribute(Doctrine::ATTR_MODEL_LOADING, Doctrine::MODEL_LOADING_CONSERVATIVE);

kriter parçası çalışan:

$CI->benchmark->mark('Doctrineload_start');
Doctrine::loadModels(APPPATH.'models');
$CI->benchmark->mark('Doctrineload_end');

Ve sonuç:

Doctrineload    0.1085 (seconds)

Is this 'normal'?

'Bağlam':

Loading Time Base Classes   0.0233
Doctrineinit    0.0435  //doctrine_pi.php file, doctrine configuration + db account
Doctrineload    0.1085
Masterpageset   0.0001
Userload    0.1208 //1 db query
Masterpageaddcontent    0.1565 //1 db query, loading view with some <?=?> php parsing
Masterpageshow      0.0203 //loading view
Controller Execution Time ( Home / Index )      0.3591
Total Execution Time    0.3826

2 Cevap

Eğer APC veya xcache gibi bir opcode önbellek sistemi kullanıyor musunuz? Eğer değilse, bir yüklemeyi düşünmelisiniz. Büyük çerçeveler ve Doktrin gibi kütüphaneleri kullanırken dramatik bir iyileşme göreceksiniz. PHP tepki oluşturmak için gerekli tüm dosyaları yeniden derleme her istek üzerine bir zaman non-önemsiz miktarda harcıyor. Bir opcode önbellek kullanılarak önemli ölçüde bu yükü azaltacaktır.

APC, kendi bakıcılarına Rasmus Lerdorf kendisi ise, sonunda PHP kapsamına alınması için bir aday, ve çok popüler bir sistem olarak görünüyor. Bkz: http://pecl.php.net/package/APC

XCache lighttpd yaratıcısı tarafından yazılmış ve ben bir süre kullanmış olmama rağmen bu, oldukça uygun bir seçenek gibi görünüyor. Bkz: http://xcache.lighttpd.net/

Akılda, Doktrin derleme Sadece sana kaynak kodu ayrıştırmak için PHP yorumlayıcısı için gereken süreyi azaltacaktır orijinal php dosyaların daha kompakt bir versiyonunu veriyor ayı. Bu baytkoduna çevirmek değildir. Yani bytekod önbellek hala değer bir sürü eklemek için gidiyor.