🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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
#347079
Author: Marek
Date: Mon, 30 Sep 2019 12:48
9 lines
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
#347080
Author: J-23
Date: Tue, 01 Oct 2019 12:37
20 lines
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
#347081
Author: Roman Tyczka
Date: Tue, 01 Oct 2019 21:00
14 lines
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
#347082
Author: immo
Date: Thu, 03 Oct 2019 08:03
16 lines
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
#347083
Author: Marek
Date: Sun, 06 Oct 2019 22:08
19 lines
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
#347084
Author: Roman Tyczka
Date: Mon, 07 Oct 2019 07:04
25 lines
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
#347085
Author: J-23
Date: Mon, 07 Oct 2019 21:18
34 lines
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
#347087
Author: Roman Tyczka
Date: Tue, 08 Oct 2019 06:52
36 lines
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
#347086
Author: immo
Date: Tue, 08 Oct 2019 08:27
20 lines
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
#347088
Author: miab
Date: Tue, 08 Oct 2019 13:08
47 lines
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
#347089
Author: wloochacz
Date: Mon, 28 Oct 2019 17:53
22 lines
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