Test NBT block reading
Block reading is slower than raw reading from the file. Going to run another test: Test reading in smaller blocksv1
parent
483713b265
commit
c5f732342d
|
@ -43,7 +43,7 @@ inline void nbt_tests(){
|
|||
BLT_INFO("%d, %c, %d, %d, %d, %s", testByteIn[0], testByteIn[1], testByteIn[2], testShortIn, testIntIn, strIn.c_str());
|
||||
|
||||
|
||||
auto bufferSize = 1024 * 128;
|
||||
auto bufferSize = 1024 * 1024;
|
||||
char* buffer = new char[bufferSize];
|
||||
char* read_buffer = new char[bufferSize];
|
||||
char* read_block_buffer = new char[bufferSize];
|
||||
|
@ -52,11 +52,44 @@ inline void nbt_tests(){
|
|||
buffer[i] = i+1;
|
||||
|
||||
BLT_START_INTERVAL("nbt", "Raw Write");
|
||||
std::fstream largeOutput("HeyThere.txt", std::ios::in | std::ios::binary);
|
||||
|
||||
largeOutput.write(buffer, bufferSize);
|
||||
std::fstream largeOutput("HeyThere.txt", std::ios::out | std::ios::binary);
|
||||
largeOutput.write(buffer, bufferSize);
|
||||
largeOutput.flush();
|
||||
largeOutput.close();
|
||||
BLT_END_INTERVAL("nbt", "Raw Write");
|
||||
|
||||
BLT_START_INTERVAL("nbt", "Raw Read");
|
||||
std::fstream largeInput("HeyThere.txt", std::ios::in | std::ios::binary);
|
||||
largeInput.read(read_buffer, bufferSize);
|
||||
largeInput.close();
|
||||
BLT_END_INTERVAL("nbt", "Raw Read");
|
||||
|
||||
BLT_START_INTERVAL("nbt", "Block Read");
|
||||
std::fstream largeBlockInput("HeyThere.txt", std::ios::in | std::ios::binary);
|
||||
blt::nbt::NBTByteFStreamReader byteLargeBlockInput(largeBlockInput, 1024 * 128);
|
||||
byteLargeBlockInput.readBytes(read_block_buffer, bufferSize);
|
||||
largeBlockInput.close();
|
||||
BLT_END_INTERVAL("nbt", "Block Read");
|
||||
|
||||
bool fstream_in_correct = true;
|
||||
bool nbt_block_in_correct = true;
|
||||
for (int i = 0; i < bufferSize; i++) {
|
||||
if (read_buffer[i] != buffer[i])
|
||||
fstream_in_correct = false;
|
||||
if (read_block_buffer[i] != buffer[i])
|
||||
nbt_block_in_correct = false;
|
||||
if (!fstream_in_correct && !nbt_block_in_correct)
|
||||
break;
|
||||
}
|
||||
|
||||
BLT_INFO("FStream Read Correctly? %s;", fstream_in_correct ? "True" : "False");
|
||||
BLT_INFO("NBT Block Stream Correctly? %s;\n", nbt_block_in_correct ? "True" : "False");
|
||||
BLT_PRINT_ORDERED("nbt");
|
||||
|
||||
delete[] read_buffer;
|
||||
delete[] read_block_buffer;
|
||||
delete[] buffer;
|
||||
|
||||
}
|
||||
|
||||
#endif //BLT_TESTS_NBT_TESTS_H
|
||||
|
|
Loading…
Reference in New Issue