![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 115 Pomógł: 2 Dołączył: 23.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witajcie
Chciałbym udostępnić autorski system framework, który teoretycznie (hmm, nawet praktycznie) kładzie inne systemy. Wykonałem prosty test na surówkach dwóch frameworków. Konfig domyślny i bez połączenia z bazą danych. Zwykłe wyświetlenie tekstu "Hello world!". Bez wykorzystania eAccelerator'a CodeIgniter: [0.011924028396606] 1 mb Yii: [0.050626039505005] 5 mb Autorski: [0.005169153213501] 768 kb System jest okrojony i pozbawiony śmieci takich jak generatory do tworzenia formularzy czy też tworzenie zapytań SQL. Tworzony był dla szybkiego stawiania serwisów (wiele stron korzystało i korzysta z tego systemu), dlatego nie ma wzorca projektowego MVC, lecz autorski model CCV (Controller - Component - View) dzięki któremu osiąga takie wyniki (ale czepiając się innych frameworków zasada działania jest bardzo zbliżona). Ładowarka klas Singleton i Router nieszablonowego wywoływania kontrolerów. Yii czy CI nie powinien ładować bibliotek, których nie potrzebuje aktualnie więc co o tym sądzicie? |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Wszystko co jest za throw nie zostanie wykonane, tak samo jak wszystko co jest za exit, die, return i podobnymi, więc ten return false tam jest zbędny. is_file zwraca tylko czy plik istnieje, a plik może istnieć ale możesz nie mieć do niego uprawnień. Warunek:
Kod if(self::$baseClass[$strtolower]) { // some code } będzie wyświetlać notice jeżeli włączysz raportowanie błędów na E_ALL. require_once jest zbędny (i wolniejszy) jeżeli wcześniej i tak sprawdzasz czy klasa już istnieje. Kiepsko trochę, sporo błędów logicznych. Nie zrozum mnie źle, ale śmieszne trochę jest kiedy mówisz o super optymalizacji, jednocześnie używając wyrażenia regularnego do wyszukiwania "stałego" ciągu. O czym nawet jest napisane w dokumentacji preg_match, że jak masz go użyć do wyszukania ciągu w podciągu, użyj strpos lub strstr. Niby to nie jest jakaś kolosalna różnica, ale to już widać na pierwszy rzut oka że nie bardzo wiesz jak dane funkcje/elementy języka działają. Tak samo mnie zastanawia, bo napisałeś że jest bezpieczny jak ktoś nie korzysta bezpośrednio z post, get etc. Czyli co, ty te dane traktujesz htmlspecialchar w jakiejś pętli, czy jak? Konkluzja jest taka, że twój "framework" jest szybszy od innych, bo nie ma wielu innych ficzerów. Jakbyś miał z użyciem 2 frameworków napisać 2 takie same aplikacje, i użył byś swojego fw, jak i powiedzmy laravela; to jest wysokie prawdopodobieństwo że w obu przypadkach te prędkości czy użycie danych będą bardzo zbliżone. Ten post edytował by_ikar 9.02.2015, 15:53:01 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 19:07 |