Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 12 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
casova efektivnost kodu

Registrovaný: 11.02.09
Prihlásený: 28.03.23
Príspevky: 2208
Témy: 145
Bydlisko: Liptovský M...
Príspevok NapísalOffline : 11.05.2014 15:50

Napisal som triedu, ktora zobrazuje cas dve textove polia a obnovuje ich kazdych 10 milisekund. To je snad dost casu aby sa tento kod stihol vykonat, ale co keby som to nastavil na 1 milisekundu, stihalo by sa to v pohode?
Kód:
public class SRStimer extends Timer {

    protected String    b_string, s_string, prog;
    protected int       spl, counter, sec, min, hour = 0;
    protected boolean   split;
    protected Handler   handler;
    protected TextView  b, s;
    protected TimerTask task;

    public SRStimer(Handler h, TextView big, TextView small) {

        handler = h;
        b = big; s = small;

    }

    public void start(String program) {

        prog=program;

        task = new TimerTask() {

            @Override
            public void run() {

                if (prog.equals("stopwatch")) {

                    counter++;
                    if (counter == 100) { counter = 0; sec++; }
                    if (sec     == 60)  { sec     = 0; min++; }
                    if (min     == 60)  { min     = 0; hour++;}
                    if (hour    == 24)  { hour    = 0;        }

                }

                if (prog.equals("timer")) {

                    counter--;
                    if (counter < 0)  { counter = 99; sec--; }
                    if (sec     < 0)  { sec     = 59; min--; }
                    if (min     < 0)  { min     = 59; hour--;}
                    if (hour    < 0)  { return;              }

                }

                if (split) { // Split-time, nachvilu sa zastavi predavanie stringov do UI, ale cas bezi

                    spl++;
                    if (spl>75) { split=false; }
               
                }

                else { // Formatovnie stringov a postnutie do UI threadu

                    format_text();

                }
            }
        };

        super.scheduleAtFixedRate(task, 10, 10);

    }

    public void stop() {

        task.cancel();
        super.purge();


    }

    public void set_timer_time(int h, int m, int s) {
        hour    = h;
        min     = m;
        sec     = s;
        counter = 0;
        format_text();
    }

    public void split() {

        split = true;
        spl   = 0;

    }

    public void pause() {

        task.cancel();
        super.purge();

    }

    public void resume() {

        start(prog);

    }

    public String get_b_time() {

        return b_string;

    }

    public String get_s_time() {

        return s_string;

    }

    public void format_text() {

        String space = "";
        if (hour < 10) { space = "0"; } else { space = ""; }
        b_string = (space + Integer.toString(hour) + ":");

        if (min < 10) { space = "0"; } else { space = "";  }
        b_string = (b_string + space + Integer.toString(min) + ":");

        if (sec < 10) { space = "0"; } else { space = ""; }
        b_string = (b_string + space + Integer.toString(sec));

        if (counter < 10) { space = "0"; } else { space = ""; }
        s_string = ("." + space + Integer.toString(counter));

        handler.post(new Runnable() {

            @Override
            public void run() { b.setText(b_string); s.setText(s_string);
            }

        });
    }
}







_________________
"Only a warrior chooses pacifism, others are condemned to it."
- unknown author
Offline

Skúsený užívateľ
Skúsený užívateľ
casova efektivnost kodu

Registrovaný: 24.01.08
Prihlásený: 13.09.17
Príspevky: 14572
Témy: 66
Bydlisko: Žilina
Príspevok NapísalOffline : 11.05.2014 15:53

Čo tak si to odmerať a overiť si hypotézu?







_________________
C#, PHP, ...
Offline

Užívateľ
Užívateľ
casova efektivnost kodu

Registrovaný: 11.02.09
Prihlásený: 28.03.23
Príspevky: 2208
Témy: 145
Bydlisko: Liptovský M...
Príspevok Napísal autor témyOffline : 11.05.2014 15:57

tak ja to robim na emulatore a ten ide pomaly, tam mi to bezne preskakuje aj o 20fps tak to moc nechcem skusat na tom.

Ide aj o to, ze sa tam zakazdym vytvara novy objekt Runnable, ktory sa navyse predava cez handler do druheho vlakna. Teda neviem ci to sposobuje nejake vyznamnejsie zdrzanie ale znie to trochu divoko.







_________________
"Only a warrior chooses pacifism, others are condemned to it."
- unknown author
Offline

Čestný člen
Čestný člen
casova efektivnost kodu

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 11.05.2014 16:03

Existuje na to jedno rozumne riesenie - mat kod, ktory sa spusti iba raz a vzdy po ukonceni behu sam seba rekurzivne zavola.
Nemozes sa spoliehat na to, ze akykolvek kod sa spusti za nejaky pevne urceny cas, zavisi to od miliona okolnosti.


Offline

Užívateľ
Užívateľ
casova efektivnost kodu

Registrovaný: 11.02.09
Prihlásený: 28.03.23
Príspevky: 2208
Témy: 145
Bydlisko: Liptovský M...
Príspevok Napísal autor témyOffline : 11.05.2014 16:10

Aha, takze takto to riesit je uplny nezmysel?







_________________
"Only a warrior chooses pacifism, others are condemned to it."
- unknown author
Offline

Čestný člen
Čestný člen
casova efektivnost kodu

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 11.05.2014 18:38

Podla mna ano.


Offline

Užívateľ
Užívateľ
casova efektivnost kodu

Registrovaný: 15.01.07
Prihlásený: 23.09.15
Príspevky: 186
Témy: 3
Bydlisko: ZV/BA
Príspevok NapísalOffline : 11.05.2014 19:38

Duri ma pravdu, tiez suhlasim, nikdy to nie je fixne, lebo sa prideluju vypoctove zdroje dynamicky (operacny system)

a nejak som nepochopil v akom "emulatore" to mas







_________________
nb: Lenovo Thinkpad E520 (starsi pan uz), Fedora 20 / Win7 dualboot
" 1000.times { puts "I will not spam on the boards" } "
Offline

Užívateľ
Užívateľ
casova efektivnost kodu

Registrovaný: 19.09.06
Prihlásený: 21.04.24
Príspevky: 749
Témy: 31
Bydlisko: Ružomberok&...
Príspevok NapísalOffline : 12.05.2014 1:00

Ďuri píše:
Existuje na to jedno rozumne riesenie - mat kod, ktory sa spusti iba raz a vzdy po ukonceni behu sam seba rekurzivne zavola.
Nemozes sa spoliehat na to, ze akykolvek kod sa spusti za nejaky pevne urceny cas, zavisi to od miliona okolnosti.


Nevyhoda tohto riesenia je zas ta ze ked to bude bezat dostatocne dlho tak mu pretecie zasobnik a program mu padne..


Offline

Užívateľ
Užívateľ
casova efektivnost kodu

Registrovaný: 11.02.09
Prihlásený: 28.03.23
Príspevky: 2208
Témy: 145
Bydlisko: Liptovský M...
Príspevok Napísal autor témyOffline : 12.05.2014 15:25

matwej píše:
Duri ma pravdu, tiez suhlasim, nikdy to nie je fixne, lebo sa prideluju vypoctove zdroje dynamicky (operacny system)

a nejak som nepochopil v akom "emulatore" to mas


http://developer.android.com/tools/help/emulator.html



Tak teda ako je to mozne zrealizovat, da sa to vobec nejakym normalnym, mne zvladnutelnym sposobom?







_________________
"Only a warrior chooses pacifism, others are condemned to it."
- unknown author
Offline

Čestný člen
Čestný člen
casova efektivnost kodu

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 12.05.2014 16:43

stopa27 píše:
Nevyhoda tohto riesenia je zas ta ze ked to bude bezat dostatocne dlho tak mu pretecie zasobnik a program mu padne..

Snad je Java dostatocne inteligentna, aby vedela tail call optimization...


Offline

Užívateľ
Užívateľ
casova efektivnost kodu

Registrovaný: 19.09.06
Prihlásený: 21.04.24
Príspevky: 749
Témy: 31
Bydlisko: Ružomberok&...
Príspevok NapísalOffline : 12.05.2014 17:16

to ja neviem :) je?


Offline

Užívateľ
Užívateľ
casova efektivnost kodu

Registrovaný: 11.02.09
Prihlásený: 28.03.23
Príspevky: 2208
Témy: 145
Bydlisko: Liptovský M...
Príspevok Napísal autor témyOffline : 13.05.2014 10:12

Ale tak ta trieda Timer s metodou na casovanie scheduleAtFixedRate(task, 10, 10) je hadam naprogramovana dost dobre na to aby to casoval presne po x milisekundach nie?







_________________
"Only a warrior chooses pacifism, others are condemned to it."
- unknown author
Odpovedať na tému [ Príspevkov: 12 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Casova zlozitost

v Assembler, C, C++, Pascal, Java

8

1514

01.11.2008 9:18

p360t Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. browser game - casova slucka objektu

v JavaScript, VBScript, Ajax

1

540

08.03.2016 15:41

killer Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Google Maps a iPhone 7 - casova os

v Sociálne siete

3

470

19.11.2020 0:10

okooko Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Aká je časová dostupnosť súboru na Rapidshare?

v Sieťové a internetové programy

1

308

22.09.2011 20:01

Denco1 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. úprava kodu

v Ostatné

0

474

09.03.2017 10:42

mio Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. zmena kodu

v PHP, ASP

1

494

20.04.2009 8:53

Blackdevil Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. prepis kodu

v Redakčné systémy

6

616

19.01.2007 22:42

Tom@S Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. skratenie kodu

v Databázy

1

419

05.09.2012 23:34

stenley Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Kontrola kodu

v PHP, ASP

3

1862

01.11.2006 10:55

itsgoingd Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. úprava kódu

v PHP, ASP

2

485

19.07.2012 15:40

elo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. zmazanie kodu

v JavaScript, VBScript, Ajax

4

382

14.11.2011 17:24

Bajzik Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Zmena kódu

v HTML, XHTML, XML, CSS

6

597

18.03.2008 18:40

shaggy Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Zmenšenie kódu

v HTML, XHTML, XML, CSS

6

607

24.05.2017 16:24

GamerSK Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. citanie kodu

v PHP, ASP

2

432

14.01.2011 20:42

slebo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Stiahnutie kódu

v HTML, XHTML, XML, CSS

4

448

23.04.2016 12:51

Pavolbablik Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Sprehliadnenie kodu

v JavaScript, VBScript, Ajax

9

885

25.07.2008 20:17

beks Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra