ďťż
Podstrony
|
telcocafeGdzie lepiej przechowywać opcje (ustawienia)? W osobnych zmiennych, czy tablicach? Co jest szybsze?Nawet wygodniej byłoby to w tablicy trzymać. W ostatnim KŚE pisali, że im mniej zmiennych, tym szybciej. Jeśli tą zmienną będzie tablica asoacyjna z wieloma wartościami, wyszukiwanie odpowiednich zmiennych będzie szybsze? Co jest szybsze/wydajniejsze? Stałe, czy tablice? (patrz niżej) PHP-Fusion przechowuje teksty językowe w stałych. W F3CMS zacząłem przechowywać je w tablicach tekstowych $lang (np. $lang['art']). I jeszcze drugie - czy ustawienia powinny być przechowywane w plikach konfiguracyjnych, czy w bazie? (chodzi o szybkość) Użytkownik Ferrari edytował ten post 07 czerwiec 2005, 15:51 Ja mam tablice dla poszczególnych modułów a np. panel admina ma langi globalne oparte na bazie (includowanie 50 plików langów każdego z modułów by pobrać ich nazwy dla panelu admina to za dużoooo) Baza ma pola: klucz, lang gdzie w kluczu podaje unikalną frazę np. news_add a w lang array('Polish' => 'Dodaj newsa', 'English' => 'Add news'); :) Generalnie na bazie byłoby szybsze od plików, lecz jest to trudniejsze do zarządzania przy dużej ilości wpisów etc. konfigurację strony mam w bazie - klucz/wpis gdzie wpis zawiera tablicę asocjacyjną :) tak samo jak globalne langi... Jak zależy ci na szybkości to zainstaluj sobie do serwera XDEBUG (www.xdebug.org) pod Windą to XAMPP i EasyPHP powinny przyjąć... pod Linuxem Debian i gentoo mają to w bazie pakietów, dla reszty "ręcznie" O XDEBUG - notka, opisuję starszą wersję... zobacz co tam na stronie projektu piszą o instalacji bierzącej Coś nie tak z tym xDebug. W starszej wersji woła mi jakiś plik z PHP4. W nowszej wersji nie działają funkcje, np. xdebug_start_profiling(), ale rozszerzenie działa. po windowsem też mi się coś... ale pod gentoo idzie. Spróbuj dobrać np. wersję Easyphp do xdebuga :) Użytkownik Riklaunim edytował ten post 08 czerwiec 2005, 17:53 Nie lepiej sprawdzić obie opcje?? Korzystam z WinCacheGrid, który odczytuje i pokazuje graficznie w postaci drzewa i folderów czas wykonywania się poszczególnych funkcji, zapisanych przez xDebug do pliku. Count() przy każdej pętli FOR - większy czas... nawet mały kawałek kodu z przypisywaniem zmiennych może spowolnić wykonywanie. Łączenie z SQLem też trochę trwa. Jest jakieś polecenie do wydania SQLowi polecenia i nie pobierania w ogóle wyniku? F3CMS nie dorównuje pod względem szybkości PHP-Fusion. I tu nasuwa się pytanie. Czy nie lepiej byłoby zrobić tak, jak w tym CMSie (podział na news.php, downloads.php, itp...)? Oczywiście nazwy takie same nie muszą być. W F3CMS każda strona otwiera się z index.php i z niego dołączane są odpowiednie pliki. Możliwe, że przy podziale jak w PHP-Fusion jest optymalniej. Jak wg. was będzie lepiej? Użytkownik Ferrari edytował ten post 09 czerwiec 2005, 17:54 zobacz pconnect czy nie będzie szybsze... Ile zapytań wykonujesz że jesteś wolniejszy od Fusiona? I czy jak pobierasz jakieś dane to pobierasz tylko te potrzebne a nie wszystko *? Ja mam kilkanaście zapytań i od fusiona jestem szybszy, chyba że biorę długi tekst... (długie newsy na głównej np.) Użytkownik Riklaunim edytował ten post 09 czerwiec 2005, 20:31 Możliwe, że nieraz pobieram więcej, niż potrzeba (zoptymalizuję to). Innym czynnikiem mogą być także obliczenia. $stime=$time-1000000000; Ten kod ma za zadanie zmniejszyć liczbę zapisywaną do bazy do tabeli sesji. Postaram się optymalizować skrypt. Zapytań bez żadnej wyświetlanej zawartości aktualnie jest 5 (zalogowany). Użytkownik Ferrari edytował ten post 09 czerwiec 2005, 21:03 1. Zapytanie. db_q('DELETE FROM '.$db_pre.'sessions WHERE (type=2 && exp < '.$sxtime.') || (type=1 && exp < '.$xytime.')',0); Da się to bardziej zoptymalizować? 2. Setlocale Czy ta funkcja jest ważna w CMSie? Ona też powoduje spowolnienie. Coś mi się zdaje, że odczyt z plików jednak jest szybszy, niż z bazy. Nawet łączenie z SQLem potrafi zająć na WinXP ok. 400ms (pconnect odpada, ponieważ istnieje coś takiego jak limit połączeń). Z resztą PHP-Fusion ma prosty system skór. F3CMS już bardziej rozbudowany (więc to też może być czynnikiem spowalniającym). Użytkownik Ferrari edytował ten post 10 czerwiec 2005, 16:18 MD-Pro pod winME XAMPP ładuje się w jakiś 8 sekund :P ten sam CMS po linuksem na tym samym komputerze pod XAMPPem w wersi linuxowej w niecałe 2... :) Testuj osiągi na freebsd (na czym siedzi większość serwerów) lub linuksie jakimś :) Co do zapytań to wczytanie pliku z cache opłaca się jedynie gdy zapytanie zwraca dużo danych w senskie KB :) np. dla interfejsu mysli (szybszy interfejs do mysql w php5) ani razu nie było wolniejsze u mnie niż wczytywanie cache :P Co do skór... proste klasy (nie-smarty) typu heys-template czy podobne praktycznie nie spowalniają skryptu... ja tam używam <?PHP echo $foo; ?> zamiast {foo} i jest o jeden komponent mniej. Poza tym maniakalna optymalizacja nie ma sensu. |
|||
Sitedesign by AltusUmbrae. |