Zobacz temat
Obciążenie generowane przez funkcje korzystające z wyrażeń regularnych
|
|
bartek124 |
Dodany dnia 19.10.2008 20:52:19
|
Weteran Postów: 3264 Pomógł: 236 v7.02.06 Data rejestracji: 26.05.2007 12:25 |
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. |
|
|
Wścibski Gość |
Dodany dnia 22.12.2024 12:43:13
|
Pan Kontekstualny Postów: n^x Data rejestracji: Zawsze |
|
IP: localhost | |
Grzes |
Dodany dnia 19.10.2008 21:15:45
|
Zaawansowany Postów: 1656 Pomógł: 42 Data rejestracji: 28.04.2005 20:28 |
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 Edytowane przez Grzes dnia 19.10.2008 21:16:26 Często najmądrzejszą odpowiedzią jest milczenie
|
|
|
slawekneo |
Dodany dnia 20.10.2008 14:24:36
|
Bywalec Postów: 915 Pomógł: 41 Data rejestracji: 12.03.2006 07:28 |
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 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 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: |