Added a second PagedVolume to the tests with much higher allowed memory usage. This makes more sense when testing random access, as low permitted memory usage causes disk IO to become the bottleneck.
This commit is contained in:
parent
b90f0d4e15
commit
c562341db0
@ -225,7 +225,7 @@ int32_t testDirectRandomAccess(const VolumeType* volume)
|
|||||||
std::mt19937 rng;
|
std::mt19937 rng;
|
||||||
int32_t result = 0;
|
int32_t result = 0;
|
||||||
|
|
||||||
for (uint32_t ct = 0; ct < 10000; ct++)
|
for (uint32_t ct = 0; ct < 1000000; ct++)
|
||||||
{
|
{
|
||||||
uint32_t rand = rng();
|
uint32_t rand = rng();
|
||||||
|
|
||||||
@ -258,10 +258,12 @@ TestVolume::TestVolume()
|
|||||||
m_regExternal.shiftUpperCorner(2, 5, 4);
|
m_regExternal.shiftUpperCorner(2, 5, 4);
|
||||||
|
|
||||||
m_pFilePager = new FilePager<int32_t>(".");
|
m_pFilePager = new FilePager<int32_t>(".");
|
||||||
|
m_pFilePagerHighMem = new FilePager<int32_t>(".");
|
||||||
|
|
||||||
//Create the volumes
|
//Create the volumes
|
||||||
m_pRawVolume = new RawVolume<int32_t>(m_regVolume);
|
m_pRawVolume = new RawVolume<int32_t>(m_regVolume);
|
||||||
m_pPagedVolume = new PagedVolume<int32_t>(m_pFilePager, 1 * 1024 * 1024, m_uChunkSideLength);
|
m_pPagedVolume = new PagedVolume<int32_t>(m_pFilePager, 1 * 1024 * 1024, m_uChunkSideLength);
|
||||||
|
m_pPagedVolumeHighMem = new PagedVolume<int32_t>(m_pFilePagerHighMem, 256 * 1024 * 1024, m_uChunkSideLength);
|
||||||
|
|
||||||
//Fill the volume with some data
|
//Fill the volume with some data
|
||||||
for (int z = m_regVolume.getLowerZ(); z <= m_regVolume.getUpperZ(); z++)
|
for (int z = m_regVolume.getLowerZ(); z <= m_regVolume.getUpperZ(); z++)
|
||||||
@ -273,11 +275,11 @@ TestVolume::TestVolume()
|
|||||||
int32_t value = x + y + z;
|
int32_t value = x + y + z;
|
||||||
m_pRawVolume->setVoxel(x, y, z, value);
|
m_pRawVolume->setVoxel(x, y, z, value);
|
||||||
m_pPagedVolume->setVoxel(x, y, z, value);
|
m_pPagedVolume->setVoxel(x, y, z, value);
|
||||||
|
m_pPagedVolumeHighMem->setVoxel(x, y, z, value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Note - We are reusing the FilePager for testing... watch out for conflicts with the main volume.
|
|
||||||
m_pPagedVolumeChunk = new PagedVolume<uint32_t>::Chunk(Vector3DInt32(10000, 10000, 10000), m_uChunkSideLength, nullptr);
|
m_pPagedVolumeChunk = new PagedVolume<uint32_t>::Chunk(Vector3DInt32(10000, 10000, 10000), m_uChunkSideLength, nullptr);
|
||||||
std::mt19937 rng;
|
std::mt19937 rng;
|
||||||
for (uint16_t z = 0; z < m_uChunkSideLength; z++)
|
for (uint16_t z = 0; z < m_uChunkSideLength; z++)
|
||||||
@ -488,7 +490,7 @@ void TestVolume::testRawVolumeDirectRandomAccess()
|
|||||||
{
|
{
|
||||||
result = testDirectRandomAccess(m_pRawVolume);
|
result = testDirectRandomAccess(m_pRawVolume);
|
||||||
}
|
}
|
||||||
QCOMPARE(result, static_cast<int32_t>(805464457));
|
QCOMPARE(result, static_cast<int32_t>(267192737));
|
||||||
}
|
}
|
||||||
|
|
||||||
void TestVolume::testPagedVolumeDirectRandomAccess()
|
void TestVolume::testPagedVolumeDirectRandomAccess()
|
||||||
@ -496,9 +498,9 @@ void TestVolume::testPagedVolumeDirectRandomAccess()
|
|||||||
int32_t result = 0;
|
int32_t result = 0;
|
||||||
QBENCHMARK
|
QBENCHMARK
|
||||||
{
|
{
|
||||||
result = testDirectRandomAccess(m_pPagedVolume);
|
result = testDirectRandomAccess(m_pPagedVolumeHighMem);
|
||||||
}
|
}
|
||||||
QCOMPARE(result, static_cast<int32_t>(805464457));
|
QCOMPARE(result, static_cast<int32_t>(267192737));
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t TestVolume::testPagedVolumeChunkAccess(uint16_t localityMask)
|
int32_t TestVolume::testPagedVolumeChunkAccess(uint16_t localityMask)
|
||||||
|
@ -72,6 +72,7 @@ private:
|
|||||||
PolyVox::Region m_regInternal;
|
PolyVox::Region m_regInternal;
|
||||||
PolyVox::Region m_regExternal;
|
PolyVox::Region m_regExternal;
|
||||||
PolyVox::FilePager<int32_t>* m_pFilePager;
|
PolyVox::FilePager<int32_t>* m_pFilePager;
|
||||||
|
PolyVox::FilePager<int32_t>* m_pFilePagerHighMem;
|
||||||
|
|
||||||
PolyVox::RawVolume<int32_t>* m_pRawVolume;
|
PolyVox::RawVolume<int32_t>* m_pRawVolume;
|
||||||
PolyVox::PagedVolume<int32_t>* m_pPagedVolume;
|
PolyVox::PagedVolume<int32_t>* m_pPagedVolume;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user