![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 213 Pomógł: 0 Dołączył: 7.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Piszę własne Forum od kilku miesięcy, i zastanawia mnie czy pobieranie zasobów przez moje forum jest duże jak na forum, czy małe. http://mpgw.pl Na samym dole nad stopką macie czas wygenerowania i pobierany RAM: Strona wygenerowana w: 15.69 milisekund (0.016s) Wczytując stronę, serwer użył: 0.41 MB RAM Prosiłbym o opinię od was czy to dużo jak na forum czy mało. Pozdrawiam! |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Co do czasu - to jest bardzo bardzo dobry czas
![]() W sumie czas zależy w dużej mierze nie tylko od samego PHP ale od czasu łączenia z bazą, wykonywania zapytań (a zatem ich optymalizacji itd...) i uzyskanie czas rzędy < 20ms powinno być raczej mało prawdopodobne ![]() Do tego dochodzi też kwestia liczby użytkowników online - im więcej tym więcej oczekiwań na różne rzeczy - także w bazie danych i czas rośnie. Moim zdaniem czas < 50ms na generowanie porządnej strony to super czas. Twój zatem jest bardzo dobry (o ile jest dobrze liczony) ![]() Co do zajmowania pamięci RAM - 0,5MB to dziwnie mało i to dobry rezultat - pamiętaj jedynie o tym, że ciężko jest go dokładnie określić. Ogólnie więc: jak na forum to baaaaardzo dobry rezultat - porządny - pochodziłem nieco i czas wacha się od ~10ms do ~70ms w zależności od typu podstrony - a to dobrze. Zastanawia mnie jedynie ta pamieć bo jest jej mało ![]() Jeżeli testy są realne to jest GIT ![]() -------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 213 Pomógł: 0 Dołączył: 7.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
Co do czasu - to jest bardzo bardzo dobry czas ![]() W sumie czas zależy w dużej mierze nie tylko od samego PHP ale od czasu łączenia z bazą, wykonywania zapytań (a zatem ich optymalizacji itd...) i uzyskanie czas rzędy < 20ms powinno być raczej mało prawdopodobne ![]() Do tego dochodzi też kwestia liczby użytkowników online - im więcej tym więcej oczekiwań na różne rzeczy - także w bazie danych i czas rośnie. Moim zdaniem czas < 50ms na generowanie porządnej strony to super czas. Twój zatem jest bardzo dobry (o ile jest dobrze liczony) ![]() Co do zajmowania pamięci RAM - 0,5MB to dziwnie mało i to dobry rezultat - pamiętaj jedynie o tym, że ciężko jest go dokładnie określić. Ogólnie więc: jak na forum to baaaaardzo dobry rezultat - porządny - pochodziłem nieco i czas wacha się od ~10ms do ~70ms w zależności od typu podstrony - a to dobrze. Zastanawia mnie jedynie ta pamieć bo jest jej mało ![]() Jeżeli testy są realne to jest GIT ![]() Mi się wydaje że dobrze liczę, ale jeśli się znasz to może ocenisz czy dobrze to zrobiłem, skoro: 1 megabajt = 1 048 576 bajtów A "memory_get_usage()" podaje wynik w bajtach, to zrobiłem: "memory_get_usage()/1048576" - to moim zdaniem powinno wyjść w MB czas, prawda? Obliczenie 1 megabajta na bajty: https://www.google.pl/search?sugexp=chrome,...gabajt+na+bajty A czas ładowania zrobiłem tak:
Następnie na samym początku strony dałem:
I na samym końcu strony:
I TOTALNIE na końcu obliczyłem wynik tak:
Obliczenie sekundy na milisekundy: https://www.google.pl/search?sugexp=chrome,...a+na+milisekund Wszystko się zgadza ? Pozdrawiam. Ten post edytował Weles 1.06.2012, 09:09:47 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Ogólnie jest ok
![]() Aby mieć pewność co do tego ile to zjada pamięci powinieneś pobawić się 3 rzeczami jakie daje PHP samo w sobie (bez dodatkowych xDebug'ów itd ;P) 1. memory_get_usage() i memory_get_usage(true) To podaje ile pamięci zużywa skrypt w momencie, w którym ta funkcja jest wywoływana. Zatem jeśli dasz:
Zatem dawanie memory_get_usage na końcu mówi jedynie ile pamięci jest używane na końcu skryptu - co nie do końca jest prawdziwe jeśli chodzi o cały przebieg skryptu. Dodatkowy parametr (true) pozwala na dokładniejsze określenie użytej pamięci w danej chwili WNIOSEK: memory_get_usage nadaje się do sprawdzania stanu pamieci w danej chwili - nie na końcu. 2. memory_get_peak_usage() i memory_get_peak_usage(true) To rozwiązuje powyższy problem ![]()
Ta funkcja zwraca maksimum zużycia pamięci w momencie wywołania ale bierze pod uwagę cały skrypt - jesli zatem wykonasz ją na końcu - otrzymasz realną wartość użytej pamięci (maksimum) 3. memory_set_limit jeżeli chcesz mieć pewność że dany skrypt nie przekracza danej wartości pamięci (powiedzmy 1MB) możesz ustalić 1MB jako limit (tylko w ramach testowania) i następnie używać skryptu i sprawdzać czy "nie wypluję" błędu związanego z przekroczeniem limitu pamięci ![]() Podsumowując jeśli sprawdzasz pamięc na końcu to użyj memory_get_peak_usage i wyświetl to dla podania argumentu "true" i bez - wtedy wyniki mogą (choć nie muszą kształtować się inaczej ![]() -------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 279 Pomógł: 60 Dołączył: 25.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
A co z warunkiem 0.1 <= $czas_generowania < 1? |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 213 Pomógł: 0 Dołączył: 7.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
Ogólnie jest ok ![]() Aby mieć pewność co do tego ile to zjada pamięci powinieneś pobawić się 3 rzeczami jakie daje PHP samo w sobie (bez dodatkowych xDebug'ów itd ;P) 1. memory_get_usage() i memory_get_usage(true) To podaje ile pamięci zużywa skrypt w momencie, w którym ta funkcja jest wywoływana. Zatem jeśli dasz:
Zatem dawanie memory_get_usage na końcu mówi jedynie ile pamięci jest używane na końcu skryptu - co nie do końca jest prawdziwe jeśli chodzi o cały przebieg skryptu. Dodatkowy parametr (true) pozwala na dokładniejsze określenie użytej pamięci w danej chwili WNIOSEK: memory_get_usage nadaje się do sprawdzania stanu pamieci w danej chwili - nie na końcu. 2. memory_get_peak_usage() i memory_get_peak_usage(true) To rozwiązuje powyższy problem ![]()
Ta funkcja zwraca maksimum zużycia pamięci w momencie wywołania ale bierze pod uwagę cały skrypt - jesli zatem wykonasz ją na końcu - otrzymasz realną wartość użytej pamięci (maksimum) 3. memory_set_limit jeżeli chcesz mieć pewność że dany skrypt nie przekracza danej wartości pamięci (powiedzmy 1MB) możesz ustalić 1MB jako limit (tylko w ramach testowania) i następnie używać skryptu i sprawdzać czy "nie wypluję" błędu związanego z przekroczeniem limitu pamięci ![]() Podsumowując jeśli sprawdzasz pamięc na końcu to użyj memory_get_peak_usage i wyświetl to dla podania argumentu "true" i bez - wtedy wyniki mogą (choć nie muszą kształtować się inaczej ![]() Dawałem memory_get_peak_usage(true) oraz memory_get_usage(true) i oba bez, i wyniki są podobne, chodź troszkę inne. Teraz dałem memory_get_peak_usage(true) i jest na http://mpgw.pl od: Wczytując stronę, serwer użył: 0,5 MB RAM do Wczytując stronę, serwer użył: 1 MB RAM U ciebie też tyle wyskakuje? bo nie wiem jak to działa, czy każdemu te same wyniki, czy od czego to tam zalezy ^^ A co z warunkiem 0.1 <= $czas_generowania < 1? nie rozumiem? |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Tak ogólnie wygląda na to że tyle właśnie zużywa twoja strona - to dobrze - teraz mamy 95% pewności
![]() jeżeli chcesz mieć 100% pewność możesz dać jeszcze to memory_set_limit('1M'); i czuwać czy gdzieś się nie wywali błąd ![]() Co do czasu jak wspomniał irmidjusz fakt coś tam chyba masz zamotane. Zawsze możesz użyć microtime(true) który zwraca czas w formie 12345.1234566 jako liczba zmienno przecinkowa - po odjęciu jednej od drugiej powinieneś dostać odpowiedni wynik. Proponuje:
To Ci wyświetli czas generowania strony w milisekundach dając w formacie XXX.Y [ms] -------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 213 Pomógł: 0 Dołączył: 7.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
Tak ogólnie wygląda na to że tyle właśnie zużywa twoja strona - to dobrze - teraz mamy 95% pewności ![]() jeżeli chcesz mieć 100% pewność możesz dać jeszcze to memory_set_limit('1M'); i czuwać czy gdzieś się nie wywali błąd ![]() Co do czasu jak wspomniał irmidjusz fakt coś tam chyba masz zamotane. Zawsze możesz użyć microtime(true) który zwraca czas w formie 12345.1234566 jako liczba zmienno przecinkowa - po odjęciu jednej od drugiej powinieneś dostać odpowiedni wynik. Proponuje:
To Ci wyświetli czas generowania strony w milisekundach dając w formacie XXX.Y [ms] Twój kod zwraca mi tyle co mój czyli średnio 16.4ms, Początek strony: $rozpoczecie = microtime(true); Koniec strony: $zakonczenie = microtime(true); Obliczenie wyniku: $czas_generowania = $zakonczenie-$rozpoczecie; I wyświetlenie. Więc mówisz że takie wyniki RAM i GENEROWANIA są dobre jak na forum? @EDIT: number_format wybija mi tylko liczbę całkowitą np "15", "16" bez po przecinku np. "15,6", "16,2" więc wolę jednak round, ale przyznam że twój sposób na obliczenie jest łatwiejszy bez zbędnej funckji ![]() Ten post edytował Weles 1.06.2012, 10:13:45 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 279 Pomógł: 60 Dołączył: 25.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
Co w sytuacji, gdy czas generowania jest większy bądź równy 0.1 i mniejszy od 1 - bo Twoje if-y, które zapodałeś, tego warunku nie uwzględniają.
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 213 Pomógł: 0 Dołączył: 7.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
Co w sytuacji, gdy czas generowania jest większy bądź równy 0.1 i mniejszy od 1 - bo Twoje if-y, które zapodałeś, tego warunku nie uwzględniają. Ahm, rzeczywiście walnąłem mały błąd, dzięki za informację. zamiast:
powinno być:
Dzięki za informację ![]() Ten post edytował Weles 1.06.2012, 10:17:13 |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
No to wszystko wyjaśnione
![]() IMHO - staty są niezłe - chciałbym to zobaczyć jeszcze przy obciążeniu dużym (pamięć się nie zmieni ale czas powinien) ![]() -------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 213 Pomógł: 0 Dołączył: 7.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 279 Pomógł: 60 Dołączył: 25.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
IMHO - staty są niezłe - chciałbym to zobaczyć jeszcze przy obciążeniu dużym (pamięć się nie zmieni ale czas powinien) ![]() A ja bym chciał zobaczyć jak kolega napisał kod PHP tego forum, a nie czy się strona generuje w 10ms czy 100ms. IMO to pierwsze jest ważniejsze. Optymalizacje to się robi gdy rzeczywiście potrzeba. Jakość kodu jest ważniejsza. |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 1 182 Pomógł: 115 Dołączył: 4.03.2009 Skąd: Myszków Ostrzeżenie: (0%) ![]() ![]() |
Jak to mówią: "We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil"
Nie ma sensu przejmować się każdą milisekundą dopóki wszystko działa jak trzeba. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 7.07.2025 - 04:00 |