ForumCała strona

Nawigacja

Aktualnie online

Gości online: 5

Użytkowników online: 0

Łącznie użytkowników: 25,387
Najnowszy użytkownik: Tyka1125

Logowanie

Nazwa użytkownika

Hasło



Zarejestruj się

Odzyskaj hasło

Shoutbox

Musisz zalogować się, aby móc dodać wiadomość.

MajsterBieda
02.06.2024 00:44:49
Cool

Zbigniew@
01.06.2024 22:26:24
bubello Twój wpis ,przypomina mi bajkę ,dlaczego wyginęły mamuty.

bubello
28.05.2024 18:05:12
A ja od 13 lat na forum, ale większy komfort czuję siedząc w cieniu i obserwując co to się wydarza Frown

Zbigniew@
22.05.2024 20:58:20
Na forum iso błąd przed <!DOCTYPE wygląda jak utf8 z BOM

JazOOn
14.05.2024 18:31:17
Znowu serwer down?

Pobierz nową wersję
Pobierz podręcznik
Zobacz inne oficjalne Supporty
Statystyki supportu
PHP-Fuson PL na Facebooku

RSS

Polecamy hosting SferaHost.pl

Zobacz temat

 Drukuj temat
Obciążenie generowane przez funkcje korzystające z wyrażeń regularnych
bartek124
Witam.

Ten temat bardzo mocno wiąże się z PHP-Fusion v7 i jego nową funkcjonalnością, Output Handling.
Dużo czytałem o regexp, ponieważ chciałem się dość szybko nauczyć tego, ale to inna bajka. Czytałem, i wszędzie pisało, że wyrażenia regularne obciążają maszynę, w różnym stopniu, zależnym od skryptu. Gdzieniegdzie nawet pisało, żeby unikać wyrażeń, gdzie tylko się da.

1. No więc jak to się ma do v7 i Output Handling?
2. Można "udusić" tym maszynę?
3. Jeśli nie, to jakiej wielkości mniej więcej musiałby być skrypt, żeby zamęczyć serwer?
4. Jak to się ma do większych serwisów, powiedzmy jak Support, jakie skrypty wtedy można robić tym sposobem, skoro im większa oglądalność, tym większe obciążenie?

Obecnie jestem w trakcie skrobania FURL-a, i jak na razie wykorzystuje 25 razy funkcję preg_replace.
5. Czy warto robić coś większego tym sposobem (przez OH)?
6. Jak sprawa będzie wyglądała, jeśli instalujemy kilka modyfikacji OH? Czy nie dojdzie do zmieszania kodów i w ten sposób błędnego działania?

Potrzebuje odpowiedzi, ponieważ zależy mi na robieniu solidnych skryptów, nie ma sensu robić czegoś, czego nie da się wykorzystać tam gdzie jest większy ruch...

Szczególnie ciekawią mnie odpowiedzi na pytania 3 i 4.

Pozdrawiam.
userbar_bartek124_net.png mw.gif Nie pomagam na komunikatorach oraz PW!
 
www.bartek124.net
Wścibski Gość
Dodany dnia 02.06.2024 15:12:24
Pan Kontekstualny

Postów: n^x
Data rejestracji: Zawsze

Polecamy hosting SferaHost.pl
IP: localhost  
Grzes
Bartek nie jestem w stanie szczegółowo odpowiedzieć Ci na to pytanie. Mogę tylko ogólnie wyrazić swoją opinie na podstawie doświadczeń. Nie przyszło mi nigdy do głowy aby skupić się nad sprawdzeniem obciążenia generowanego przez wyrażenia w funkcji liczby odsłon czy długości przeszukiwanego tekstu bądź złożoności wyrażenia.
Mogę powiedzieć tylko tyle, że w przypadku tego z czym mamy tu do czynienia wyrażenia regularne zastosowane u nas nie stanowią najmniejszego problemu. Po przejściu z v6 na v7 od razu można było zauważyć efekt w postaci mniejszego obciążenia serwera. Głównym czynnikiem było tu obciążenie generowane przez serwer mysql - tłumacząc na nasze.. to kwestia sformułowania zapytań.

Dodam, że za pomocą OH mamy tu praktycznie wszystko zrobione (dzięki Wooyi i slawekneo) i jak widać support działa... całkiem dobrze Wink
Edytowane przez Grzes dnia 19.10.2008 21:16:26
Często najmądrzejszą odpowiedzią jest milczenie krzywy.gif
 
slawekneo
Hmm.. Korzystanie z wyrazen jest obciazajace z jakiej strony by na to nie patrzyl, ale zawsze da sie cos zoptymalizowac, kwestia jest tylko ile jest textu do przerobienia i tworzenia samych wyrazen. Sa sposoby, ktore wcale nie musza caly czas operowac na wyrazeniach wystarczy tylko dobrze podzielic sobie dany tekst na czesci dzieki preg_match_all i odpowiednio podstawic str_replace; proste nie Pfft

Teraz jesli chodzi o wyrazenia + OH to jesli masz korzystac z innych rozwiazan niz wyrazenia to polecam funkcje add_handler(duze mozliwosci do zoptymalizowania kodu) jesli ma operowac na samym wyrazeniu to replace_in_output.

Hmm.. Tak dodajac od siebie to jesli chcesz sie przekonac ze wyrazenia obciazaja to wystarczy w geshi sciagnac blokade wyswietlanych lini i przekonasz sie ze w przypadku geshi jest specjata od overload Grin

Tak na koniec dodam: wielkosc obciazenia serwera przez wyrazenia zalezy tylko i wylacznie od tego co je tworzy.
Dlatego tez polecam przemyslec kazde!

Pozdro!!
Edytowane przez Pieka dnia 20.10.2008 17:25:29
 
Przejdź do forum:
Created by Arox Copyright (C) 2004
Copyright (C) 2004 - 2018 Ekipa PHP-Fusion.pl