![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 224 Pomógł: 18 Dołączył: 4.02.2003 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
Cześć,
Mam dylemat jak zaprogramować pewną funkcjonalność.. Plik Cache znajduje się na dysku, każde przeładowanie strony musi pobrać te wartości nazwijmy je tablicą "settings". Tablica nie będzie duża (załóżmy max. 200 pozycji) W ciągu generowania strony kilka razy będę sięgał do różnych wartości tej tablicy. A) klasa pobierająca te wartości, za każdym razem pobierany jest plik cache i wybierana dana wartość (IMG:style_emoticons/default/cool.gif) klasa statyczna, na początku strony pobrany zostanie raz plik cache i zawartość zapisana do statycznej zmiennej, potem w razie potrzeby odwołujemy się tylko do tej zmiennej Co będzie optymalniejsze dla serwera? plik raz pobrany przez PHP jest cachowany więc przy kolejnych pobraniach nie ma kolejnych "otwarć" plików prawda? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) ![]() ![]() |
10 x otworzyć plik -> wczytać wartości XYZ
czy 1 x otworzyć plik -> wczytać wartości XYZ .... |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Coś tu motasz rafalp (IMG:style_emoticons/default/smile.gif)
1. Jeśli serwer posiada np. APC to masz rację, że odwołanie kolejne do pliku spowoduje odwołanie do cache zamiast niego 2. Szybsze zdecydowanie będzie odwołanie się do istniejącej w pamięci zmiennej (nawet statycznie) niż do pliku (nawet zcacheowanego) bo w zależności od sytuacji plik musi być przeparsowany jeśli zawiera kod php 3. Dobrym sposobem przechowywania danych konfiguracyjnych jest plik INI - serio - sam się zdziwiłem ale taka jest prawda. Dla tej samej konfiguracji PHP szybciej sparsuje plik INI i zwróci Ci tablicę w PHP niż zaincluduje samą tablicę PHP (szok - sprawdź sam) (IMG:style_emoticons/default/smile.gif) 4. Jeśli zawsze używasz choć jednej ze zmiennych konfiguracyjnych to ładowanie ich raz na początku powinno być optymalne 5. Jeśli zdarza się, że nie używasz żadnej ze zmiennych konfiguracyjnych to zrób leniwą klasę, która będzie ładowana (bądź nie) na pusto i dopiero przy pierwszym odwołaniu do jakiejś zmiennej konfiguracyjnej będzie ładowała plik (ale tylko raz - potem oddając już załadowane zmienne) Ogólnie - Nie ma w słowniku J. Polskiego słowa "optymalniejsze" (IMG:style_emoticons/default/smile.gif) optymalne === najlepsze i basta (IMG:style_emoticons/default/smile.gif) nie może być coś lepszego od najlepszego prawda? (IMG:style_emoticons/default/tongue.gif) |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 224 Pomógł: 18 Dołączył: 4.02.2003 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
10 x otworzyć plik -> wczytać wartości XYZ czy 1 x otworzyć plik -> wczytać wartości XYZ .... Bądź dokłady jak już ironizujesz:> 10 x otworzyć plik -> wczytać wartości XYZ czy 1 x otworzyć plik -> wczytać wartości XYZ + zapisać dużą zmienną statyczną 10 x odwołać się do tej zmiennej. INI odpada bo to chodzi o ustawienia z bazy danych. "Ogólnie - Nie ma w słowniku J. Polskiego słowa "optymalniejsze" optymalne === najlepsze i basta nie może być coś lepszego od najlepszego prawda?" Zakładając że bez cachu nie było by w ogóle optymalne, więc moje dwa przytoczone sposoby są optymalne, tylko problem właśnie który bardziej (IMG:style_emoticons/default/tongue.gif) pozdrawiam i dzięki za odpowiedzi. Ten post edytował rafalp 28.01.2013, 12:23:44 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 224 Pomógł: 18 Dołączył: 4.02.2003 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
Plik jest to serializowana tablica pobranych wartości z bazy.
Postawię na zapis do zmiennej statycznej i później odczyty (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#7
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Postawię na zapis do zmiennej statycznej i później odczyty Oczywiście że to jest lepsze. A na przyszłość poprostu zmierz czas jednego i drugiego.... toż to 20 sekund roboty.... Więcej czasu zmarnowałeś na ten wątek.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 05:04 |