ďťż

[php] Parę pytań - co korzystniejsze?

       

Podstrony


telcocafe

Otóż na tym forum były już walki co lepsze DIV czy TABLE, Linux czy windows, a ja mam poważniejsze kwestie (patrz temat i czytaj niżej):

1. Rodzaj stron indeksocentryczny (typu: index.php?t=nazwa_dzialu) czy wieloplikowy (start.php, redakcja.php, itd.)?

2. Drukowanie tekstu na ekran (echo) tak o jak leci w skrypcie czy zgrupowanie tego wszystkiego na końcu skryptu w jednej zmiennej w wydrukowanie (czy też to samo, ale zebranie w tablicy i za pomocą for(), ale to chyba nie, prawda?)

3. Mamy np. zliczanie kluczy w tablicy (count() ). Czy lepiej na początku zapisać tę wartość w jakiejś zmiennej czy cały czas używać count()?

4. Odczyt wielu plików z małą ilością danych czy jednego z dużą? Zaznaczam, że chodzi tu o skórki dla strony internetowej*.

Proszę o opinię i ewentualnie inne rozwiązania.

I tak przy okazji: jakimi procedurami sprawdzić ile jest wolnego i w ogóle miejsca w bazie MySQL?

Przy okazji 2: Jak porównać dwie daty? Czy tylko po sprowadzeniu do sekund? A liczba sekund ograniczona do roku któregoś tam, prawda?

Aaaa... I ile powinno w tych milisekundach zajmować generowanie skomplikowanej strony w php?
Użytkownik NIC edytował ten post 28 kwiecień 2006, 17:38



(...)


2. hmm.. nie za bardzo cie rozumiem.. jeśli chodzi o pętle, to tutaj raczej się do tekstu nie stosuje.. przynajmniej, jak chcesz wyświetlać linijkę po linijce.. choć zależy, czy treść strony pobierana jest (np.) z bazy mySQL czy innej zawartości, wymagajacej wyświetlanie po jednej linijce.
A co do echo()... ja wstawiam najpierw zawartość do zmiennych (php i wielolinijkowe zmienne.. to jest poprostu piękne  :rolleyes: ), bo z zawartością strony różnie to może być... i co do pkt.1 - jeśli będziesz includeować zawartość strony, to możesz np. dać zmienną, include, zmienną2 i wyświetlić itp.. troche tłumaczyć nie umiem.. :|+
ale plus zmiennych.. później zamiast echo możesz użyć własnej procedury wyświetlającej znaki (ja używam takiej, która przerabia polskie znaki - z win1250 na utf-8)... choc niby w echo tez tak mozna... jednak polecam zmienne :)


Hmm.. Chodzi mi o dwa przypadki (echo):
1:
fopen $zz=fgets echo $zz $i=3+5; strlen("nble ble"); fopen $dd=fgets echo $dd #ty+=6;

fopen $zz=fgets $i=3+5; strlen("nble ble"); fopen $zz.=fgets #ty+=6; echo $zz

Który lepszy? Oczywiście to tylko dla zobrazowania, bo kod tak naprawdę jest dłuuuugi u mnie...


generowanie skomplikowanych stron... hmm.. to 1000ms.. ale licznika nie dawaj ;) standardowa gadka.. strona nie powinna zbyt długo się ładować, bo user sie zniechęci... ;)

Nie, nie... Testuję i warto by wiedzieć ile to może trwać.

Ogólnie to po prostu nie chcę mym potężnym skryptem serwera zbyt obciążać.

PS. Póki co dzięki za rady.
PS 2. CZekam na inne i pozostałe rady.
Użytkownik NIC edytował ten post 28 kwiecień 2006, 21:09
ad1. ja preferuje index.php + parametry + oddzielnie jądro z obsługą wszystkiego + nice URL

ad2. zależy od sytuacji (jeśli txt jest powiązany to imho lepiej za 1 razem)

ad3. do zmiennej, po co ciąglę tracić czas na to samo ?

ad4. jeśli chodzi o skórkę to ogólnie polecam jakąś klasę szablonów :-) a jeśli nie to include( 'top.html' ); etc

czas generowania -> http://pl.php.net/ma...n.microtime.php




nice URL

Czyli jaki?


ad2. zależy od sytuacji (jeśli txt jest powiązany to imho lepiej za 1 razem)
Powiązany? To może inaczej. Czy nie będzie to zbytnim obciążeniem dla serwera(?) jeśli na raz wyślemy do przeglądarce, damy na to 200kB kodu (lub więcej, ale z jedej zmiennej)?


czas generowania -> http://pl.php.net/ma...n.microtime.php

Nie widzę... Tzn. ja bym chciał wiedzieć jaki powinien być taki maksymalny czas by serwer miał łatwo, a nie przepracowywał się. Padła już odpowiedź 1sekunda.

ad1. np mod_rewrite
ad2. lepiej za 1 razem
ad3. <?php function getmicrotime(){   list($usec, $sec) = explode(" ",microtime());   return ((float)$usec + (float)$sec);   } $time_start = getmicrotime();   for ($i=0; $i < 1000; $i++){   //nie rób nic przez 1000 iteracji   } $time_end = getmicrotime(); $time = $time_end - $time_start; echo "Nie robił nic przez $time sekund"; ?>


ad3.

Tak, tak... To, to ja wiem... Ale ile powinno maksymalnie generować stronkę.... Ile... Sekundę, dwie? A może mniej. Rozbudowaną stronę, która będzie troszkę serwer męczyć, i chcę tego uniknąć, ale jaki czas męczy serwer?

Ale dzięki.
Użytkownik NIC edytował ten post 28 kwiecień 2006, 21:46
tylko, że jak wchodzisz to nie masz czekać tylko w miarę płynnie pokazywać się strona ;-)


tylko, że jak wchodzisz to nie masz czekać tylko w miarę płynnie pokazywać się strona ;-)

Tak, tak. Ale ja chcę pójść dalej i nie męczyć serwera. Słowem: optymalizuję maksymalnie skrypt zasobożerny.

jak się strona szybko uruchamia to znaczt ze serwer sie nie meczy :P

1. im bardziej dynamiczne i "ogólne" tym lepiej. index.php?mod=art&act=show&id=666 :) linki zawsze można przepisywać za pomocą mod_rewrite
2. przypisywanie do zmiennych i wypluwanie do szablonów (SMARTY i inne) typu dla modułu {$title} i {$content} (na tytuł/treść) w prostych przypadkach

3. każde wykonanie count od nowa liczy. Jeżeli potrzebujesz wartości więcej niż raz - przypisz do zmiennej.

4. Im mniej plików tym lepiej

czas generowanie strony zależy od użytego kod, wykonywanych operacji itd. Jeżeli nie przekracza 1-2 sekund na localhoście to jest ok (chyba że wykonywane są specjalne czynności, które na stronie nie są wykonywane ciągle - typu na stronach bezpośrednio dostępnych)

Odświeżam temat.
Powracam do punktu 2. Który sposób więc bardziej obciąża serwer? Jest jeszcze inna metoda: buforowanie - co o niej myślicie?

Dla przykładu uruchamiamy stronę napisaną w PHP na wolniejszym serwerze, z dość małym przesyłem danych (np. 5 kb/s). Co wtedy będzie szybsze i korzystniejsze dla odwiedzających? Pisanie echo(...) co kawałek kodu (bez przechowywania go w zmiennej) czy tylko kilka razy?

A to chyba bez różnicy... Zależy jak PHP obsługuje drukowanie - czy gdy drukuje dane to czeka aż wyśle do końca czy idzie dalej i samo sobie buforuje... Ale jak pisałem wtedy to wszystko jedno... Poza tym serwer nie tyle jest obciążony co łącze... Moim głównym założeniem było obciążenie "procesora" przy skomplikowanym kodzie z jjednoczesną bardzo, bardzo dużą liczbą gości. A może się ktoś pochwali swoimi sposobami optymalizacji?

PS. 5 kb czy 5 kB?

// Do postu niżej: Tak więc autor postu powyższego miał na myśli 5 kb czy 5kB?
Użytkownik NIC edytował ten post 16 maj 2006, 19:36

PS. 5 kb czy 5 kB?

Jak już tu mowa o PHP, to jak zacząć tworzenie stron w tym języku? Chodzi mi tu o kurs PHP naprawdę dobry i darmowy oraz jakie wymagania trzeba spelniac, żeby zacząć pisać w PHP?

P.S.
Ja się w ogóle nie znam na tym jezyku, a na żadnej stronie nie pisze co trzeba zainstalować na kompie i na serwerze.
Użytkownik colosimo edytował ten post 17 maj 2006, 14:52

Jak już tu mowa o PHP, to jak zacząć tworzenie stron w tym języku? Chodzi mi tu o kurs PHP naprawdę dobry i darmowy oraz jakie wymagania trzeba spelniac, żeby zacząć pisać w PHP?

P.S.
Ja się w ogóle nie znam na tym jezyku, a na żadnej stronie nie pisze co trzeba zainstalować na kompie i na serwerze.

http://pl.php.net/manual/
Jak już tu mowa o PHP, to jak zacząć tworzenie stron w tym języku? Chodzi mi tu o kurs PHP naprawdę dobry i darmowy oraz jakie wymagania trzeba spelniac, żeby zacząć pisać w PHP?

P.S.
Ja się w ogóle nie znam na tym jezyku, a na żadnej stronie nie pisze co trzeba zainstalować na kompie i na serwerze.

Piszecie nie na temat. Może mi ktoś wyjaśnić to, co pisałem 1 mój post wcześniej? Ma ktoś takie doświadczenia z szybkością?

ja bym na to spojrzał tak:

DLA USERA

# echo : dane pokazują się stopniowo wraz z postępem wykonywania txt
# bufor : ukazanie się wyniku po całkowitym zakończeniu działania skryptu

DLA SERWERA

# echo : leci sobie ;-)
# bufor : gdzieś te dane muszą być przezchowywane zanim zostaną zwrócone :-)

ale i tak "obciążenie" spowodowane buforem jest niezauważalne

by skrypt coś wysłał w czasie wykonywania do klienta trzeba opróżnić bufor (flush itd.) "Optymalizacja" na poziome echo to czysta paranoja. Jeżeli zależy ci na wydajności to optymalizuj tam gdzie jest to możliwe i przynosi wymierne efekty (np. operacje na dużych tablicach, zwalnianie pamięci po wczytaniu dużego pliku/danych, zapytania do bazy danych; szczególnie te łączone itd.). Do testowania polecam np. XDEBUG
Opis
Benchmar CMSów

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.