Hyppää sisältöön
    • Suomeksi
    • På svenska
    • In English
  • Suomi
  • Svenska
  • English
  • Kirjaudu
Hakuohjeet
JavaScript is disabled for your browser. Some features of this site may not work without it.
Näytä viite 
  •   Ammattikorkeakoulut
  • Hämeen ammattikorkeakoulu
  • Opinnäytetyöt
  • Näytä viite
  •   Ammattikorkeakoulut
  • Hämeen ammattikorkeakoulu
  • Opinnäytetyöt
  • Näytä viite

Ohjelmointikäytäntöjen merkitys energiansäästössä muistin käytön osalta

Rope, Joonas (2025)

 
Avaa tiedosto
Rope_Joonas.pdf (1.301Mt)
Lataukset: 


Rope, Joonas
2025
Näytä kaikki kuvailutiedot
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2025121134860
Tiivistelmä
Työn tavoitteena on luoda ohjelma C++ ohjelmistokielellä kokeilemaan eri ohjelmistokäytäntöjen vaikutuksia keskusmuistin käyttöön energiansäästön näkökulmasta. Ohjelma tulee pyörimään Linux ympäristössä sen antamien tarkkojen mittaustapojen vuoksi.
Ongelma on maailmanlaajuinen koska ohjelmien ja automaation määrä kasvaa jatkuvasti ja esimerkiksi taustaohjelmat ja automaattisesti ajettavat ohjelmat ovat lisääntyneet huomattavasti. Uudempi fyysinen rauta kuluttaa yleensä enemmän energiaa ei vähemmän kuin vanha ja ohjelmistojen monimutkaisuus lisää tarvetta entistä tehokkaampiin koneisiin. Jos saadaan energian käyttöä vähennettyä pelkällä ohjelmistopäivityksellä niin se automaattisesti parantaa energiatehokkuutta tekemättä kalliita rautapuolen päivityksiä.
Sisältönä on Linux puolen teoria keskusmuistin kartoittamiseen proc/PID tiedostosta ja sen taulukointi ohjelmasta saaduilla tuloksilla. Ohjelma käsittää yksinkertaisia laskutoimituksia tehtynä eri ohjelmointitavoilla. Lukujen järjestämistä algoritmilla ja ilman sekä alkioiden järjestämistä eri ohjelmointitavoilla.
Johtopätöksinä eri ohjelmointitavoilla oli vähemmän merkitystä kuin alunperin odotettiin vain algoritmin ja perinteisen lajittelu metodin välillä oli huomattava ero. Syynä saattoi ola kääntäjän ja käyttöjärjestelmän erittäin hyvä etukäteisoptimointi.
Työssä olisi voinut käyttää yhden ohjelman sijasta useita pienempiä jolloin kokonaisvaikutus keskusmuistiin olisi ollut pienempi. Toisaalta se olisi vienyt tarkoitusta työltä jossa yritettiin päästä rasittamaan keskusmuistia ja pääsemään vähemmän energiatehokkaaseen swap osioon.
 
Aim of the thesis was to create c++ program for testing purposes. Main aim was to test Random Access Memory from the point of view of energy saving. Program will be made and run on Linux for specific files and accuracy needed. Especially proc/PID was extremely helpful.
Background for the thesis comes from my own interest in programming and energy enthusiam. Energy saving or green coding in computers is necessary for the increase of automation and background programs. Often new hardware use more energy than older and new programs are much more complex and numerous than previous versions. If one were able to reduce used energy just by software update. Then you could delay buying new hardware or immidiately drop energy costs without user even noticing.
Content is one C++ program that takes snapshots 20 times during each part of the program. From these shots can be created file telling how much Random Access Memory is being used at any part of the program. Sanpshots are taken from /proc/PID file. After snapshots have been taken charts can be made and analyzed. Different parts of program are sorting with and without algrithm. Simple calculations in different programming methods and finding numbers in different ways. All numbers are first generated in random order.
Outcome was less than desirable only std::sort and traditional sorting showed large difference. Almost all other studied methods had virtually no difference from each other. Main reason could have been very optimised GNU compiler and very optimizing operating system Linux.
As conclusion program could have been more efficient if it were separated for many small programs instead of one large one. At that point overall impact for Random Access Memory could have been smaller. Then again that would have been counter productive since the whole point was to stress Random Access Memory until swap partion would have been used.
 
Kokoelmat
  • Opinnäytetyöt
Ammattikorkeakoulujen opinnäytetyöt ja julkaisut
Yhteydenotto | Tietoa käyttöoikeuksista | Tietosuojailmoitus | Saavutettavuusseloste
 

Selaa kokoelmaa

NimekkeetTekijätJulkaisuajatKoulutusalatAsiasanatUusimmatKokoelmat

Henkilökunnalle

Ammattikorkeakoulujen opinnäytetyöt ja julkaisut
Yhteydenotto | Tietoa käyttöoikeuksista | Tietosuojailmoitus | Saavutettavuusseloste