Optymalizacja Kodu - funkcje

0

Witam zabieram się do optymalizacji mojego kodu i teraz mam kilka zagłowień.

  1. Na stronie mam logowanie oraz rejestracje zastanawiam się co jest najbardziej optymalnym rozwiązaniem funkcja eregi czy może funkcje preg_match która szybciej i wydajniej chodzi do sprawdzania wprowadzonych znaków , a może jest jakaś lepsza funkcje od wyżej wymienionych ? Najmniej wydajne wydawało by się naklepać własną funkcję do sprawdzania znaków, ale muszę wziąć pod uwagę, że wprowadzane mogą być również znaki polskie.

  2. Czy warto przypisywać zmiennym wartość tablic $_POST czy może bardziej wydajne jest od razu operowanie na tablicy $_POST ? Tworzenie kolejnych zmiennych wydaje się niepotrzebne w tej sytuacji bo nie robi mi różnicy czy będę operować na $_POST czy zmiennej (tylko może jednak lepiej przypisać zmienne i zwolnić tablice $_POST tylko jak i czy to aby na pewno wydajniejsze rozwiązanie ?).

  3. require_once tutaj opcja include odpada jednak zastanawiam się czy lepiej zrobić wczytywanie strony w sposób taki $_GET['strona'] jest np wartość "kontakt" to wykonuje się kod require_once('kontakt.php'); czy może lepiej if (!strcmp("kontakt",$_GET['strona']) { // kod strony } ? Osobiście wolałbym require_once gdyż kod ładniej wygląda a co jest bardziej wydajne ?

0
  1. eregi jest zdeprecjonowana. optymalizacja sprawdzenia znaków w loginie podczas rejestracji to cos czego nie powinienes dotykac. nie wplynie to na szybkosc dzialania (pomysl jak czesto to sprawdzenie w ogole sie wykonuje?!)

  2. kopiując wartości z $_POST do czegoś innego zajmujesz co najwyżej parę KB pamięci. wciąż żaden zysk. na pewno nie zysk od strony CPU (zakładam że to chcesz "optymalizować")

  3. includowanie plików zajmuje kolejne ułamki sekund - tutaj trzeba odczytać plik z dysku, ale dopóki serwer nie jest atakowany tysiącami żądań na sekundę, a sam serwer ma jakiś 10 letni dysk - to też niewiele to zmieni

  4. NAJWAŻNIEJSZE - optymalizację rozpoczynamy od sprawdzenia wydajności naszego kodu - która jego część się wolno wykonuje, gdzie są szczególne "wąskie" gardła, od których powinniśmy zacząć na początku. Optymalizacja taka jaką ty chcesz prowadzić może spowodować nawet zwolnienie działania (analiza znak po znaku może być wolniejsza niż prosty regexp sprawdzający tylko znaki), zmniejszyć czytelność kodu (co czasami jest ważniejsze niż ślepe podążanie za ułamkami milisekund) i w ogóle jest bez sensu. Najpierw szukaj przyczyny, potem rozwiązuj ew. problem.

0
  1. eregi jest przestarzałe i zostało tylko dla kompatybilności - jasne że najlepiej użyć preg_match
    własna funkcja byłaby raczej BARDZIEJ wydajna jeśli chodzi o szybkość działania, zwłaszcza w przypadku bardziej złożonych zapytań ale nie to jest tutaj ważne a proste zapytanie potrafi zastąpić kilkadziesiąt linii kodu

  2. w przypadku bardziej złożonych stron opartych o jakiś framework, albo chociażby smarty i tak się przekazuje te zmienne do widoków, do tablicy zmiennych szablonu, albo po prostu do funkcji więc i tak się robi kopia ich zawartości i nie ma na to rady
    w przypadku prostej strony rób jak ci wygodniej - wydaje mi się że operowanie od razu na $_POST zmniejsza prawdopodobieństwo pomyłki

  3. obojętne - tylko jeżeli będziesz chciał zrobić coś w stylu require_once($_GET['strona']) to będziesz musiał bardzo restryktywnie sprawdzić tę zmienną bo prosi się o exploita

0

Funkcja sprawdzania loginu rejestracji wykonuje się rzadko ale np. musi zostać sprawdzony każdy $_GET który jest inny dla każdej podstrony mało tego nazwa z $_GET leci w zapytaniu do bazy MySQL więc nie wyobrażam sobie aby jej nie sprawdzać a na chwilę obecną stworzyłem własną funkcje która sprawdza znaki jednak chciałbym z niej zrezygnować.
Z tego co widzę proponujesz preg_match no ok ale czy da się wstawić jakiś operator aby ta funkcja przyjmowała w loginie pierwszy znak mały albo DUŻY a nie to albo to ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1