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
  • Metropolia Ammattikorkeakoulu
  • Opinnäytetyöt
  • Näytä viite
  •   Ammattikorkeakoulut
  • Metropolia Ammattikorkeakoulu
  • Opinnäytetyöt
  • Näytä viite

Dynamic ring buffer in the C++ programming language

Luhtanen, Jere (2024)

 
Avaa tiedosto
Luhtanen_Jere.pdf (7.455Mt)
Lataukset: 


Luhtanen, Jere
2024
Näytä kaikki kuvailutiedot
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2024100926253
Tiivistelmä
Insinöörityön aiheena on C++-kielellä ohjelmoitu dynaaminen rengaspuskuri. Työn tavoitteena oli kehittää standardikirjaston säiliöiden vaatimuksia vastaava automaattisesti kokoaan muuttava puskuri, joka tarjoaa lisäksi FIFO-ja LIFO-ominaisuuksia. Lopputuotetta testattaisiin vastaavia jo olemassaolevia vaihtoehtoja vastaan ajan ja muistinkäytön suhteen tehokkuusmittauksilla. Työ toteutettiin yhtiön Rightware Oy pyynnöstä. Säiliö tulisi käyttöön heidän C++-käyttöliittymä-ohjelmakehyksessään, jossa tuottaja-kuluttaja-ongelma voisi esiintyä.

Projekti käsittelee sekä hyödyntää C++-standardikirjaston käyttämiä periaatteita ja ominaisuuksia yhtiön vaatimuksesta olla yhteensopiva standardikirjaston kanssa. Säiliö tyydyttäa standardikirjaston vaatimuksia kuten AllocatorAwareContainer ja LegacyRandomAccessIterator ja käyttää laajalti tuettuja periaatteita, kuten RAII:ta ja kopioi- ja vaihda-idiomia. Näitä periaatteita sekä kuuluisan C++-kielen kehittäjän Bjarne Stroustrupin metodeja seuraten oli mahdollista tarjota vahvat poikkeusturvatakuut ja luoda standardikirjaston tyylistä koodia.

Lopputuloksena säiliön tehokkuus oli muistinkäytön ja nopeuden kannalta lähes yhtä hyvä kuin MSVC:n std::vector:n, std::deque:n ja std::list:n tehokkuus. Säiliöllä on etulyöntiasema joustavuudessa, eikä se toimi yhtä hyvin missään yksittäisessa aspektissa kuten verrokkinsa. Rengaspuskuri toimii hyvänä vaihtoehtona olemassaoleville säiliöille, kun yhdistetään std::dequen FIFO- ja LIFO-ominaisuudet sekä std::vectorin yksinkertaisuus.
 
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