Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 80 Dołączył: 31.05.2008 Ostrzeżenie: (20%)
|
No więc tak, mam sobie klasę do ładowania plików, i gdy odpaliłem profilera php to zobaczyłem że dość duże obciążenie mam na tej klasie, bo z wszystkich wywołań metod wszystkie wywołania a jest ich 33 z tego co dobrze widzę, klasyfikują na 2 miejscu w stopniu najbardziej obciążającym system, no i szczerzę powiedziawszy to nie mam bladego pojęcia co jest tak mega super złego w tej klasie że takie obciążenie powoduje, oto kod:
Gdyby ktoś mógł mi wskazać jakieś wskazówki by poprawić wydajność tej klasy, będę wdzięczny, pomysły z autoload zachować dla siebie, od razu mówię nie, nie i jeszcze raz nie, także bez nich. Ten post edytował cojack 23.08.2010, 20:18:19 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów |
require_once jest wolniejsze od require, z tego co pamiętam. (IMG:style_emoticons/default/winksmiley.jpg)
Poza tym, dlaczego dokonujesz tylu sprawdzań na poziomie systemu plików? Samo is_readable wystarczy, po co is_file? Cytat ad 1) nie używam stałych (DEFINE) w całym FW, taka filozofia Hmm, filozofia w stylu kobiecej bo tak!, czy jakaś konkretna argumentacja? Nie wyobrażam sobie większego systemu bez choćby jednej stałej określającej katalog roboczy aplikacji. Cytat ad 2) bo to jest klasa do ładowania plików? No niech Ci będzie, ale też tego nie rozumiem. Cytat ad 6) Bez sensu byłoby stosowanie tutaj wyjątków, ponieważ kod byłby tak naszpikowany try {} catch {} że to się mija z celem, a błędy i tak gromadzę i pakuje w jedno miejsce, i tak czy siak używam trigger_error. A poza tym używam tej klasy też poza ciałem klas, także wyjątki w tym miejscu nie mają prawa bytu, gdyż ładuje w ten sposób klasy z których dana kasa dziedziczy, no i pomyśl sobie jakby to wyglądało. Takie myślenie jest bez sensu. Są wyjątki, zwiększają czytelność kodu i usprawniają wiele rzeczy, np:
Na co tu tyle? Zrób sobie error_handler, który pluje wyjątkiem przy E_WARNING. PHP nie jest wielowątkowe, więc przy samym require_once wypluje wyjątek w dokładnie tym miejscu, co trzeba, a będziesz miał centralne zarządzanie odpowiednimi zdarzeniami. Poza tym, żeby require_once wypluło błąd, to też musi sprawdzić, jaki on jest, czyli też sprawdza, czy plik da się odczytać, czy są do niego uprawnienia. Więc wywołanie is_readable jest - de facto - ponownym wykonaniem czegoś, co miało miejsce. Więc po co? (IMG:style_emoticons/default/winksmiley.jpg) |
|
|
|
cojack Klasa do ładowania plików 23.08.2010, 20:13:48
wookieb 1) Nie latwiej zdefiniować nawet stałej która prze... 23.08.2010, 20:22:28
cojack ad 1) nie używam stałych (DEFINE) w całym FW, taka... 23.08.2010, 20:40:36
Pilsener A ta klasa to ma być upload, parsowanie, jakiś mod... 23.08.2010, 21:39:05
cojack No przeta mam error_handler ;] Ok, to już wiem co ... 23.08.2010, 22:40:24
erix CytatNo przeta mam error_handler ;]
Ale on nie wyp... 23.08.2010, 23:17:52
wookieb Sorry erix ale mam NIE używać require_once bo requ... 24.08.2010, 05:54:28
erix Cytatżeby kontrolować czy czasem nie dołączam tego... 24.08.2010, 09:04:26
wookieb Cytat(erix @ 24.08.2010, 10:04:26 ) w... 24.08.2010, 09:26:21 ![]() ![]() |
|
Aktualny czas: 28.12.2025 - 08:20 |