Datorspel behöver utnyttja hårdvara effektivt för att kunna vara tillgänglig på så många system som möjligt med varierande kapacitet. En viktig del i detta är att optimera användandet av processorns cacheminnen. Programmerare kan följa en dataorienterad design för att implementera cacheeffektiv kod. Detta förutsätter att programmeraren har kontroll över hur data lagras i minnet, vilket är svårt att uppnå i Java. Project Valhalla kan erbjuda funktioner för att åtgärda detta problem. I detta arbete jämfördes objektorienterad design med dataorienterad design i språken C++, Java och den pågående utvecklingen av Project Valhalla. En prototyp utvecklades och implementerades med olika kombinationer av dessa språk och designer. För varje implementation mättes prestanda och cacheeffektivitet. Resultatet visade att Java med Project Valhalla kan uppnå liknande prestanda som C++ vid dataorienterade implementationer. På grund av vissa begränsningar i Valhallas funktioner kommer det troligtvis inte bli ett praktiskt alternativ till lågnivåspråk inom en snar framtid. / Computer games need to utilize hardware efficiently in order to be available on as many systems as possible with varying capabilities. An important part of this is to optimize the use of the CPU’s cache. A programmer can follow a data-oriented design to implement cache-efficient code. This requires the programmer to have control over how data is stored in memory, which is difficult to achieve in Java. Project Valhalla may offer features to address this issue. In this thesis, object-oriented design was compared with data-oriented design in the languages C++, Java, and the ongoing development of Project Valhalla. A prototype was developed and implemented using different combinations of these languages and designs. For each implementation, performance and cache efficiency were measured. The result showed that Java with Project Valhalla can achieve similar performance to C++ in data-oriented implementations. Due to some limitations in Valhalla's features, it is unlikely that it will become a suitable alternative to low-level languages anytime soon.
Identifer | oai:union.ndltd.org:UPSALLA1/oai:DiVA.org:kth-328365 |
Date | January 2023 |
Creators | Isacsson, Andreas, Renström, Christopher |
Publisher | KTH, Hälsoinformatik och logistik |
Source Sets | DiVA Archive at Upsalla University |
Language | Swedish |
Detected Language | Swedish |
Type | Student thesis, info:eu-repo/semantics/bachelorThesis, text |
Format | application/pdf |
Rights | info:eu-repo/semantics/openAccess |
Relation | TRITA-CBH-GRU ; 2023:093 |
Page generated in 0.0017 seconds