[ Príspevkov: 12 ] 
AutorSpráva
Offline

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

Registrovaný: 11.02.09
Prihlásený: 12.11.24
Príspevky: 2208
Témy: 145 | 145
Bydlisko: Liptovský M...
NapísalOffline : 11.05.2014 15:50 | casova efektivnost kodu

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 | 66
Bydlisko: Žilina
NapísalOffline : 11.05.2014 15:53 | casova efektivnost kodu

Č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ý: 12.11.24
Príspevky: 2208
Témy: 145 | 145
Bydlisko: Liptovský M...
Napísal autor témyOffline : 11.05.2014 15:57 | casova efektivnost kodu

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 | 34
Bydlisko: Brno
NapísalOffline : 11.05.2014 16:03 | casova efektivnost kodu

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ý: 12.11.24
Príspevky: 2208
Témy: 145 | 145
Bydlisko: Liptovský M...
Napísal autor témyOffline : 11.05.2014 16:10 | casova efektivnost kodu

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 | 34
Bydlisko: Brno
NapísalOffline : 11.05.2014 18:38 | casova efektivnost kodu

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 | 3
Bydlisko: ZV/BA
NapísalOffline : 11.05.2014 19:38 | casova efektivnost kodu

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ý: 09.01.25
Príspevky: 749
Témy: 31 | 31
Bydlisko: Ružomberok&...
NapísalOffline : 12.05.2014 1:00 | casova efektivnost kodu

Ď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ý: 12.11.24
Príspevky: 2208
Témy: 145 | 145
Bydlisko: Liptovský M...
Napísal autor témyOffline : 12.05.2014 15:25 | casova efektivnost kodu

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 | 34
Bydlisko: Brno
NapísalOffline : 12.05.2014 16:43 | casova efektivnost kodu

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ý: 09.01.25
Príspevky: 749
Témy: 31 | 31
Bydlisko: Ružomberok&...
NapísalOffline : 12.05.2014 17:16 | casova efektivnost kodu

to ja neviem :) je?


Offline

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

Registrovaný: 11.02.09
Prihlásený: 12.11.24
Príspevky: 2208
Témy: 145 | 145
Bydlisko: Liptovský M...
Napísal autor témyOffline : 13.05.2014 10:12 | casova efektivnost kodu

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
 [ Príspevkov: 12 ] 


casova efektivnost kodu



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

1551

01.11.2008 9:18

p360t

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

Časová os v HTML+CSS

v HTML, XHTML, XML, CSS

3

563

30.07.2024 18:13

juro333

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

browser game - casova slucka objektu

v JavaScript, VBScript, Ajax

1

593

08.03.2016 15:41

killer

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

342

22.09.2011 20:01

Denco1

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

Google Maps a iPhone 7 - casova os

v Sociálne siete

3

533

19.11.2020 0:10

okooko

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

Stiahnutie kódu

v HTML, XHTML, XML, CSS

4

499

23.04.2016 12:51

Pavolbablik

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

Sprehliadnenie kodu

v JavaScript, VBScript, Ajax

9

939

25.07.2008 20:17

beks

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

Úprava kódu :)

v JavaScript, VBScript, Ajax

0

595

12.07.2009 17:20

d0.0b

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

Generovanie kódu

v HTML, XHTML, XML, CSS

9

662

10.02.2011 21:25

walther

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

Optimalizacia kodu

v PHP, ASP

6

696

30.06.2009 13:39

rooobertek

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

úprava kodu

v Ostatné

0

548

09.03.2017 10:42

mio

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

zmena kodu

v PHP, ASP

1

548

20.04.2009 8:53

Blackdevil

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

prepis kodu

v Redakčné systémy

6

690

19.01.2007 22:42

Tom@S

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

skratenie kodu

v Databázy

1

477

05.09.2012 23:34

stenley

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

Kontrola kodu

v PHP, ASP

3

2622

01.11.2006 10:55

itsgoingd

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

úprava kódu

v PHP, ASP

2

537

19.07.2012 15:40

elo



© 2005 - 2025 PCforum, edited by JanoF