Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Szablony
tabbi
post
Post #1





Grupa: Zarejestrowani
Postów: 150
Pomógł: 3
Dołączył: 30.10.2010

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


Witam,

mam pytanie co jest bardziej efektywne pod względem wydajności

KOD 1:
  1. <?php
  2. include_once("include/class_register.php");
  3. if($ok['Zalogowany']==1 && $ok['id']==$Session->ID){
  4. $uzytkownik=new Register();
  5. $row=$uzytkownik->DaneUser($Session->Var['idusera']);
  6. ?>
  7. <div id="sidebar">
  8. <h2>Panel użytkownika</h2>
  9. <div id="user-pane">
  10. <p>Witaj, <strong><?php echo $row['nick']; ?></strong></p>
  11. <p>Traffic: <strong><?php echo $row['traffic']; ?> MB</strong></p>
  12. <?php } ?>


KOD 2:

  1. <?php if($row['actcode']!=0){
  2. echo "<p>Brak potwierdzonego maila, sprawdź pocztę dopiero wtedy otrzymasz 200 mb</p>";
  3. <ul>
  4. <li><a href="pobierz">Pobierz pliki</a></li>
  5. <li><a href="twojepliki">Twoje pliki</a></li>
  6. <li><a href="kup">Kup doładowanie</a></li>
  7. <li><a href="pobrane">Ostatnio pobrane</a></li>
  8. <li><a href="doladowania">Doładowania</a></li>
  9. <li><a href="ustawienia">Ustawienia</a></li>
  10. <li><a href="poleceni">Statystyki poleconych</a></li>
  11. <li><a href="wyloguj">Wyloguj</a></li>'; ?>


Chodzi mi czy bardziej efektywne jest otwieranie kilka razy skryptu php czy też stosowanie echo i tam dodawanie tagów html ?

Nie chce obsługiwać szablonów itp. CHodzi mi tylko o te porównanie ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Zyx
post
Post #2





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

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


O rany, a skąd Ci wezmę benchmark, który robiłem dobre 5 lat temu? Mało Ci, że ze względu na jego wyniki zadałem sobie trud przepisania całego mechanizmu generowania kodu we wczesnych wersjach OPT? Ponadto różnicę w czasie bardzo łatwo wytłumaczyć. Bufor wyjściowy skryptu obsługuje tylko dwie operacje, które mogą być zainicjowane przez skrypt: doklejanie nowego tekstu i konwersja do wielkiego ciągu tekstowego (ob_get_clean()). Zatem, skoro nie musimy mieć dostępu w dowolne miejsce bufora, możemy zwłaszcza pierwszą operację zaimplementować dużo wydajniej, tworząc po prostu listę z kolejno doklejanymi kawałkami kodu. Gdy operujemy na ciągu tekstowym, PHP musi zakładać swobodny dostęp do niego, zatem przy doklejaniu musi realokować pamięć dla całego tekstu. Jeśli w danym miejscu nie będzie już wolnej pamięci, aby poszerzyć tekst o wymaganą ilość bajtów, trzeba zaalokować nowy blok i skopiować dotychczasową zawartość. Ale dobra, chcesz, to Ci zrobię takowy raz jeszcze.

Ad. podwójnych i pojedynczych cudzysłowów - nie chcę nic mówić, ale na PHP 5.3.4:

  1. <?php
  2. $time = microtime(true);
  3. $foo = 'bar';
  4. for($i = 0; $i < 1000000; $i++)
  5. {
  6. $text = "foo bar joe foo bar joe foo $foo joe foo bar joe foo bar joe $foo joe";
  7. }
  8. echo (microtime(true) - $time);


~0,62 s

  1. <?php
  2. $time = microtime(true);
  3. $foo = 'bar';
  4. for($i = 0; $i < 1000000; $i++)
  5. {
  6. $text = 'foo bar joe foo bar joe foo '.$foo.' joe foo bar joe foo bar joe '.$foo.' joe';
  7. }
  8. echo (microtime(true) - $time);


~0,71 s

Natomiast jeszcze kilka lat temu potwierdzam, że cudzysłowy były duuuużo wolniejsze, zwłaszcza jak się używało kodów formatujących.

Cytat
1/100sek. to nie duży narzut w stosunku do tego co funduje OOP w większości CMS


O panie, jakbym stosował Twoje metody, to byłbym chyba autorem najwolniejszych skryptów w całym Internecie (IMG:style_emoticons/default/smile.gif) . Jak 1/100 sekundy to mało, kiedy ja właśnie pracuję nad dość rozbudowaną stroną, która na moim kilkuletnim komputerku, i to z włączonymi opcjami debugowymi ma średni czas przetwarzania rzędu... 2/100 sekundy? (IMG:style_emoticons/default/smile.gif) Wiem, różnice w sprzęcie robią swoje, ale żeby wypowiadać się o 1/100 sekundy warto najpierw podać jakiś punkt odniesienia, bo jedna setna jednej setnej nierówna.

Ogólnie przy mierzeniu czegokolwiek trzeba mieć na uwadze, że język cały czas się rozwija. Coś, co jeszcze 3 lata temu było wolne, teraz mogło dostać kopa dzięki optymalizacjom. Przykładowo, w PHP 5.4 ma pojawić się całkiem sporo ponoć niezłych optymalizacji tablic z haszowaniem, które są wykorzystywane m.in. do implementacji typu array oraz wszelkich rejestrów funkcji, metod itd.

Ten post edytował Zyx 22.01.2011, 08:01:07
Go to the top of the page
+Quote Post

Posty w temacie
- tabbi   Szablony   21.01.2011, 15:33:58
- - kalmaceta   różnica rzędu 1/100 sekundy jet dla Ciebie ważna -...   21.01.2011, 16:32:40
- - Zyx   Pierwszy kod jest szybszy. kalmaceta -> prosim...   21.01.2011, 17:15:36
- - kalmaceta   optymalizacja takich pierdół mija się z celem szcz...   21.01.2011, 17:29:57
- - tabbi   [PHP] pobierz, plaintext echo "A może to jest...   21.01.2011, 17:47:32
- - kalmaceta   nie może być? może, tylko po co, cytuje za php.ne...   21.01.2011, 17:53:56
- - Mephistofeles   Pierwszy sposób jest lepszy, co nie oznacza, że sz...   21.01.2011, 20:15:39
- - Zyx   Powtarzam: jest szybszy, mierzyłem kiedyś . I wbre...   21.01.2011, 20:52:23
- - kalmaceta   jaka różnica, przy jakich szablonach? poproszę o ...   21.01.2011, 23:59:20
- - thek   Kalmaceta... Popatrz na to tak. Wyjście i wyjście ...   22.01.2011, 00:14:27
- - kalmaceta   po 1. nie twierdze, że któreś jest szybsze - to se...   22.01.2011, 00:25:17
- - kiler129   Ja się odniosę natomiast do dbl quote vs single qu...   22.01.2011, 00:32:57
- - kalmaceta   po 1. g... prawda to te testy - u mnie zawsze na k...   22.01.2011, 01:04:23
- - Zyx   O rany, a skąd Ci wezmę benchmark, który robiłem d...   22.01.2011, 07:54:58
- - kalmaceta   @Zyx widzisz nie wiesz na co odpowiadasz tu chodzi...   22.01.2011, 11:37:07
- - Zyx   Przeczytałem i podałem Ci, że pracuję nad rozbudow...   22.01.2011, 14:12:31
- - matrik   łoł, możecie mnie obsunąć albo i nie, ale [PHP] po...   22.01.2011, 19:52:34
- - kalmaceta   Zyx dlaczego demoscena pracuje na niskopoziomowych...   22.01.2011, 20:03:09
- - matrik   kalmaceta ja już rozmawiałem z taką osobą co też m...   22.01.2011, 20:08:28
- - Crozin   CytatPierwsze echo stosuje się bardzo rzadko, jeśl...   22.01.2011, 20:12:05
- - kalmaceta   matrik a dlaczego nie możesz zrobić strony w c++? ...   22.01.2011, 20:20:44
- - Mephistofeles   Z takiej samej przyczyny nie pisze się stron w C++...   22.01.2011, 21:30:52
- - kalmaceta   @Mephistofeles zasłyszane i nie zupełnie prawdziwe...   23.01.2011, 12:53:30
- - Mephistofeles   Oczywiście, że słyszałem. Tylko po co pisać kompil...   23.01.2011, 13:13:21
- - kalmaceta   oczywiście masz racje jeśli chodzi o prostotę. ale...   23.01.2011, 13:58:18


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: 4.10.2025 - 22:55