Testiraportti Android virtuaalikone vs. natiivikoodi Ville Laine, Delta 23
|
|
- Pirjo Virtanen
- 8 vuotta sitten
- Katselukertoja:
Transkriptio
1 Testiraportti Android virtuaalikone vs. natiivikoodi Ville Laine, Delta 23 1
2 Sisällys 1. Johdanto Testiohjelma Testi 1: Raaka funktiokutsu Testi 2: Yhteenlaskutesti Testi 3: Kertolaskutesti Testi 4: Jakolaskutesti Testi 5: Todellisen maailman matematiikka Testi 6: Muistinvaraus Testi 7: Luokkatesti Tulokset Huomioitavaa tuloksista Testi Testi Testi Lopputulokset Lähteet...8 2
3 1. Johdanto Android käyttöjärjestelmä suorittaa sovellukset ensisijaisesti käyttäen Dalvik virtuaalikonetta (Bornstein). Koska Dalvik on Javapohjainen, ja Javan suorituskyvystä voidaan olla montaa mieltä, herää väistämättä kysymys: valuvatko nykyisten mobiililaitteiden tehot hukkaan jos niitä käytetään virtuaalikoneen läpi. Omakohtaiset epäilykseni Dalvik -koneen suorituskyvystä heräsivät viimeistään siinä vaiheessa, kun ohjelman nopeus oli katastrofaalisen hidas vielä senkin jälkeen kun kaikki hyvän olio-ohjelmoinnin periaatteet oli hylätty paremman suorituskyvyn toivossa. Tämän seurauksena ainoa vaihtoehto on virtuaalikoneen hylkääminen ja ohjelman tekeminen suoraan natiivikoodilla (C/C++). Android tarjoaa työkalut myös natiiviohjelmien tekemiseen, mutta nämä työkalut ei kuulu perus SDK:iin vaan käyttäjän täytyy ladata Native Develpoment Kit (NDK). 2. Testiohjelma Jotta voitiin selvittää tarkalleen missä ohjelman nopeuden pullonkaula on, luotiin yksinkertainen testiohjelma, joka mittaa eri toimintoihin kuluvan ajan kun ne suoritetaan virtuaalikoneella ja natiiviohjelmalla. Testiohjelma mittaa ajat millisekunteina sekä Javan nanotime metodilla. Nanotimen antamaa tulosta ei kuitenkaan voida muuttaa mihinkään järkevään aikayksikköön johtuen sen riippuvuudesta prosessorin kellotaajuudesta, joten testituloksissa ei ole yksikköä. Tällä ei ole merkitystä testin kannalta, sillä ainoastaan aikaero on oleellinen. Kuten jo mainittu, suoritusajat mitattiin javaohjelmalla, joten natiivin ohjelman suoritukseen kuluu aina jonkin verran ylimääräistä aikaa. Tämä voidaan tarvittaessa kompensoida käyttämällä testin 1 tuloksia, mutta erot eivät kuitenkaan ole niin merkittäviä, että tässä tutkimuksessa kompensointia olisi tehty. Testiohjelma koostuu 7 eri testistä joiden toiminta on kuvattu alla. Kukin testi toistettiin 100 kertaa poikkeuksena muistinvaraus- ja luokkatestit, jotka ovat niin raskaita, että niiden toistamiseen olisi kulunut liikaa aikaa. Nämä testit toistettiin vain 10 kertaa. Tuloksissa on esitetty kaikkiin toistoihin kulunut yhteisaika. Testien kuvauksissa n on Testi 1: Raaka funktiokutsu Raaka funktiokutsutesti mittaa ajan joka kuluu funktion kutsumiseen, ja tuloksen palauttamiseen. Funktiossa ei tehdä mitään Testi 2: Yhteenlaskutesti Yhteenlaskutestin ensimmäisessä osassa lasketaan kahden vakion summa n kertaa. Toisessa osassa tulos lisätään itseensä n kertaa Testi 3: Kertolaskutesti Kertolaskutestin ensimmäisessä osassa lasketaan liukuluvun tulo itsensä kanssa n kertaa. Toisessa osassa tulos lisätään itseensä n kertaa. 3
4 2.4. Testi 4: Jakolaskutesti Jakolaskutestissä lasketaan ensin kahden vakion osamäärä n kertaa ja seuraavaksi jaetaan tulosta vakiolla n kertaa Testi 5: Todellisen maailman matematiikka Tässä testissä käytetään kunkin ympäristön tarjoamia matematiikkakirjastoja. Javalla käytettiin Androidille optimoitua FloatMath luokkaa ja C++:lla standardikirjaston math kirjastoa. Testin ensimmäisessä osassa laskettiin monimutkainen trigonometrinen lauseke n kertaa ja toisessa osassa kolmekomponenttisen vektorin pituus n kertaa. Lausekkeet olivat: cos(n) sin( 1.52 n+1 ) (n 3.0) (n 3.0)+( n 1.87 ) ( n 1.87 )+n n 2.6. Testi 6: Muistinvaraus Muistinvaraustestissä varattiin b tavua muistia, kirjoitettiin se täyteen, ja sen jälkeen luettiin kaikki tavut. b:n arvo riippuu testilaitteen muistikapasiteetista Testi 7: Luokkatesti Luokkatestissä kutsutaan n:n luokkainstanssin metodia joka lisää kentän 1 arvoa annetulla parametrilla. Parametrin arvo haetaan saman instanssin toisella metodilla, joka palauttaa kentän 2 arvon. 3. Tulokset Testiohjelma suoritettiin kahdella testilaitteella; Samsung Galaxy S ja Denver Tac Tulokset on esitetty taulukoissa
5 Taulukko 1 SGS tulokset millisekunteina VM Native code Difference Raw function call Addition Multiplication Division Real world math Memory allocation Class Taulukko 2 SGS nanotime tulokset VM Native code Difference Raw function call Addition Multiplication Division Real world math Memory allocation Class Taulukko 3 Tac-7028 tulokset millisekunteina VM Native code Difference Raw function call Addition Multiplication Division Real world math Memory allocation Class Taulukko 4 Tac-7028 nanotime tulokset VM Native code Difference Raw function call Addition Multiplication Division Real world math Memory allocation Class Testien nanotime tuloksista lasketut suhteelliset nopeuserot on esitetty taulukossa 5. 5
6 Taulukko 5 Testien suhteelliset nopeuserot Testi Tac-7028 Galaxy S Keskiarvo Huomioitavaa tuloksista Tuloksia tarkastellessa täytyy huomioida jo edellä mainittu ylimääräinen viive natiivikoodin suorituksessa Testi 1 Testin 1 tulokset vaihtelivat hämmästyttävän paljon testiohjelman eri versioiden välillä. Debug-versiolla virtuaalikone oli aina noin kolme kertaa niin nopea kuin natiivikoodi, mutta releaseversiolla erot tasoittuivat tai Galaxy S:n tapauksessa jopa kääntyivät päinvastaisiksi. Tästä päätellen release-käännökseen tehdään optimointeja, jotka nopeuttavat normaaleja funktiokutsuja Testi 6 Muistinvaraustestissä oli alunperin tarkoitus myös mitata muistin vapauttamiseen kuluva aika, mutta Dalvikin roskankerääjää ei kuitenkaan pystytty pakottamaan vapauttamaan muistia tietyllä hetkellä eikä efektiivisesti, mikä johti muistin loppumiseen testin aikana. Ongelma toistui luokkatestin aikana, jolloin varaustestissä käytetty muisti oli mahdollisesti edelleen varattuna ja ainoa keino estää ohjelmaa kaatumasta, oli vähentää varattavan muistin määrää huomattavasti. Tässä tutkimuksessa ei siis lopulta mitattu muistin vapautusnopeutta, mutta testiohjelman kehitysversiolla saadut tulokset olivat samassa nopeusluokassa varauksen kanssa. Jos virtuaalikoneella yritetään varata enemmän muistia kuin se sallii, ohjelma pakotetaan sulkeutumaan. Näin ei kuitenkaan tapahdu natiiviohjelmalla, jonka muistinkäyttö on linux-ytimen vastuulla. Natiiviohjelmalla ei ole asetettua muistinkäyttörajoitusta, virtuaalikone sammuttaa taustalla olevia sovelluksia niin kauan, että natiiviohjelmalle on saatavilla tarpeeksi muistia. Mikäli natiiviohjelma yrittää varata enemmän muistia, kuin laitteessa on, sovellus kaatuu ilman näkyvää virheilmoitusta Testi 7 Muistiongelmat ilmenivät myös luokkatestissä, jossa luodaan oliota. Kuitenkin ani harvassa 6
7 todellisessa sovelluksessa on tarvetta näin suurelle objektimäärälle, joten nämä muistiongelmat tuskin ilmenevät käytännössä. 5. Lopputulokset Vaikka nopeuserot virtuaalikoneen ja natiivikoodin välillä näyttävät todella hurjilta, tulee muistaa, että tämä testiohjelma oli tarkoitettu nimenomaan esittämään erot mahdollisimman selvästi. Testitapaukset eivät ole järin kuvaavia mobiililaitteen peruskäytöstä. Vielä tärkeämpi huomio on, että esimerkiksi yksi yhteenlaskutesti vei keskimäärin 6 millisekuntia aikaa Tac-7028 testilaitteella ja Galaxy S:llä vielä vähemmän. Kuten Android NDK:in dokumentaatiossa todetaan, natiivikoodista ei ole hyötyä useimmille sovelluksille, mutta se monimutkaistaa kehitysprosessia huomattavasti. Mikäli sovellus aiotaan kääntää alustalta toiselle (ja muutkin alustat tukevat natiiveja ohjelmia) on perusteltua käyttää NDK:iä. Toinen mahdollinen käyttökohde on äärimmäisen raskaat pelit, joka on itselläni syy natiivikoodin käyttöön. Tämä testi suoritettiin ns. low end-laitteilla, mutta näilläkin kävi ilmi laitekohtaiset suorituskykyerot sekä virtuaalikoneella, että natiiviohjelmilla. Tac-7028:n 1GHz:n prosessori hävisi useimmissa testeissä Galaxy S:n vain 800MHz prosessorille. Mikäli testissä olisi ollut mukana tehokkaampia moniytimisiä laitteita, olisi nopeuserot varmasti kaventuneet huomattavasti. 7
8 6. Lähteet Dan Bornstein, Dalvik VM internals, 2008 viitattu Android NDK documentation, viitattu
Videotoisto Nexus 7 tableteilla: Android 4.4 KitKat selvästi edellistä versiota heikompi
Videotoisto Nexus 7 tableteilla: Android 4.4 KitKat selvästi edellistä versiota heikompi - Android 4.3 Jelly Bean ja 4.4 Kitkat käyttöjärjestelmien videotoiston suorituskyvyn vertailu Nexus 7 tabletilla
Lisätiedot5. Numeerisesta derivoinnista
Funktion derivaatta ilmaisee riippumattoman muuttujan muutosnopeuden riippuvan muuttujan suteen. Esimerkiksi paikan derivaatta ajan suteen (paikan ensimmäinen aikaderivaatta) on nopeus, joka ilmaistaan
LisätiedotTutoriaaliläsnäoloista
Tutoriaaliläsnäoloista Tutoriaaliläsnäolokierroksella voi nyt täyttää anomuksen läsnäolon merkitsemisestä Esim. tagi ei toiminut, korvavaltimon leikkaus, yms. Hyväksyn näitä omaa harkintaa käyttäen Tarkoitus
Lisätiedot815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset Harjoituksen aiheena ovat aliohjelmat ja abstraktit tietotyypit sekä olio-ohjelmointi. Tehtävät tehdään C-, C++- ja Java-kielillä.
LisätiedotConcurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo
Concurrency - Rinnakkaisuus Group: 9 Joni Laine Juho Vähätalo Sisällysluettelo 1. Johdanto... 3 2. C++ thread... 4 3. Python multiprocessing... 6 4. Java ExecutorService... 8 5. Yhteenveto... 9 6. Lähteet...
LisätiedotAndroid ohjelmointi. Mobiiliohjelmointi 2-3T5245
Android ohjelmointi Mobiiliohjelmointi 2-3T5245 Mikä on Android? Linux kernelin päälle rakennettu, Googlen kehittämä sovelluspino mobiilisovelluksiin Erillinen versio puhelimelle ja taulutietokoneille
Lisätiedot7. Näytölle tulostaminen 7.1
7. Näytölle tulostaminen 7.1 Sisällys System.out.println- ja System.out.print-operaatiot. Tulostus erikoismerkeillä. Edistyneempää tulosteiden muotoilua. 7.2 Tulostusoperaatiot System.out.println-operaatio
LisätiedotFysiikan laboratoriotyöt 1, työ nro: 2, Harmoninen värähtelijä
Fysiikan laboratoriotyöt 1, työ nro: 2, Harmoninen värähtelijä Tekijä: Mikko Laine Tekijän sähköpostiosoite: miklaine@student.oulu.fi Koulutusohjelma: Fysiikka Mittausten suorituspäivä: 04.02.2013 Työn
LisätiedotAlgoritmit 1. Luento 3 Ti Timo Männikkö
Algoritmit 1 Luento 3 Ti 17.1.2017 Timo Männikkö Luento 3 Algoritmin analysointi Rekursio Lomituslajittelu Aikavaativuus Tietorakenteet Pino Algoritmit 1 Kevät 2017 Luento 3 Ti 17.1.2017 2/27 Algoritmien
LisätiedotJavan perusteita. Janne Käki
Javan perusteita Janne Käki 20.9.2006 Muutama perusasia Tietokone tekee juuri (ja vain) sen, mitä käsketään. Tietokone ymmärtää vain syntaksia (sanojen kirjoitusasua), ei semantiikkaa (sanojen merkitystä).
LisätiedotMatematiikan tukikurssi
Matematiikan tukikurssi Kurssikerta 7 1 Useamman muuttujan funktion raja-arvo Palautetaan aluksi mieliin yhden muuttujan funktion g(x) raja-arvo g(x). x a Tämä raja-arvo kertoo, mitä arvoa funktio g(x)
LisätiedotTekninen suunnitelma - StatbeatMOBILE
Tekninen suunnitelma - StatbeatMOBILE Versio Päivämäärä Henkilö Kuvaus 1.0 13.12.2013 Pöyry Alustava rakenne ja sisältö 1.1 22.12.2013 Pöyry Lisätty tekstiä ilmoituksiin, turvallisuuteen ja sisäiseen API:in
LisätiedotELM GROUP 04. Teemu Laakso Henrik Talarmo
ELM GROUP 04 Teemu Laakso Henrik Talarmo 23. marraskuuta 2017 Sisältö 1 Johdanto 1 2 Ominaisuuksia 2 2.1 Muuttujat ja tietorakenteet...................... 2 2.2 Funktiot................................
LisätiedotTekninen suunnitelma - StatbeatMOBILE
Tekninen suunnitelma - StatbeatMOBILE Versio Päivämäärä Henkilö Kuvaus 1.0 13.12.2013 Pöyry Alustava rakenne ja sisältö 1.1 22.12.2013 Pöyry Lisätty tekstiä ilmoituksiin, turvallisuuteen ja sisäiseen API:in
Lisätiedot2) Aliohjelma, jonka toiminta perustuu sivuvaikutuksiin: aliohjelma muuttaa parametrejaan tai globaaleja muuttujia, tulostaa jotakin jne.
Proseduurit Proseduuri voi olla 1) Funktio, joka palauttaa jonkin arvon: real function sinc(x) real x sinc = sin(x)/x... y = sinc(1.5) 2) Aliohjelma, jonka toiminta perustuu sivuvaikutuksiin: aliohjelma
LisätiedotLuento 1 Tietokonejärjestelmän rakenne
Luento 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 2 Tietokone
LisätiedotLuento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus
Luento 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 2 Tietokone
LisätiedotKehittyneiden Aaltomuotojen Käytettävyys HF-alueen Tiedonsiirrossa
MATNE Tutkimusseminaari 17.11.2011 Kehittyneiden Aaltomuotojen Käytettävyys HF-alueen Tiedonsiirrossa Markku Jokinen 2 Sisällys Johdanto WARP ohjelmistoradioalusta HF-toteutus lmenneet rajoitukset ohjelmistoradioalustalla
Lisätiedot4. Luokan testaus ja käyttö olion kautta 4.1
4. Luokan testaus ja käyttö olion kautta 4.1 Olion luominen luokasta Java-kielessä olio määritellään joko luokan edustajaksi tai taulukoksi. Olio on joukko keskusmuistissa olevia tietoja. Oliota käsitellään
Lisätiedot11/20: Konepelti auki
Ohjelmointi 1 / syksy 2007 11/20: Konepelti auki Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/11 Tämän luennon
LisätiedotCUDA. Moniydinohjelmointi 17.4.2012 Mikko Honkonen
CUDA Moniydinohjelmointi 17.4.2012 Mikko Honkonen Yleisesti Compute Unified Device Architecture Ideana GPGPU eli grafiikkaprosessorin käyttö yleiseen laskentaan. Nvidian täysin suljetusti kehittämä. Vuoden
LisätiedotJärvitesti Ympäristöteknologia T571SA 7.5.2013
Hans Laihia Mika Tuukkanen 1 LASKENNALLISET JA TILASTOLLISET MENETELMÄT Järvitesti Ympäristöteknologia T571SA 7.5.2013 Sarkola Eino JÄRVITESTI Johdanto Järvien kuntoa tutkitaan monenlaisilla eri menetelmillä.
LisätiedotMATEMATIIKAN KOE. AMMATIKKA top 17.11.2005. 2. asteen ammatillisen koulutuksen kaikkien alojen yhteinen matematiikka kilpailu. Oppilaitos:.
AMMATIKKA top 17.11.005 MATEMATIIKAN KOE. asteen ammatillisen koulutuksen kaikkien alojen yhteinen matematiikka kilpailu Nimi: Oppilaitos:. Koulutusala:... Luokka:.. Sarjat: MERKITSE OMA SARJA 1. Tekniikka
LisätiedotOsoitin ja viittaus C++:ssa
Osoitin ja viittaus C++:ssa Osoitin yksinkertaiseen tietotyyppiin Osoitin on muuttuja, joka sisältää jonkin toisen samantyyppisen muuttujan osoitteen. Ohessa on esimerkkiohjelma, jossa määritellään kokonaislukumuuttuja
LisätiedotPedacode Pikaopas. Java-kehitysympäristön pystyttäminen
Pedacode Pikaopas Java-kehitysympäristön pystyttäminen Pikaoppaan sisältö Pikaoppaassa kuvataan, miten Windowstyöasemalle asennetaan Java-ohjelmoinnissa tarvittavat työkalut, minkälaisia konfigurointeja
LisätiedotMatematiikan tukikurssi
Matematiikan tukikurssi Kurssikerta 4 Jatkuvuus Jatkuvan funktion määritelmä Tarkastellaan funktiota f x) jossakin tietyssä pisteessä x 0. Tämä funktio on tässä pisteessä joko jatkuva tai epäjatkuva. Jatkuvuuden
LisätiedotLuento 1 Tietokonejärjestelmän rakenne
Luento 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 2 Luento
LisätiedotLuento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus
Luento 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 2 Tietokone
LisätiedotJAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?
JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,
LisätiedotOlion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();
Sisällys 7. Oliot ja viitteet Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen. Viitteiden käsittelyä: sijoitus, vertailu ja varautuminen null-arvoon. Viite metodin paluuarvona.. 7.1 7.2 Olio
LisätiedotJuuri 10 Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty
Juuri 0 Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty 9..08 Kertaus K. a) Alapaineiden pienin arvo on ja suurin arvo 74, joten vaihteluväli on [, 74]. b) Alapaineiden keskiarvo on 6676870774
Lisätiedot3. Muuttujat ja operaatiot 3.1
3. Muuttujat ja operaatiot 3.1 Sisällys Imperatiivinen laskenta. Muuttujat. Nimi ja arvo. Muuttujan nimeäminen. Muuttujan tyyppi. Operaattorit. Operandit. Arvon sijoitus muuttujaan. Aritmeettiset operaattorit.
LisätiedotTalousmatematiikan perusteet: Luento 4. Potenssifunktio Eksponenttifunktio Logaritmifunktio
Talousmatematiikan perusteet: Luento 4 Potenssifunktio Eksponenttifunktio Logaritmifunktio Viime luennolla Funktiolla f: A B kuvataan muuttujan y B riippuvuutta muuttujasta x A A on lähtö- tai määrittelyjoukko
LisätiedotTuotantoprosessin optimaalinen aikataulutus (valmiin työn esittely)
Tuotantoprosessin optimaalinen aikataulutus (valmiin työn esittely) Joona Kaivosoja 01.12.2014 Ohjaaja: DI Ville Mäkelä Valvoja: Prof. Ahti Salo Työn saa tallentaa ja julkistaa Aalto-yliopiston avoimilla
LisätiedotMobiilipalvelut kirjastoissa Juha Hälinen verkkopalvelusuunnittelija
Mobiilipalvelut kirjastoissa Juha Hälinen verkkopalvelusuunnittelija Jyväskylän kaupunginkirjasto Kirjastoiden ja kännyköiden monimutkainen suhde Tilastoja ja historiaa WAP1.0 vuonna 1998 Nokia Communicatorilla
LisätiedotJos nyt on saatu havaintoarvot Ü ½ Ü Ò niin suurimman uskottavuuden
1.12.2006 1. Satunnaisjakauman tiheysfunktio on Ü µ Üe Ü, kun Ü ja kun Ü. Määritä parametrin estimaattori momenttimenetelmällä ja suurimman uskottavuuden menetelmällä. Ratkaisu: Jotta kyseessä todella
LisätiedotTestidatan generointi
Testidatan generointi Anu Ahonen Kevät 2008 Tämä työ on tehty Creative Commons -lisenssin alla Työn tarkasti 9.4.2008 Jouni Huotari (JAMK/IT) 1 SISÄLTÖ 1 TYÖN LÄHTÖKOHDAT JA TOTEUTUS...2 2 TESTIDATAN GENEROINTI
LisätiedotLIITE 1 VIRHEEN ARVIOINNISTA
1 LIITE 1 VIRHEEN ARVIOINNISTA Mihin tarvitset virheen arviointia? Mittaustulokset ovat aina todellisten luonnonvakioiden ja tutkimuskohdetta kuvaavien suureiden likiarvoja, vaikka mittauslaite olisi miten
Lisätiedot(b) Tunnista a-kohdassa saadusta riippuvuudesta virtausmekaniikassa yleisesti käytössä olevat dimensiottomat parametrit.
Tehtävä 1 Oletetaan, että ruiskutussuuttimen nestepisaroiden halkaisija d riippuu suuttimen halkaisijasta D, suihkun nopeudesta V sekä nesteen tiheydestä ρ, viskositeetista µ ja pintajännityksestä σ. (a)
LisätiedotSolidity älysopimus ohjelmointi. Sopimus suuntautunut ohjelmointi
Solidity älysopimus ohjelmointi Sopimus suuntautunut ohjelmointi Merkle puu Kertausta eiliseltä Solidity on korkean tason älysopimus ohjelmointikieli Muistuttaa olio-ohjelmointia Javalla Sopimuskoodi on
LisätiedotHarjoitustyö: virtuaalikone
Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman
LisätiedotLIITE 1 VIRHEEN ARVIOINNISTA
Oulun yliopisto Fysiikan opetuslaboratorio Fysiikan laboratoriotyöt 1 1 LIITE 1 VIRHEEN RVIOINNIST Mihin tarvitset virheen arviointia? Mittaustuloksiin sisältyy aina virhettä, vaikka mittauslaite olisi
LisätiedotRajapinta (interface)
1 Rajapinta (interface) Mikä rajapinta on? Rajapinta ja siitä toteutettu luokka Monimuotoisuus ja dynaaminen sidonta Rajapinta vs periytyminen 1 Mikä rajapinta on? Rajapintoja käytetään, kun halutaan määritellä
Lisätiedot¼ ¼ joten tulokset ovat muuttuneet ja nimenomaan huontontuneet eivätkä tulleet paremmiksi.
10.11.2006 1. Pituushyppääjä on edellisenä vuonna hypännyt keskimäärin tuloksen. Valmentaja poimii tämän vuoden harjoitusten yhteydessä tehdyistä muistiinpanoista satunnaisesti kymmenen harjoitushypyn
LisätiedotSisällys. 7. Oliot ja viitteet. Olion luominen. Olio Java-kielessä
Sisälls 7. Oliot ja viitteet Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen.. Viitteiden vertailu. Varautuminen null-arvoon. Viite metodin paluuarvona.. Muuttumattomat ja muuttuvat merkkijonot.
LisätiedotSisällys. 3. Muuttujat ja operaatiot. Muuttujat ja operaatiot. Muuttujat. Operaatiot. Imperatiivinen laskenta. Muuttujat. Esimerkkejä: Operaattorit.
3. Muuttujat ja operaatiot Sisällys Imperatiivinen laskenta. Muuttujat. Nimi ja arvo. Muuttujan nimeäminen. Muuttujan tyyppi.. Operandit. Arvon sijoitus muuttujaan. Aritmeettiset operaattorit. Arvojen
LisätiedotDifferentiaalilaskennan tehtäviä
Differentiaalilaskennan tehtäviä DIFFERENTIAALILASKENTA 1. Raja-arvon käsite, derivaatta raja-arvona 1.1 Raja-arvo pisteessä 1.2 Derivaatan määritelmä 1.3 Derivaatta raja-arvona 2. Derivoimiskaavat 2.1
LisätiedotLuento 1 (verkkoluento 1) Tietokonejärjestelmä
Luento 1 (verkkoluento 1) Tietokonejärjestelmä Järjestelmän eri tasot Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä This image cannot currently be displayed.
LisätiedotLyhyt yhteenvetokertaus nodaalimallista SÄTEILYTURVAKESKUS STRÅLSÄKERHETSCENTRALEN RADIATION AND NUCLEAR SAFETY AUTHORITY
Lyhyt yhteenvetokertaus nodaalimallista SÄTELYTUVAKESKUS STÅLSÄKEHETSCENTALEN ADATON AND NUCLEA SAFETY AUTHOTY Ei enää tarkastella neutronien kulkua, vaan työn alla on simppeli tuntemattoman differentiaaliyhtälöryhmä
LisätiedotHavaitsevan tähtitieteen peruskurssi I
Havaintokohteita 9. Polarimetria Lauri Jetsu Fysiikan laitos Helsingin yliopisto Havaintokohteita Polarimetria Havaintokohteita (kuvat: @phys.org/news, @annesastronomynews.com) Yleiskuvaus: Polarisaatio
LisätiedotIntegrointi ja sovellukset
Integrointi ja sovellukset Tehtävät:. Muodosta ja laske yläsumma funktiolle fx) x 5 välillä [, 4], kun väli on jaettu neljään yhtä suureen osaan.. Määritä integraalin x + ) dx likiarvo laskemalla alasumma,
LisätiedotOhjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia.
Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-ympäristö Java-ohjelma ja ohjelmaluokka
LisätiedotTaulukot. Jukka Harju, Jukka Juslin 2006 1
Taulukot Jukka Harju, Jukka Juslin 2006 1 Taulukot Taulukot ovat olioita, jotka auttavat organisoimaan suuria määriä tietoa. Käsittelylistalla on: Taulukon tekeminen ja käyttö Rajojen tarkastus ja kapasiteetti
LisätiedotQt kaikkialla? 9.4.2010
Qt kaikkialla? Helsinki Tammasaarenkatu 5, 00180 Helsinki, Tel. 09 431 551 Tampere Satakunnankatu 18, 33210 Tampere, Tel. 03 315 861 Turku Lemminkäisenkatu 32 A, 20520 Turku, Tel. 02 263 571 Qt Qton C++
Lisätiedot58160 Ohjelmoinnin harjoitustyö
58160 Ohjelmoinnin harjoitustyö Testaus 30.3.2009 Tuntiop. Sami Nikander sami.nikander@helsinki.fi 58160 Ohjelmoinnin harjoitustyö, Sami Nikander 30.3.2009 1 Testaus Ohjelman systemaattista tutkimista
LisätiedotMobiilijäsenkortti. Mobiilikortin aktivointi
Mobiilijäsenkortti AKK-Motorsport ry:n jäsenkortti on Lompakossa oleva mobiilikortti. Mobiilikortti toimii puhelimeen ladattavana Lompakko-sovelluksena, joka toimitetaan kaikille Jäsenmaksunsa maksaneille
Lisätiedot815338A Ohjelmointikielten periaatteet
815338A Ohjelmointikielten periaatteet 2015-2016 VIII Poikkeusten ja tapahtumien käsittely Sisältö 1. Poikkeusten käsittelyn käsitteitä ja suunnittelukriteerejä 2. Poikkeusten käsittely C++:ssa 3. Poikkeusten
LisätiedotTietorakenteet ja algoritmit
Tietorakenteet ja algoritmit Muuttujat eri muisteissa Ohjelman muistialueen layout Paikallisen ja globaalin muuttujan ominaisuudet Dynaamisen muistinkäytön edut Paikallisten muuttujien dynaamisuus ADT
LisätiedotKehitysohje. ETL-työkalu. ExtraTerrestriaLs / Aureolis Oy
Kehitysohje ETL-työkalu Versio Pvm Tekijä Kuvaus 0.1 15.1.2005 Timo Sallinen Ensimmäinen versio 0.2 26.1.2005 Timo Sallinen Täydenetty pohjaa 0.3 06.02.2005 Mika Suvanto Pieniä täydennyksiä ja oikolukua
LisätiedotDiplomi-insinööri- ja arkkitehtikoulutuksen yhteisvalinta 2017 Insinöörivalinnan matematiikan koe , Ratkaisut (Sarja A)
Diplomi-insinööri- ja arkkitehtikoulutuksen yhteisvalinta 017 Insinöörivalinnan matematiikan koe 30..017, Ratkaisut (Sarja A) 1. a) Lukujen 9, 0, 3 ja x keskiarvo on. Määritä x. (1 p.) b) Mitkä reaaliluvut
LisätiedotMatematiikan tukikurssi
Matematiikan tukikurssi Kurssikerta 6 1 Korkolaskentaa Oletetaan, että korkoaste on r Jos esimerkiksi r = 0, 02, niin korko on 2 prosenttia Tätä korkoastetta käytettään diskonttaamaan tulevia tuloja ja
LisätiedotAS-0.1103 C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin
AS-0.1103 C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin Raimo Nikkilä Aalto-yliopiston sähkötekniikan korkeakoulu - Automaation tietotekniikan tutkimusryhmä 17. tammikuuta 2013
LisätiedotSisällys. Metodien kuormittaminen. Luokkametodit ja -attribuutit. Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2
6. Metodit 6.1 Sisällys Metodien kuormittaminen. Luokkametodit ja -attribuutit. Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2 Oliot viestivät metodeja kutsuen Olio-ohjelmoinnissa ohjelma
Lisätiedot8. Näppäimistöltä lukeminen 8.1
8. Näppäimistöltä lukeminen 8.1 Sisällys Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. In-luokka, käännös ja tulkinta Scanner-luokka. 8.2 Yleistä Näppäimistöltä annettujen arvojen (syötteiden)
Lisätiedot5.3 Ensimmäisen asteen polynomifunktio
Yllä olevat polynomit P ( x) = 2 x + 1 ja Q ( x) = 2x 1 ovat esimerkkejä 1. asteen polynomifunktioista: muuttujan korkein potenssi on yksi. Yleisessä 1. asteen polynomifunktioissa on lisäksi vakiotermi;
Lisätiedotjakokulmassa x 4 x 8 x 3x
Laudatur MAA ratkaisut kertausarjoituksiin. Polynomifunktion nollakodat 6 + 7. Suoritetaan jakolasku jakokulmassa 5 4 + + 4 8 6 6 5 4 + 0 + 0 + 0 + 0+ 6 5 ± 5 5 4 ± 4 4 ± 4 4 ± 4 8 8 ± 8 6 6 + ± 6 Vastaus:
LisätiedotTIE Tietorakenteet ja algoritmit 1. TIE Tietorakenteet ja algoritmit
TIE-20100 Tietorakenteet ja algoritmit 1 TIE-20100 Tietorakenteet ja algoritmit TIE-20100 Tietorakenteet ja algoritmit 2 Lähteet Luentomoniste pohjautuu vahvasti prof. Antti Valmarin vanhaan luentomonisteeseen
LisätiedotBEYOND: Two Souls BEYOND Touch Sovellus
BEYOND: Two Souls BEYOND Touch Sovellus BEYOND Touch -SOVELLUS Jotta saisit kaiken irti BEYOND: Two Souls -pelikokemuksesta, suosittelemme pelaamaan peliä langattomalla DUALSHOCK 3-ohjaimella. Jos kuitenkin
LisätiedotIntegrointi. Ohjelmistotekniikka kevät 2003
Integrointi Ohjelmistotekniikka kevät 2003 ERP (Toiminnanohjausjärjestelmä) Myynti Henkilöstö, palkanlaskenta Kirjanpito Myynti Myyjät Extranet Tietovarasto Laskutus, reskontrat Asiakas ERP Asiakasrekisteri
LisätiedotSisältö. 22. Taulukot. Yleistä. Yleistä
Sisältö 22. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko metodin parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 22.1 22.2 Yleistä
LisätiedotDifferentiaali- ja integraalilaskenta
Differentiaali- ja integraalilaskenta Opiskelijan nimi: DIFFERENTIAALILASKENTA 1. Raja-arvon käsite, derivaatta raja-arvona 1.1 Raja-arvo pisteessä 1.2 Derivaatan määritelmä 1.3 Derivaatta raja-arvona
LisätiedotSisältö. 2. Taulukot. Yleistä. Yleistä
Sisältö 2. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.1 2.2 Yleistä
LisätiedotMatematiikan tukikurssi
Matematiikan tukikurssi Kurssikerta 2 Lisää osamurtoja Tutkitaan jälleen rationaalifunktion P(x)/Q(x) integrointia. Aiemmin käsittelimme tapauksen, jossa nimittäjä voidaan esittää muodossa Q(x) = a(x x
LisätiedotLuento 1 (verkkoluento 1) Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus
Luento 1 (verkkoluento 1) Tietokonejärjestelmä Järjestelmän e eri tasot Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus 1 Tietokone- järjestelmäj ä Käyttäjä Tietokonelaitteisto Oheislaitteet
LisätiedotSulautettujen järjestelmien skaala on niin laaja, että on erittäin vaikea antaa yleispätevää kuvausta siitä millainen on sulautettu järjestelmä.
Sulautettujen järjestelmien skaala on niin laaja, että on erittäin vaikea antaa yleispätevää kuvausta siitä millainen on sulautettu järjestelmä. On arvioitu, että maailmassa on tällä hetkellä enemmän sulautettuja
LisätiedotVaatimusmäärittely Ohjelma-ajanvälitys komponentti
Teknillinen korkeakoulu 51 Vaatimusmäärittely Ohjelma-ajanvälitys komponentti Versio Päiväys Tekijä Kuvaus 0.1 21.11.01 Oskari Pirttikoski Ensimmäinen versio 0.2 27.11.01 Oskari Pirttikoski Lisätty termit
LisätiedotYleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.
2. Taulukot 2.1 Sisältö Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.2 Yleistä
LisätiedotLIITE 1 VIRHEEN ARVIOINNISTA
1 Mihin tarvitset virheen arviointia? Mittaustuloksiin sisältyy aina virhettä, vaikka mittauslaite olisi miten uudenaikainen tai kallis tahansa ja mittaaja olisi alansa huippututkija Tästä johtuen mittaustuloksista
LisätiedotLuento 7. T-106.1240 Ohjelmoinnin jatkokurssi T1 & T-106.1243 Ohjelmoinnin jatkokurssi L1. Luennoitsija: Otto Seppälä
Luento 7 T-106.1240 Ohjelmoinnin jatkokurssi T1 & T-106.1243 Ohjelmoinnin jatkokurssi L1 Luennoitsija: Otto Seppälä Kurssin WWW: http://www.cs.hut.fi/opinnot/t-106.1240/s2007 Suunnitelmista Yleistaso oli
Lisätiedoty + 4y = 0 (1) λ = 0
Matematiikan ja tilastotieteen osasto/hy Differentiaaliyhtälöt I Laskuharjoitus 6 mallit Kevät 2019 Tehtävä 1. Ratkaise yhtälöt a) y + 4y = x 2, b) y + 4y = 3e x. Ratkaisu: a) Differentiaaliyhtälön yleinen
LisätiedotKontrollipolkujen määrä
Testaus Yleistä Testaus on suunnitelmallista virheiden etsimistä Tuotantoprosessissa ohjelmaan jää aina virheitä, käytettävistä menetelmistä huolimatta Hyvät menetelmät, kuten katselmoinnit pienentävät
LisätiedotMatemaattinen Analyysi
Vaasan yliopisto, kevät 01 / ORMS1010 Matemaattinen Analyysi. harjoitus, viikko 1 R1 ke 1 16 D11 (..) R to 10 1 D11 (..) 1. Määritä funktion y(x) MacLaurinin sarjan kertoimet, kun y(0) = ja y (x) = (x
Lisätiedot6*. MURTOFUNKTION INTEGROINTI
MAA0 6*. MURTOFUNKTION INTEGROINTI Murtofunktio tarkoittaa kahden polynomin osamäärää, ja sen yleinen muoto on P() R : R(). Q() Mikäli osoittajapolynomin asteluku on nimittäjäpolynomin astelukua korkeampi
LisätiedotOliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä
Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Matti Luukkainen 10.12.2009 Tässä esitetty esimerkki on mukaelma ja lyhennelmä Robert Martinin kirjasta Agile and Iterative Development löytyvästä
LisätiedotChapel. TIE Ryhmä 91. Joonas Eloranta Lari Valtonen
Chapel TIE-20306 Ryhmä 91 Joonas Eloranta Lari Valtonen Johdanto Chapel on Amerikkalaisen Cray Inc. yrityksen kehittämä avoimen lähdekoodin ohjelmointikieli. Chapel on rinnakkainen ohjelmointikieli, joka
LisätiedotHyvä mobiilikortin käyttäjä!
Hyvä mobiilikortin käyttäjä! AKK-Motorsport ry:n jäsenkortti on tänä vuonna Lompakossa oleva mobiilikortti. Mobiilikortti toimii puhelimeen ladattavana Lompakko-sovelluksena, joka toimitetaan kaikille
LisätiedotKJR-C1001 Statiikka ja dynamiikka. Luento Susanna Hurme
KJR-C1001 Statiikka ja dynamiikka Luento 16.3.2016 Susanna Hurme Päivän aihe: Translaatioliikkeen kinetiikka (Kirjan luvut 12.6, 13.1-13.3 ja 17.3) Oppimistavoitteet Ymmärtää, miten Newtonin toisen lain
LisätiedotSisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä
Sisällys 11. Javan toistorakenteet Laskuri- ja lippumuuttujat.. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin lopettaminen break-lauseella.
LisätiedotNopeus, kiihtyvyys ja liikemäärä Vektorit
Nopeus, kiihtyvyys ja liikemäärä Vektorit Luento 2 https://geom.mathstat.helsinki.fi/moodle/course/view.php?id=360 Luennon tavoitteet: Vektorit tutuiksi Koordinaatiston valinta Vauhdin ja nopeuden ero
LisätiedotPythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python
Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python 8. marraskuuta 2010 Ohjelmointi Perusteet Peruskäsitteitä Olio-ohjelmointi Pythonin alkeet Esittely Esimerkkejä Muuttujat
LisätiedotRinnakkaistietokoneet luento S
Rinnakkaistietokoneet luento 5 521475S Silmukalliset ohjelmat Silmukat joissa ei ole riippuvuussyklejä voidaan vektoroida eli suorittaa silmukan vektorointi Jokainen yksittäinen käsky silmukan rungossa
Lisätiedot7. Oliot ja viitteet 7.1
7. Oliot ja viitteet 7.1 Sisällys Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen. Viitteiden sijoitus. Viitteiden vertailu. Varautuminen null-arvoon. Viite metodin paluuarvona. Viite metodin
LisätiedotAmazon Web Services (AWS) on varmaankin maailman suosituin IaaS-tarjoaja. Lisäksi se tarjoaa erilaisia PaaS-kategoriaan kuuluvia palveluita.
1 2 Amazon Web Services (AWS) on varmaankin maailman suosituin IaaS-tarjoaja. Lisäksi se tarjoaa erilaisia PaaS-kategoriaan kuuluvia palveluita. 3 4 Region vastaa palvelun fyysistä sijaintipaikkaa (AWS
LisätiedotPRELIMINÄÄRIKOE PITKÄ MATEMATIIKKA 9.2.2011
PRELIMINÄÄRIKOE PITKÄ MATEMATIIKKA 9..0 Kokeessa saa vastata enintään kymmeneen tehtävään.. Sievennä a) 9 x x 6x + 9, b) 5 9 009 a a, c) log 7 + lne 7. Muovailuvahasta tehty säännöllinen tetraedri muovataan
LisätiedotTalousmatematiikan perusteet
kevät 219 / orms.13 Talousmatematiikan perusteet 9. harjoitus, viikko 12 (18.3. 22.3.219) L Ma 1 12 A22 R5 Ti 14 16 F453 R1 Ma 12 14 F453 L To 8 1 A22 R2 Ma 16 18 F453 R6 Pe 12 14 F14 R3 Ti 8 1 F425 R7
LisätiedotJuuri 12 Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty
Juuri Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty 7.5.08 Kertaus K. a) Polynomi P() = + 8 on jaollinen polynomilla Q() =, jos = on polynomin P nollakohta, eli P() = 0. P() = + 8 = 54 08 +
LisätiedotOsio 2: Luennot 5-8 Muistinhallinta
Käyttöjärjestelmät I Osio 2: Luennot 5-8 Muistinhallinta Tiina Niklander; kalvot Auvo Häkkinen Tietojenkäsittelytieteen laitos Helsinin yliopisto "!$#%#'&)(*+,(.-0/1#'-243 0# 5 Stallins, Luku 7 KJ-I S2004
LisätiedotOhjelmistojen testaus ja hallinta. Gradle
Ohjelmistojen testaus ja hallinta Gradle Perinteiset koontityökalut Ant Maven 2 Maven XML-pohjaiset koontitiedostot (pom.xml) Pohjautuu käytäntöihin (vain poikkeukset käytännöistä kirjoitetaan koontitiedostoon)
LisätiedotOhjelmointikielet ja -paradigmat 5op. Markus Norrena
Ohjelmointikielet ja -paradigmat 5op Markus Norrena Ko#tehtävä 4 Viimeistele "alkeellinen kuvagalleria". Käytännössä kaksi sivua Yksi jolla voi ladata kuvia palvelimelle (file upload) Toinen jolla ladattuja
LisätiedotOhjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen
Ohjelmointitaito (ict1td002, 12 op) Kevät 2009 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-kehitysympäristö Java-ohjelma ja luokka
Lisätiedot