Thread View: pl.comp.lang.delphi
11 messages
11 total messages
Started by Marek
Mon, 30 Sep 2019 12:48
Szybkość odczytu stanu itemu w menu
Author: Marek
Date: Mon, 30 Sep 2019 12:48
Date: Mon, 30 Sep 2019 12:48
9 lines
1156 bytes
1156 bytes
Witajcie, mam w pętlach tysiące odwołań do stanu "Checked" itemu menu np. "mnuBasicMode". Ciekawi mnie, gdybym ten stan zapamiętał (po jego zmianie) w jakiejś zmiennej np. BasicMode, czy szybszy byłby odczyt stanu ze zmiennej niż z itemu? -- Pzdr. Marek
Re: Szybkość odczytu stanu itemu w menu
Author: J-23
Date: Tue, 01 Oct 2019 12:37
Date: Tue, 01 Oct 2019 12:37
20 lines
1685 bytes
1685 bytes
W dniu 30.09.2019 o 14:48, Marek pisze: > Witajcie, > > mam w pętlach tysiące odwołań do stanu "Checked" itemu menu np. > "mnuBasicMode". > Ciekawi mnie, gdybym ten stan zapamiętał (po jego zmianie) w jakiejś > zmiennej > np. BasicMode, czy szybszy byłby odczyt stanu ze zmiennej niż z itemu? > Zależy :) A zależy to od wielu czynników i od tego jak masz to wszystko zorganizowane w kodzie. Ale jeżeli masz tysiące odwołań do tego to zamiast zastanawiać się czy przypisanie do zmiennej coś zmieni. To ja bym nie marnował czasu na twoim miejscu i bym zmienił kod w ten sposób by zostawić odwołanie do "Checked" Itema tam gdzie ci to jest niezbędne. Pozdrawiam J-23
Re: Szybkość odczytu stanu itemu w menu
Author: Roman Tyczka
Date: Tue, 01 Oct 2019 21:00
Date: Tue, 01 Oct 2019 21:00
14 lines
1483 bytes
1483 bytes
On Mon, 30 Sep 2019 14:48:46 +0200, Marek wrote: > mam w pętlach tysiące odwołań do stanu "Checked" itemu menu np. "mnuBasicMode". > Ciekawi mnie, gdybym ten stan zapamiętał (po jego zmianie) w jakiejś zmiennej > np. BasicMode, czy szybszy byłby odczyt stanu ze zmiennej niż z itemu? Długo się zastanawiałem jaki spaghetti code trzeba natrzaskać, żeby mieć pętle czytające tysiące razy stan kontrolek wizualnych... nie wymyśliłem. Słyszałeś o separacji UI od logiki biznesowej? O MVVM czy chociaż MVC? A coś Ci mówi SOLID, KISS czy DRY? -- pozdrawiam Roman Tyczka
Re: Szybkość odczytu stanu itemu w menu
Author: immo
Date: Thu, 03 Oct 2019 08:03
Date: Thu, 03 Oct 2019 08:03
16 lines
2438 bytes
2438 bytes
W dniu wtorek, 1 października 2019 23:00:53 UTC+2 użytkownik Roman Tyczka napisał: > On Mon, 30 Sep 2019 14:48:46 +0200, Marek wrote: > > > mam w pętlach tysiące odwołań do stanu "Checked" itemu menu np. "mnuBasicMode". > > Ciekawi mnie, gdybym ten stan zapamiętał (po jego zmianie) w jakiejś zmiennej > > np. BasicMode, czy szybszy byłby odczyt stanu ze zmiennej niż z itemu? > > Długo się zastanawiałem jaki spaghetti code trzeba natrzaskać, żeby mieć > pętle czytające tysiące razy stan kontrolek wizualnych... nie wymyśliłem. > Słyszałeś o separacji UI od logiki biznesowej? O MVVM czy chociaż MVC? A > coś Ci mówi SOLID, KISS czy DRY? Ale przecież to są pojęcia dalekie od koncepcji forsowanej przez lata przez Delphi :) Click&Code rządzi :P pozdrawiam, Przemek O.
Re: Szybkość odczytu stanu itemu w menu
Author: Marek
Date: Sun, 06 Oct 2019 22:08
Date: Sun, 06 Oct 2019 22:08
19 lines
1829 bytes
1829 bytes
W dniu 01.10.2019 o 23:00, Roman Tyczka pisze: > On Mon, 30 Sep 2019 14:48:46 +0200, Marek wrote: > >> mam w pętlach tysiące odwołań do stanu "Checked" itemu menu np. "mnuBasicMode". >> Ciekawi mnie, gdybym ten stan zapamiętał (po jego zmianie) w jakiejś zmiennej >> np. BasicMode, czy szybszy byłby odczyt stanu ze zmiennej niż z itemu? > > Długo się zastanawiałem jaki spaghetti code trzeba natrzaskać, żeby mieć > pętle czytające tysiące razy stan kontrolek wizualnych... nie wymyśliłem. > Słyszałeś o separacji UI od logiki biznesowej? O MVVM czy chociaż MVC? A > coś Ci mówi SOLID, KISS czy DRY? Słyszałem, słyszałem. Projekt jest przejęty po kimś i nie opłaca się go rozbijać na np. MVP, jedynie zoptymalizować, stąd to pytanie, na które jak widzę nie znasz odpowiedzi :p -- Pzdr. Marek
Re: Szybkość odczytu stanu itemu w menu
Author: Roman Tyczka
Date: Mon, 07 Oct 2019 07:04
Date: Mon, 07 Oct 2019 07:04
25 lines
2127 bytes
2127 bytes
On Mon, 7 Oct 2019 00:08:36 +0200, Marek wrote: >>> mam w pętlach tysiące odwołań do stanu "Checked" itemu menu np. "mnuBasicMode". >>> Ciekawi mnie, gdybym ten stan zapamiętał (po jego zmianie) w jakiejś zmiennej >>> np. BasicMode, czy szybszy byłby odczyt stanu ze zmiennej niż z itemu? >> >> Długo się zastanawiałem jaki spaghetti code trzeba natrzaskać, żeby mieć >> pętle czytające tysiące razy stan kontrolek wizualnych... nie wymyśliłem. >> Słyszałeś o separacji UI od logiki biznesowej? O MVVM czy chociaż MVC? A >> coś Ci mówi SOLID, KISS czy DRY? > > Słyszałem, słyszałem. Projekt jest przejęty po kimś i nie opłaca się go rozbijać > na np. MVP, jedynie zoptymalizować, stąd to pytanie, na które jak widzę nie znasz > odpowiedzi :p Odpowiedź jest trywialna, choć nieoczywista. Trzeba sprawdzić kod gettera od tego property i ocenić jego złożoność. Ale i tak na 95% w złym miejscu szukasz optymalizacji. Poza tym do takich rzeczy używa się profilerów, a nie strzelania z tyłka na oślep. Z darmowych np. tego: https://www.delphitools.info/samplingprofiler/ -- pozdrawiam Roman Tyczka
Re: Szybkość odczytu stanu itemu w menu
Author: J-23
Date: Mon, 07 Oct 2019 21:18
Date: Mon, 07 Oct 2019 21:18
34 lines
2752 bytes
2752 bytes
W dniu 07.10.2019 o 09:04, Roman Tyczka pisze: > On Mon, 7 Oct 2019 00:08:36 +0200, Marek wrote: > >>>> mam w pętlach tysiące odwołań do stanu "Checked" itemu menu np. "mnuBasicMode". >>>> Ciekawi mnie, gdybym ten stan zapamiętał (po jego zmianie) w jakiejś zmiennej >>>> np. BasicMode, czy szybszy byłby odczyt stanu ze zmiennej niż z itemu? >>> >>> Długo się zastanawiałem jaki spaghetti code trzeba natrzaskać, żeby mieć >>> pętle czytające tysiące razy stan kontrolek wizualnych... nie wymyśliłem. >>> Słyszałeś o separacji UI od logiki biznesowej? O MVVM czy chociaż MVC? A >>> coś Ci mówi SOLID, KISS czy DRY? >> >> Słyszałem, słyszałem. Projekt jest przejęty po kimś i nie opłaca się go rozbijać >> na np. MVP, jedynie zoptymalizować, stąd to pytanie, na które jak widzę nie znasz >> odpowiedzi :p > > Odpowiedź jest trywialna, choć nieoczywista. Trzeba sprawdzić kod gettera > od tego property i ocenić jego złożoność. > Ale i tak na 95% w złym miejscu szukasz optymalizacji. > Poza tym do takich rzeczy używa się profilerów, a nie strzelania z tyłka na > oślep. Z darmowych np. tego: > https://www.delphitools.info/samplingprofiler/ > Jak najbardziej profiler jest dobrą radą, ale tutaj już na oko widać że tego kodu nie da sie zoptymalizować :P Powód? z tego co pisał autor posta jest odwolanie do Checked gdzie na 100% jest to powiązane gdzieś z wyświetlaniem na ekranie więc już samo to powoduje spadek wydajności skoro to ma sie x razy odrysować. Podsumowanie tutaj nie ma co "cerować dziury" tutaj trzeba zakasać rękawy i napisać to porządnie. Pozdrawiam J-23
Re: Szybkość odczytu stanu itemu w menu
Author: Roman Tyczka
Date: Tue, 08 Oct 2019 06:52
Date: Tue, 08 Oct 2019 06:52
36 lines
2564 bytes
2564 bytes
On Mon, 7 Oct 2019 23:18:14 +0200, J-23 wrote: >>> Słyszałem, słyszałem. Projekt jest przejęty po kimś i nie opłaca się go rozbijać >>> na np. MVP, jedynie zoptymalizować, stąd to pytanie, na które jak widzę nie znasz >>> odpowiedzi :p >> >> Odpowiedź jest trywialna, choć nieoczywista. Trzeba sprawdzić kod gettera >> od tego property i ocenić jego złożoność. >> Ale i tak na 95% w złym miejscu szukasz optymalizacji. >> Poza tym do takich rzeczy używa się profilerów, a nie strzelania z tyłka na >> oślep. Z darmowych np. tego: >> https://www.delphitools.info/samplingprofiler/ >> > Jak najbardziej profiler jest dobrą radą, ale tutaj już na oko widać że > tego kodu nie da sie zoptymalizować :P Profiler właśnie po to, bo wskaże co i gdzie warto optymalizować. > Powód? z tego co pisał autor > posta jest odwolanie do Checked gdzie na 100% jest to powiązane gdzieś z > wyświetlaniem na ekranie więc już samo to powoduje spadek wydajności > skoro to ma sie x razy odrysować. Nie wiem skąd takie wnioski wysnuwasz. Wystarczy, że kod biznesowy zależny jest od stanu jakiejś flagi reprezentowanej przez menu i ten kod w trakcie obliczeń używa tej flagi do wybrania ścieżki wykonania. Gdzie tu widzisz odrysowywanie to ja nie mam pojęcia. > Podsumowanie tutaj nie ma co "cerować dziury" tutaj trzeba zakasać > rękawy i napisać to porządnie. Stary, legacy system napisać od nowa? Chyba przesadziłeś. -- pozdrawiam Roman Tyczka
Re: Szybkość odczytu stanu itemu w menu
Author: immo
Date: Tue, 08 Oct 2019 08:27
Date: Tue, 08 Oct 2019 08:27
20 lines
2650 bytes
2650 bytes
W dniu poniedziałek, 7 października 2019 23:18:19 UTC+2 użytkownik J-23 napisał: > Jak najbardziej profiler jest dobrą radą, ale tutaj już na oko widać że > tego kodu nie da sie zoptymalizować :P Powód? z tego co pisał autor Jak to mówią - "na oko to jeden umarł". Tobie się może wydawać że to jest problemem, a profiler pokaże że całkiem coś innego. Do momentu do którego tego nie sprawdzisz - nie wiesz. > posta jest odwolanie do Checked gdzie na 100% jest to powiązane gdzieś z > wyświetlaniem na ekranie więc już samo to powoduje spadek wydajności > skoro to ma sie x razy odrysować. Ale to zależy. Nawet jeśliby odseparować GUI od logiki, to może być takie założenie że każda zmiana ma powodować odświeżenie danych. I to nie będzie miało znaczenia czy wywoła je click na checkboksie czy zmiana parametru w klasie. > Podsumowanie tutaj nie ma co "cerować dziury" tutaj trzeba zakasać > rękawy i napisać to porządnie. Bez sensu... Dla jednej poprawki pisać program od nowa? Gdzie pojawią się nowe błędy i problemy? A gdzie koszt takiego rozwiązania? pozdrawiam, Przemek O.
Re: Szybkość odczytu stanu itemu w menu
Author: miab
Date: Tue, 08 Oct 2019 13:08
Date: Tue, 08 Oct 2019 13:08
47 lines
3434 bytes
3434 bytes
W dniu 07-10-2019 o 23:18, J-23 pisze: > W dniu 07.10.2019 o 09:04, Roman Tyczka pisze: >> On Mon, 7 Oct 2019 00:08:36 +0200, Marek wrote: >> >>>>> mam w pętlach tysiące odwołań do stanu "Checked" itemu menu np. >>>>> "mnuBasicMode". >>>>> Ciekawi mnie, gdybym ten stan zapamiętał (po jego zmianie) w >>>>> jakiejś zmiennej >>>>> np. BasicMode, czy szybszy byłby odczyt stanu ze zmiennej niż z itemu? >>>> >>>> Długo się zastanawiałem jaki spaghetti code trzeba natrzaskać, żeby >>>> mieć >>>> pętle czytające tysiące razy stan kontrolek wizualnych... nie >>>> wymyśliłem. >>>> Słyszałeś o separacji UI od logiki biznesowej? O MVVM czy chociaż >>>> MVC? A >>>> coś Ci mówi SOLID, KISS czy DRY? >>> >>> Słyszałem, słyszałem. Projekt jest przejęty po kimś i nie opłaca się >>> go rozbijać >>> na np. MVP, jedynie zoptymalizować, stąd to pytanie, na które jak >>> widzę nie znasz >>> odpowiedzi :p >> >> Odpowiedź jest trywialna, choć nieoczywista. Trzeba sprawdzić kod gettera >> od tego property i ocenić jego złożoność. >> Ale i tak na 95% w złym miejscu szukasz optymalizacji. >> Poza tym do takich rzeczy używa się profilerów, a nie strzelania z >> tyłka na >> oślep. Z darmowych np. tego: >> https://www.delphitools.info/samplingprofiler/ >> > Jak najbardziej profiler jest dobrą radą, ale tutaj już na oko widać że > tego kodu nie da sie zoptymalizować :P Powód? z tego co pisał autor > posta jest odwolanie do Checked gdzie na 100% jest to powiązane gdzieś z > wyświetlaniem na ekranie więc już samo to powoduje spadek wydajności > skoro to ma sie x razy odrysować. Podejrzewam ze nic się i-krotnie nie odrysowuje, tylko w filtrze jest sprawdzana wartość if CheckBox.Checked=True then ... A czy ma to wpływ na szybkość w porównaniu z autonomiczną zmienną można po prostu przetestować na dużej pętli(przypuszczam że marginalną). miab
Re: Szybkość odczytu stanu itemu w menu
Author: wloochacz
Date: Mon, 28 Oct 2019 17:53
Date: Mon, 28 Oct 2019 17:53
22 lines
1951 bytes
1951 bytes
W dniu 01.10.2019 o 23:00, Roman Tyczka pisze: > On Mon, 30 Sep 2019 14:48:46 +0200, Marek wrote: > >> mam w pętlach tysiące odwołań do stanu "Checked" itemu menu np. "mnuBasicMode". >> Ciekawi mnie, gdybym ten stan zapamiętał (po jego zmianie) w jakiejś zmiennej >> np. BasicMode, czy szybszy byłby odczyt stanu ze zmiennej niż z itemu? > > Długo się zastanawiałem jaki spaghetti code trzeba natrzaskać, żeby mieć > pętle czytające tysiące razy stan kontrolek wizualnych... nie wymyśliłem. > Słyszałeś o separacji UI od logiki biznesowej? O MVVM czy chociaż MVC? A > coś Ci mówi SOLID, KISS czy DRY? Tobie się raczej na pewno grupy pomyliły... Przecież wyraźnie napisane jest Delphi. A Delphi jest dla klikaczy. To co się dziwisz? Ja już widziałem większe cuda - np. TEdit z ustawionym Visible na False do trzymania pomocniczej wartości... A ty jakieś magiczne skróty... -- wloochacz
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads