Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Co będzie optymalniejsze. Otwarcie pliku czy statyczna zmienna.
Forum PHP.pl > Forum > PHP
rafalp
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ść

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?
CuteOne
10 x otworzyć plik -> wczytać wartości XYZ

czy

1 x otworzyć plik -> wczytać wartości XYZ


....
Sephirus
Coś tu motasz rafalp 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) 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" smile.gif optymalne === najlepsze i basta smile.gif nie może być coś lepszego od najlepszego prawda? tongue.gif
rafalp
Cytat(CuteOne @ 28.01.2013, 13:41:49 ) *
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 tongue.gif

pozdrawiam i dzięki za odpowiedzi.
Sephirus
Cytat(rafalp @ 28.01.2013, 12:22:33 ) *
INI odpada bo to chodzi o ustawienia z bazy danych.


Co przez to rozumiesz? Pokaż jak wygląda taki plik?
rafalp
Plik jest to serializowana tablica pobranych wartości z bazy.
Postawię na zapis do zmiennej statycznej i później odczyty smile.gif
nospor
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.