Gram w/z wzorcem specyfikacji, aby obsłużyć i zawrzeć logikę biznesową w naszej aplikacji C#/mvc. Jak na razie dobrze. Mam jednak pytanie - skoro będziemy tworzyć wiele obiektów specyfikacji na stercie, czy to wpłynie na wydajność w jakikolwiek sposób, np. Tworząc pomocnicze metody obsługi logiki biznesowej? Dzięki!Wzorzec specyfikacji i wydajność
Odpowiedz
mam pytanie chociaż - ponieważ będziemy tworzyć szereg obiektów na stercie specyfikacji, będzie to mieć wpływ na wydajność w jakikolwiek sposób w porównaniu z, powiedzmy, tworząc metody pomocnika do obsługi logiki biznesowej?
Oczywiście wpłynie to na wydajność, każdą linię kodu, którą napiszesz, i wybór konstrukcji, który wpływa na wydajność w taki czy inny sposób. To mało prawdopodobne, aby było sensowne, być wąskim gardłem w twojej aplikacji lub warte poświęcenia uwagi, ponieważ prawie na pewno jest to kwestia przedwczesnej optymalizacji. W dzisiejszych czasach powinieneś po prostu skupić się na poprawnym modelowaniu domeny i pisaniu niezwykle przejrzystego i możliwego do utrzymania kodu. Skup się bardziej na wydajności programistów niż na wydajności maszyn. Cykle procesora są tanie i niemal nieograniczone. Cykle wywołujące nie są tanie i nie mają nieograniczonej podaży.
Ale tylko Ty możesz wiedzieć, czy wpłynie to na rzeczywiste wykorzystanie Twojej aplikacji na dane w świecie rzeczywistym poprzez profilowanie. Nie wiemy i nie możemy tego wiedzieć, ponieważ nie znamy Twojej domeny, nie znamy twoich użytkowników, nie wiemy, czego oczekujesz, itd. A nawet gdybyśmy znali te rzeczy, nadal nie moglibyśmy ". • dać ci tak mocną odpowiedź, jak możesz dać sobie przez odkurzanie profilera z półki i zobaczyć, co faktycznie robi twoja aplikacja.
Dziękuję i tak Zgadzam się z twoimi uwagami na temat wielu czynników, które idą do wydajności. Ponieważ próbuję powstrzymać naszą logikę biznesową, uznałem, że wzór specyfikacji jest użyteczny (logika biznesowa, łatwa w testowaniu jednostkowym), jednak nasza przewaga nie jest przekonana i można by sądzić, że ten sam wynik można osiągnąć przy mniejszej ilości kodu i mniejszej ilości obiektów korzystających z pomocy metody. – rh1200
ponieważ będziemy tworzyć szereg obiektów na stercie specyfikacji, będzie to mieć wpływ na wydajność w jakikolwiek sposób
Większość wzorce projektowe kompromis pewne obciążenie dla czystości design - to nie jest wyjątkiem . Ogólnie rzecz biorąc, ilość pamięci dodawana do specyfikacji jest bardzo minimalna (zazwyczaj kilka odniesień i to wszystko). Ponadto mają tendencję do dodawania kilku dodatkowych wywołań metod w przeciwieństwie do niestandardowej logiki.
Mimo to nie próbowałem przedwcześnie optymalizować tego. Obciążenie jest tutaj niezwykle małe, więc bardzo wątpię, by było to zauważalne w jakiejkolwiek aplikacji na świecie.
Czy należy zgłaszać uwagi na temat przesypiska, ponieważ specyfikacje mogą znajdować się na stercie w dowolnej kolejności iw dowolnej liczbie? – RBZ
- 1. Jak zsynchronizować wzorzec i pochodzenie/wzorzec używając egit w eclipse?
- 2. Zamień wzorzec i gałąź funkcji
- 3. Zrozumienie wydajność Sinon.js w(), wydajność()() i callsArg
- 4. Wzorzec obiektu kwerendy (wzorzec projektu)
- 5. Dane ad hoc i wzorzec repozytorium
- 6. wykonanie kodu przed i po specyfikacji
- 7. Dobre źródło specyfikacji ATOM i RSS?
- 8. Obsługa specyfikacji ++ g ++ i C++ 0x
- 9. RowVersion i wydajność
- 10. Wydajność hibernacji i JDBC?
- 11. Współdzielone wskaźniki i wydajność
- 12. Python wątek i wydajność?
- 13. Sposób sekwencyjnego uruchamiania specyfikacji
- 14. Procedura specyfikacji pakietu
- 15. Znajdowanie specyfikacji .NET
- 16. Wzorzec strategii i eksplozja klas akcji
- 17. Łączenie łańcuchów w asyncio (i wzorzec obserwatora)
- 18. Wzorzec aktora z Akka i długimi procesami
- 19. Usługi RIA i ogólny wzorzec Repozytorium
- 20. Przycisk Akcja przycisku nawigacyjnego i wzorzec nawigacji
- 21. Wzorzec stanu i projekt oparty na domenie
- 22. Wzorzec modułu JavaScript, funkcje zagnieżdżone i moduły podrzędne
- 23. Wydajność i szyjka butelki Zend_Search_Lucene?
- 24. Prolog wydajność i rekurencji typu
- 25. Mathematica „Listy” połączone i wydajność
- 26. Log.d i wpływ na wydajność
- 27. Symfony2 czas ładowania i wydajność
- 28. Dane Leaflet.js i JSON: optymalizacja i wydajność
- 29. Specyfikacje kontrolera kontra żądania specyfikacji?
- 30. niezdefiniowana metoda "tworzenie" specyfikacji szyn.
Alokacja sterty nie jest czymś, czego należy się obawiać w .NET, ponieważ a) zagęszczanie sterty oznacza, że przydział jest ogólnie dość tani, a b) "wyrzucanie śmieci" oznacza, że przydziały sterty są mniej ryzykowne (ponieważ nie musisz śledzić czasu życia obiektu, dokładnie.) –