Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Doctrine, wydajność -> duże projekty, Czy mimo wysokiego zapotrzebowania na pamieć warto używać Doctrine?
Sajrox
post
Post #1





Grupa: Zarejestrowani
Postów: 254
Pomógł: 7
Dołączył: 9.10.2007
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Witam,

Od kilku dni szukam coś o Doctrine oraz zastosowania tej biblioteki w dużych projektach.
Generalnie chodzi o to że Doctrine zużywa ponad 4 razy więcej pamięci niż użycie standardowych funkcji w php.

Na co dzień używam swojej własnej biblioteki do obsługi bazy danych z wykorzystaniem PDO i średnio zużycie pamięci wynosi około 1400 kb.
Po zainstalowaniu Doctrine zużycie pamięci przy jednym zapytaniu SELECT wzrosło do około 4500 kb.

Co o tym sądzicie, jak może to wpłynąć na duży projekt z dużym ruchem. Niestety 3 krotne zwiększenie zużycie pamięci może szybko spowodować że serwer może nie wyrobić.

Chciałbym się zapytać o wasze zdanie w tej sprawie, czy mimo tego Doctrone można śmiało używać w dużych projektach (także małych) bez zamartwiania się że serwer może nie dać rady ?

Wydaje mi się że przy np 1000 użytkownikach mogą być już problemy gdyż 4500 kb x 1000 = ok 4 GB.

Oczywiście wiem że można zastosować cachowanie, jednak tutaj chciałbym to wykluczyć i podyskutować o zastosowaniu Doctrone bez cache i innych dopalaczy.

Ciągle się wacham aby na stałe zacząć używać tej biblioteki.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Sajrox
post
Post #2





Grupa: Zarejestrowani
Postów: 254
Pomógł: 7
Dołączył: 9.10.2007
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Wracając do tematu to od wczoraj próbuję uruchomić memcache w projekcie używającego Doctrine. Myslę że czas najwyższy pomyśleć o cache (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Robię to na localhoście jednak bez skutku (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

Mój kod 

  1. <?php
  2. $servers = array(
  3.        'host' => 'localhost',
  4.        'port' => 11211,
  5.        'persistent' => true
  6.    );
  7.  
  8.    $cacheDriver = new Doctrine_Cache_Memcache(array(
  9.            'servers' => $servers,
  10.            'compression' => false
  11.        )
  12.    );
  13.  
  14.    $conn->setAttribute(Doctrine::ATTR_QUERY_CACHE, $cacheDriver);    
  15.    $conn->setAttribute(Doctrine::ATTR_RESULT_CACHE, $cacheDriver);
  16.    
  17.  
  18. $q = Doctrine_Query::create();
  19.    $q->from('Aktualnosci')->useResultCache(true);
  20.    $rows = $q->execute();    
  21. print_r($rows->toArray());
  22. ?>



Wywala błąd:

Notice: Memcache::get() [memcache.get]:Server localhost (tcp 11211) failed with: Próba połšczenia nie powiodłasię, ponieważ połšczona strona nie odpowiedziała poprawnie po ustalonymokresie czasu lub utworzone połšczenie nie powiodło się, ponieważpołšczony host nie odpowiedział. (10060) in C:\wamp\www\FRAMEWORK 7\Lib\Doctrine\Cache\Memcache.php on line 83



Dodam że błąd raz jest raz go nie ma.
Na localu właczyłem obsługę memcache bez skutku.


Chciałbym też zapytać się czy jest jakaś mozliwość sprawdzenia cze memcahce działa poprawnie czy wyniki faktycznie są pobierane z cache.

Ewentualnie gdyby ktoś miłą inny system cache do zaproponowania to czekam na sugestie np. jak korzystać z SqLite cache.  Może jakiś przykład kodu ? Na pewno się przyda  (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował Sajrox 31.07.2009, 10:19:23
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 27.12.2025 - 00:24