hilpers


  hilpers > comp.lang.* > comp.lang.java

 #1  
28.02.2007, 14:06
Łukasz Nowicki
witam!

już w temacie wstępnie naświetliłem mój problem. właśnie czy java daje
taką możliwość, aby w jakiejś zmiennej przechowywany był warunek
uzależniony od innych zmiennych. może nie do końca jasno się wyrażam
dlatego napiszę przykład :


public void sprawdzWarunek(warunek) {

if(warunek) {
 #2  
28.02.2007, 15:12
Mateusz Ludwin
pl.comp.lang.java.getSenderByName("*Łukasz Nowicki*").quote();

> public void setWarunek(warunek) {
>
> warunek = { zm1 == 1 && zm2 == 2 ... }
> }
>
> czy można coś takiego zrobić ??


Nie, użyj lispa :>

> pewnie zapytacie po co mi takie kombinacje, skoro można zrobić po
> prostu jednego if'a, chodzi głównie o optymalizację, mam aplikację
> która będzie wywoływać if'a ok 100 razy/sek. w kilkunastu wątkach i po
> każdym wywołaniu musi wysłać komunikat. niestety w chwili obecnej
> efekt jest taki, że przy dłuższym działaniu, opóźnienia w wysyłaniu
> komunikatów robią się niedopuszczalnie za duże...


Szczerze mówiąc nie rozumiem :>
 #3  
28.02.2007, 17:52
Krzysztof Wolny
Łukasz Nowicki napisał(a):

> bo tak kombinowałem, czy warunek nie zrobić obiektem jakiejś klasy, w
> której odpowiednio będę coś ustawiał...
>
> pewnie zapytacie po co mi takie kombinacje, skoro można zrobić po
> prostu jednego if'a, chodzi głównie o optymalizację, mam aplikację
> która będzie wywoływać if'a ok 100 razy/sek. w kilkunastu wątkach i po
> każdym wywołaniu musi wysłać komunikat.


hmm i takie cos mialoby byc szybsze od zwyklego operatora == ?


> niestety w chwili obecnej
> efekt jest taki, że przy dłuższym działaniu, opóźnienia w wysyłaniu
> komunikatów robią się niedopuszczalnie za duże...


moze to kwestia systemu we/wy a nie przetwarzania ifow?
 #4  
28.02.2007, 18:44
Maciej Piechotka
On Wed, 28 Feb 2007 06:06:26 -0800, Lukasz Nowicki
wrote:

[..]
> jednego if'a, chodzi glównie o optymalizacje, mam aplikacje która bedzie
> wywolywac if'a ok 100 razy/sek. w kilkunastu wątkach i po kazdym
> wywolaniu musi wyslac komunikat. niestety w chwili obecnej efekt jest
> taki, ze przy dluzszym dzialaniu, opóLnienia w wysylaniu komunikatów
> robią sie niedopuszczalnie za duze...
>
> od razu dziekuje za wszystkie wskazówki i rady
>
> pozdrawiam
> LN


public interface Condition {
boolean check();
}

public class YourClass {
public void checkCondition(Condition c) {
if(c.check()) {
//...
}
}
}

public class SecondClass {
public void doSomething(YourClass yc) {
yc.checkCondition(new Condition() {
public boolean check() {
return i == 0;
}
});
}

private int i = 0;
}

Nie testowalem, ale powinno dzialac (moglem coś pomieszac z anonimowymi
klasami).

Pozdrawiam
 #5  
28.02.2007, 19:05
Rafal
>> czy można coś takiego zrobić ??
>
> Nie, użyj lispa :>
>
>> pewnie zapytacie po co mi takie kombinacje, skoro można zrobić po
>> prostu jednego if'a, chodzi głównie o optymalizację, mam aplikację
>> która będzie wywoływać if'a ok 100 razy/sek. w kilkunastu wątkach i po
>> każdym wywołaniu musi wysłać komunikat. niestety w chwili obecnej
>> efekt jest taki, że przy dłuższym działaniu, opóźnienia w wysyłaniu
>> komunikatów robią się niedopuszczalnie za duże...

>
> Szczerze mówiąc nie rozumiem :>



To chyba jakieś zboczenie zawodowe. :)
Swego czasu (jeśli mnie pamięć nie myli) Pan Łukasz był czynnym grupowiczem
pl.como.lang.pascal, gdzię wyróżniał się głównie wiedzą z asemblera i
optymalizacji.
I tak już widzać zostało. :)

Ps. Asembler i Java to dosyć kontrowersyjne zestawienie. ;)
 #6  
01.03.2007, 07:26
oczek
On 2/28/2007 3:06 PM, Łukasz Nowicki wrote:

> prostu jednego if'a, chodzi głównie o optymalizację, mam aplikację
> która będzie wywoływać if'a ok 100 razy/sek. w kilkunastu wątkach i po


zadaj sobie pytanie czy dla wszystkich tych wywolan warunek
ktory sprawdzasz bedzie taki sam. jezeli tak to if powinien
byc poza petla. jezeli nie to nie wazne co zrobisz warunek
musisz sprawdzic, niezaleznie czy wynik przypiszesz do
zmiennej czy nie.
 #7  
01.03.2007, 07:42
Łukasz Nowicki
> zadaj sobie pytanie czy dla wszystkich tych wywolan warunek
> ktory sprawdzasz bedzie taki sam. jezeli tak to if powinien
> byc poza petla. jezeli nie to nie wazne co zrobisz warunek
> musisz sprawdzic, niezaleznie czy wynik przypiszesz do
> zmiennej czy nie.


właśnie w tym problem, że za każdym razem if będzie porównywał co
innego. polega to na tym, że każdy wątek ma ustalone z góry jakieś
filtry dotyczące ok 9 różnych rzeczy i teraz aplikacja otrzymuje
odpowiednie zdarzenie i sprawdza czy pasuje ono do danego filtra i w
zależność od rezultatu, przesyła to zdarzenie dalej lub nie...

tyle,że może być taka sytuacja, że niektóre z przesłanych elementów
danego zdarzenia nie muszą być filtrowane, ponieważ nie zostały
ustawione dla nich filtry - w takiej sytuacji pomyślałem, że zamiast
sprawdzać wszystkie 9 elementów sprawdzać tylko te, które mają
ustawione filtry, przez co aplikacja działała by szybciej ??

wiem, trochę to wszystko zakręcone, ale i tak dziękuje ślicznie za
wszystkie odpowiedzi - nic, będę kombinował dalej


pozdrawiam
ŁN
 #8  
01.03.2007, 07:47
Łukasz Nowicki
> moze to kwestia systemu we/wy a nie przetwarzania ifow?


no właśnie też tak się nad tym zastanawiam, może to nie do końca if'y
zwalniają mi aplikację tylko np. samo gniazdo UDP nie nadąża ich
później wysyłać...

ja wiem, że to może wyglądać na "sztuczną" optymalizację, ale niestety
cel aplikacji polega na tym, aby to wszystko działało jak
najszybciej...

pozdrawiam
ŁN
 #9  
01.03.2007, 10:11
Brzezi
czw, 01 mar 2007 o 08:47 GMT, Łukasz Nowicki napisał(a):

> no właśnie też tak się nad tym zastanawiam, może to nie do końca if'y
> zwalniają mi aplikację tylko np. samo gniazdo UDP nie nadąża ich
> później wysyłać...


no i tu robisz wlasnie podstawowy blad, optymalizowac powinienes cos dopiero wtedy
gdy tego wymaga, a teraz sam nie wiesz czy to tego wymaga...
do roboty z profilerem...

Pozdrawiam
Brzezi
 #10  
01.03.2007, 12:23
Łukasz Nowicki
> no i tu robisz wlasnie podstawowy blad, optymalizowac powinienes cos dopiero wtedy
> gdy tego wymaga, a teraz sam nie wiesz czy to tego wymaga...


masz rację... ale to dlatego,że od niedawna programuję zawodowo i brak
mi jeszcze Waszego doświadczenia :)

pośpieszyłem się trochę z tym postem odnośnie if'ów, bo problemleżał
w czym innym, na szczęście już wszystko naprawiłem i śmiga teraz jak
marzenie, hehe ;)

jeszcze raz dziękuje wszystkim za rady, na pewno wyciągnę z nich
wnioski na przyszłość


pozdrawiam
ŁN
 #11  
02.03.2007, 13:56
as
Użytkownik "Łukasz Nowicki" <pieckowo> napisał w wiadomości
news:6800
witam!

już w temacie wstępnie naświetliłem mój problem. właśnie czy java daje
taką możliwość, aby w jakiejś zmiennej przechowywany był warunek
uzależniony od innych zmiennych. może nie do końca jasno się wyrażam
dlatego napiszę przykład :


public void sprawdzWarunek(warunek) {

if(warunek) {
 #12  
02.03.2007, 17:40
Mateusz Ludwin
pl.comp.lang.java.getSenderByName("*as*").quote();

> a nie mozesz czegos w stylu
>
> boolean warunek = zm1 == 1 && zm2 == 2 ... ?


I mówisz że to będzie można setować?
 #13  
02.03.2007, 22:31
Ktos&Cos
Użytkownik "Mateusz Ludwin" <nie> napisał w wiadomości
news:56c1
> pl.comp.lang.java.getSenderByName("*as*").quote();
>
>> a nie mozesz czegos w stylu
>>
>> boolean warunek = zm1 == 1 && zm2 == 2 ... ?

>
> I mówisz że to będzie można setować?
> --
> Omniscient, omnipotent, omnipresent, without judgment
>
> Mateusz Ludwin matl [at] megapolis [dot] pl


A czy to nie moze byc tak?

void setWarunek(boolean war) {
this.warunek = war;
}

costam.setWarunek(zm1 == 1 && zm2 == 2 ...);

pozdrawiam
A.
Podobne wątki
Warunek WHERE

Witam, posiadam warunek where budowany z formularza Filtr na którym włączam poszczególne opcje filtrowania: Where tbl_zadania.login_odp = , lub tbl_zadania.nr_dzialu =...

Warunek w C

Witam wszystkich Kto mi powie dlaczego taka konstrukcja sie nie kompiluje ? (n) ? return 1 : return 0; Pozdrawiam

Facelets, czy mozna ustawic warunek wyswietlania?

Witam, Wyciagam sobie komponent poprzez <ui:include src="/xxx/mojKomponent.xhtml"/> ale musze go wyciagac TYLKO wtedy gdy moja flaga np. Mama == true jak moge owarunkowac...

warunek if

czy moglby mi ktos powiedziec czemu to nie dziala: if ((substr($db->typ,0,10) == "MIESZKANIE") and (substr($db->typ,0,3) == "DOM") and (substr($db->typ,0,7) ==...

warunek if

jak zapisac warunek $result = mysql_query($query) ktory sprawdza czy zapytanie to prawda czy falsz ? if($result>0) " print " nie dziala"; mag


Czasy w strefie GMT. Teraz jest 14:46. | Privacy Policy