
[英]Is the impossibly fast delegate a suitable alternative to std::function?
[英]Fast alternative to objects
我正在編寫一個類似立方體素的游戲,並希望獲得更多性能。 目前我創建這樣的立方體
for (size_t i = 0; i < 20000; i++)
{
objects* cube = new objects;
cube->position.x =
----------
cubes.push_back(cube);
}
然后我遍歷所有對象以更改它們的位置和內容並使用
for (auto& cube : cubes)
{
//change cubes position stuff etc
}
問題是,一旦我生成 100,000 個立方體,我的游戲就會開始滯后。 過去我做過類似的事情,我使用 java 並且能夠以 2,000,000 的速度生成並達到 5fps 左右,但我丟失了代碼,但我知道我當前的代碼可以優化。
所以我考慮了這么多,我想到了這個而不是使用對象
float world[maxworldlength][maxworldlength][cubesperchunk][cubesperchunk][cubesperchunkdeph][x][y][z];
在這里,我可以將我的世界中的所有對象放在一個列表中,並且可以輕松訪問任何沒有循環等的屬性,並且由於數據全部放在一起,對於 cpu 來說可能更快。 但是我對此進行了更多考慮,並考慮了這將使用多少內存。 經過一些簡單的數學運算 ((32 * 10) * (32 * 10) * (32 * 16) * (32 * 16) * (32 * 50) * (32 * 50)) / 1000000000。我發現數組會使用超過 68719476 GB 的內存。 所以我不得不放棄這個想法。
任何人都知道我如何存儲大量性能影響較小的對象。 謝謝你的幫助/。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.