|
|
|
@@ -107,6 +107,29 @@ void TMessageSpeedTest::MessageSpeedTestLookup500Int32()
|
|
|
|
|
<< length << "usec" << endl;
|
|
|
|
|
}
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
void TMessageSpeedTest::MessageSpeedTestLookup5000Int32()
|
|
|
|
|
{
|
|
|
|
|
srand(time(NULL));
|
|
|
|
|
|
|
|
|
|
BMessage message;
|
|
|
|
|
|
|
|
|
|
for (int32 i=0; i<5000; i++){
|
|
|
|
|
BString string;
|
|
|
|
|
string << i;
|
|
|
|
|
message.AddInt32(string.String(),i);
|
|
|
|
|
}
|
|
|
|
|
BString search;
|
|
|
|
|
search << rand()%5000;
|
|
|
|
|
const char *string = search.String();
|
|
|
|
|
int32 res;
|
|
|
|
|
|
|
|
|
|
bigtime_t stamp = real_time_clock_usecs();
|
|
|
|
|
message.FindInt32(string,&res);
|
|
|
|
|
bigtime_t length = real_time_clock_usecs() - stamp;
|
|
|
|
|
cout << "TMessageSpeedTest::Time to find a data in a message containing 5000 datas = "
|
|
|
|
|
<< length << "usec" << endl;
|
|
|
|
|
}
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
void TMessageSpeedTest::MessageSpeedTestRead500Int32()
|
|
|
|
|
{
|
|
|
|
|
srand(time(NULL));
|
|
|
|
@@ -135,7 +158,7 @@ void TMessageSpeedTest::MessageSpeedTestFlatten5Int32()
|
|
|
|
|
message.AddInt32("data",i);
|
|
|
|
|
|
|
|
|
|
BEntry entry("/tmp/bmessagetest");
|
|
|
|
|
BFile file(&entry,B_READ_WRITE);
|
|
|
|
|
BFile file(&entry,B_READ_WRITE|B_CREATE_FILE);
|
|
|
|
|
bigtime_t stamp = real_time_clock_usecs();
|
|
|
|
|
message.Flatten(&file);
|
|
|
|
|
bigtime_t length = real_time_clock_usecs() - stamp;
|
|
|
|
@@ -156,7 +179,7 @@ void TMessageSpeedTest::MessageSpeedTestFlatten50Int32()
|
|
|
|
|
message.AddInt32("data",i);
|
|
|
|
|
|
|
|
|
|
BEntry entry("/tmp/bmessagetest");
|
|
|
|
|
BFile file(&entry,B_READ_WRITE);
|
|
|
|
|
BFile file(&entry,B_READ_WRITE|B_CREATE_FILE);
|
|
|
|
|
bigtime_t stamp = real_time_clock_usecs();
|
|
|
|
|
message.Flatten(&file);
|
|
|
|
|
bigtime_t length = real_time_clock_usecs() - stamp;
|
|
|
|
@@ -176,7 +199,7 @@ void TMessageSpeedTest::MessageSpeedTestFlatten500Int32()
|
|
|
|
|
message.AddInt32("data",i);
|
|
|
|
|
|
|
|
|
|
BEntry entry("/tmp/bmessagetest");
|
|
|
|
|
BFile file(&entry,B_READ_WRITE);
|
|
|
|
|
BFile file(&entry,B_READ_WRITE|B_CREATE_FILE);
|
|
|
|
|
bigtime_t stamp = real_time_clock_usecs();
|
|
|
|
|
message.Flatten(&file);
|
|
|
|
|
bigtime_t length = real_time_clock_usecs() - stamp;
|
|
|
|
@@ -188,6 +211,118 @@ void TMessageSpeedTest::MessageSpeedTestFlatten500Int32()
|
|
|
|
|
entry.Remove();
|
|
|
|
|
}
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
void TMessageSpeedTest::MessageSpeedTestFlatten5000Int32()
|
|
|
|
|
{
|
|
|
|
|
BMessage message;
|
|
|
|
|
|
|
|
|
|
for (int32 i=0; i<5000; i++)
|
|
|
|
|
message.AddInt32("data",i);
|
|
|
|
|
|
|
|
|
|
BEntry entry("/tmp/bmessagetest");
|
|
|
|
|
BFile file(&entry,B_READ_WRITE|B_CREATE_FILE);
|
|
|
|
|
bigtime_t stamp = real_time_clock_usecs();
|
|
|
|
|
message.Flatten(&file);
|
|
|
|
|
bigtime_t length = real_time_clock_usecs() - stamp;
|
|
|
|
|
cout << "TMessageSpeedTest::Time to flatten a message containing 5000 Int32 = "
|
|
|
|
|
<< length << "usec. Giving " << length/5000 << "usec per data" << endl;
|
|
|
|
|
|
|
|
|
|
//delete the file
|
|
|
|
|
file.Unset();
|
|
|
|
|
entry.Remove();
|
|
|
|
|
}
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
void TMessageSpeedTest::MessageSpeedTestFlatten5IndividualInt32()
|
|
|
|
|
{
|
|
|
|
|
BMessage message;
|
|
|
|
|
|
|
|
|
|
for (int32 i=0; i<5; i++) {
|
|
|
|
|
BString name = "data";
|
|
|
|
|
name << i;
|
|
|
|
|
message.AddInt32(name.String(),i);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
BEntry entry("/tmp/bmessagetest");
|
|
|
|
|
BFile file(&entry,B_READ_WRITE|B_CREATE_FILE);
|
|
|
|
|
bigtime_t stamp = real_time_clock_usecs();
|
|
|
|
|
message.Flatten(&file);
|
|
|
|
|
bigtime_t length = real_time_clock_usecs() - stamp;
|
|
|
|
|
cout << "TMessageSpeedTest::Time to flatten a message containing 5 individual Int32 fields = "
|
|
|
|
|
<< length << "usec. Giving " << length/5 << "usec per data" << endl;
|
|
|
|
|
|
|
|
|
|
//delete the file
|
|
|
|
|
file.Unset();
|
|
|
|
|
entry.Remove();
|
|
|
|
|
}
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
void TMessageSpeedTest::MessageSpeedTestFlatten50IndividualInt32()
|
|
|
|
|
{
|
|
|
|
|
BMessage message;
|
|
|
|
|
|
|
|
|
|
for (int32 i=0; i<50; i++) {
|
|
|
|
|
BString name = "data";
|
|
|
|
|
name << i;
|
|
|
|
|
message.AddInt32(name.String(),i);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
BEntry entry("/tmp/bmessagetest");
|
|
|
|
|
BFile file(&entry,B_READ_WRITE|B_CREATE_FILE);
|
|
|
|
|
bigtime_t stamp = real_time_clock_usecs();
|
|
|
|
|
message.Flatten(&file);
|
|
|
|
|
bigtime_t length = real_time_clock_usecs() - stamp;
|
|
|
|
|
cout << "TMessageSpeedTest::Time to flatten a message containing 50 individual Int32 fields = "
|
|
|
|
|
<< length << "usec. Giving " << length/50 << "usec per data" << endl;
|
|
|
|
|
|
|
|
|
|
//delete the file
|
|
|
|
|
file.Unset();
|
|
|
|
|
entry.Remove();
|
|
|
|
|
}
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
void TMessageSpeedTest::MessageSpeedTestFlatten500IndividualInt32()
|
|
|
|
|
{
|
|
|
|
|
BMessage message;
|
|
|
|
|
|
|
|
|
|
for (int32 i=0; i<500; i++) {
|
|
|
|
|
BString name = "data";
|
|
|
|
|
name << i;
|
|
|
|
|
message.AddInt32(name.String(),i);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
BEntry entry("/tmp/bmessagetest");
|
|
|
|
|
BFile file(&entry,B_READ_WRITE|B_CREATE_FILE);
|
|
|
|
|
bigtime_t stamp = real_time_clock_usecs();
|
|
|
|
|
message.Flatten(&file);
|
|
|
|
|
bigtime_t length = real_time_clock_usecs() - stamp;
|
|
|
|
|
cout << "TMessageSpeedTest::Time to flatten a message containing 500 individual Int32 fields = "
|
|
|
|
|
<< length << "usec. Giving " << length/500 << "usec per data" << endl;
|
|
|
|
|
|
|
|
|
|
//delete the file
|
|
|
|
|
file.Unset();
|
|
|
|
|
entry.Remove();
|
|
|
|
|
}
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
void TMessageSpeedTest::MessageSpeedTestFlatten5000IndividualInt32()
|
|
|
|
|
{
|
|
|
|
|
BMessage message;
|
|
|
|
|
|
|
|
|
|
for (int32 i=0; i<5000; i++) {
|
|
|
|
|
BString name = "data";
|
|
|
|
|
name << i;
|
|
|
|
|
message.AddInt32(name.String(),i);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
BEntry entry("/tmp/bmessagetest");
|
|
|
|
|
BFile file(&entry,B_READ_WRITE|B_CREATE_FILE);
|
|
|
|
|
bigtime_t stamp = real_time_clock_usecs();
|
|
|
|
|
message.Flatten(&file);
|
|
|
|
|
bigtime_t length = real_time_clock_usecs() - stamp;
|
|
|
|
|
cout << "TMessageSpeedTest::Time to flatten a message containing 5000 individual Int32 fields = "
|
|
|
|
|
<< length << "usec. Giving " << length/5000 << "usec per data" << endl;
|
|
|
|
|
|
|
|
|
|
//delete the file
|
|
|
|
|
file.Unset();
|
|
|
|
|
entry.Remove();
|
|
|
|
|
}
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
void TMessageSpeedTest::MessageSpeedTestUnflatten5Int32()
|
|
|
|
|
{
|
|
|
|
|
BMessage message;
|
|
|
|
@@ -196,7 +331,7 @@ void TMessageSpeedTest::MessageSpeedTestUnflatten5Int32()
|
|
|
|
|
message.AddInt32("data",i);
|
|
|
|
|
|
|
|
|
|
BEntry entry("/tmp/bmessagetest");
|
|
|
|
|
BFile file(&entry,B_READ_WRITE);
|
|
|
|
|
BFile file(&entry,B_READ_WRITE|B_CREATE_FILE);
|
|
|
|
|
message.Flatten(&file);
|
|
|
|
|
|
|
|
|
|
BMessage rebuilt;
|
|
|
|
@@ -219,7 +354,7 @@ void TMessageSpeedTest::MessageSpeedTestUnflatten50Int32()
|
|
|
|
|
message.AddInt32("data",i);
|
|
|
|
|
|
|
|
|
|
BEntry entry("/tmp/bmessagetest");
|
|
|
|
|
BFile file(&entry,B_READ_WRITE);
|
|
|
|
|
BFile file(&entry,B_READ_WRITE|B_CREATE_FILE);
|
|
|
|
|
message.Flatten(&file);
|
|
|
|
|
|
|
|
|
|
BMessage rebuilt;
|
|
|
|
@@ -242,7 +377,7 @@ void TMessageSpeedTest::MessageSpeedTestUnflatten500Int32()
|
|
|
|
|
message.AddInt32("data",i);
|
|
|
|
|
|
|
|
|
|
BEntry entry("/tmp/bmessagetest");
|
|
|
|
|
BFile file(&entry,B_READ_WRITE);
|
|
|
|
|
BFile file(&entry,B_READ_WRITE|B_CREATE_FILE);
|
|
|
|
|
message.Flatten(&file);
|
|
|
|
|
|
|
|
|
|
BMessage rebuilt;
|
|
|
|
@@ -257,6 +392,133 @@ void TMessageSpeedTest::MessageSpeedTestUnflatten500Int32()
|
|
|
|
|
entry.Remove();
|
|
|
|
|
}
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
void TMessageSpeedTest::MessageSpeedTestUnflatten5000Int32()
|
|
|
|
|
{
|
|
|
|
|
BMessage message;
|
|
|
|
|
|
|
|
|
|
for (int32 i=0; i<5000; i++)
|
|
|
|
|
message.AddInt32("data",i);
|
|
|
|
|
|
|
|
|
|
BEntry entry("/tmp/bmessagetest");
|
|
|
|
|
BFile file(&entry,B_READ_WRITE|B_CREATE_FILE);
|
|
|
|
|
message.Flatten(&file);
|
|
|
|
|
|
|
|
|
|
BMessage rebuilt;
|
|
|
|
|
bigtime_t stamp = real_time_clock_usecs();
|
|
|
|
|
rebuilt.Unflatten(&file);
|
|
|
|
|
bigtime_t length = real_time_clock_usecs() - stamp;
|
|
|
|
|
cout << "TMessageSpeedTest::Time to unflatten a message containing 5000 Int32 = "
|
|
|
|
|
<< length << "usec. Giving " << length/5000 << "usec per data" << endl;
|
|
|
|
|
|
|
|
|
|
//delete the file
|
|
|
|
|
file.Unset();
|
|
|
|
|
entry.Remove();
|
|
|
|
|
}
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
void TMessageSpeedTest::MessageSpeedTestUnflatten5IndividualInt32()
|
|
|
|
|
{
|
|
|
|
|
BMessage message;
|
|
|
|
|
|
|
|
|
|
for (int32 i=0; i<5; i++) {
|
|
|
|
|
BString name = "data";
|
|
|
|
|
name << i;
|
|
|
|
|
message.AddInt32(name.String(),i);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
BEntry entry("/tmp/bmessagetest");
|
|
|
|
|
BFile file(&entry,B_READ_WRITE|B_CREATE_FILE);
|
|
|
|
|
message.Flatten(&file);
|
|
|
|
|
|
|
|
|
|
BMessage rebuilt;
|
|
|
|
|
bigtime_t stamp = real_time_clock_usecs();
|
|
|
|
|
rebuilt.Unflatten(&file);
|
|
|
|
|
bigtime_t length = real_time_clock_usecs() - stamp;
|
|
|
|
|
cout << "TMessageSpeedTest::Time to unflatten a message containing 5 individual Int32 fields = "
|
|
|
|
|
<< length << "usec. Giving " << length/50 << "usec per data" << endl;
|
|
|
|
|
|
|
|
|
|
//delete the file
|
|
|
|
|
file.Unset();
|
|
|
|
|
entry.Remove();
|
|
|
|
|
}
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
void TMessageSpeedTest::MessageSpeedTestUnflatten50IndividualInt32()
|
|
|
|
|
{
|
|
|
|
|
BMessage message;
|
|
|
|
|
|
|
|
|
|
for (int32 i=0; i<50; i++) {
|
|
|
|
|
BString name = "data";
|
|
|
|
|
name << i;
|
|
|
|
|
message.AddInt32(name.String(),i);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
BEntry entry("/tmp/bmessagetest");
|
|
|
|
|
BFile file(&entry,B_READ_WRITE|B_CREATE_FILE);
|
|
|
|
|
message.Flatten(&file);
|
|
|
|
|
|
|
|
|
|
BMessage rebuilt;
|
|
|
|
|
bigtime_t stamp = real_time_clock_usecs();
|
|
|
|
|
rebuilt.Unflatten(&file);
|
|
|
|
|
bigtime_t length = real_time_clock_usecs() - stamp;
|
|
|
|
|
cout << "TMessageSpeedTest::Time to unflatten a message containing 50 individual Int32 fields = "
|
|
|
|
|
<< length << "usec. Giving " << length/50 << "usec per data" << endl;
|
|
|
|
|
|
|
|
|
|
//delete the file
|
|
|
|
|
file.Unset();
|
|
|
|
|
entry.Remove();
|
|
|
|
|
}
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
void TMessageSpeedTest::MessageSpeedTestUnflatten500IndividualInt32()
|
|
|
|
|
{
|
|
|
|
|
BMessage message;
|
|
|
|
|
|
|
|
|
|
for (int32 i=0; i<500; i++) {
|
|
|
|
|
BString name = "data";
|
|
|
|
|
name << i;
|
|
|
|
|
message.AddInt32(name.String(),i);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
BEntry entry("/tmp/bmessagetest");
|
|
|
|
|
BFile file(&entry,B_READ_WRITE|B_CREATE_FILE);
|
|
|
|
|
message.Flatten(&file);
|
|
|
|
|
|
|
|
|
|
BMessage rebuilt;
|
|
|
|
|
bigtime_t stamp = real_time_clock_usecs();
|
|
|
|
|
rebuilt.Unflatten(&file);
|
|
|
|
|
bigtime_t length = real_time_clock_usecs() - stamp;
|
|
|
|
|
cout << "TMessageSpeedTest::Time to unflatten a message containing 500 individual Int32 fields = "
|
|
|
|
|
<< length << "usec. Giving " << length/500 << "usec per data" << endl;
|
|
|
|
|
|
|
|
|
|
//delete the file
|
|
|
|
|
file.Unset();
|
|
|
|
|
entry.Remove();
|
|
|
|
|
}
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
void TMessageSpeedTest::MessageSpeedTestUnflatten5000IndividualInt32()
|
|
|
|
|
{
|
|
|
|
|
BMessage message;
|
|
|
|
|
|
|
|
|
|
for (int32 i=0; i<5000; i++) {
|
|
|
|
|
BString name = "data";
|
|
|
|
|
name << i;
|
|
|
|
|
message.AddInt32(name.String(),i);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
BEntry entry("/tmp/bmessagetest");
|
|
|
|
|
BFile file(&entry,B_READ_WRITE|B_CREATE_FILE);
|
|
|
|
|
message.Flatten(&file);
|
|
|
|
|
|
|
|
|
|
BMessage rebuilt;
|
|
|
|
|
bigtime_t stamp = real_time_clock_usecs();
|
|
|
|
|
rebuilt.Unflatten(&file);
|
|
|
|
|
bigtime_t length = real_time_clock_usecs() - stamp;
|
|
|
|
|
cout << "TMessageSpeedTest::Time to unflatten a message containing 5000 individual Int32 fields = "
|
|
|
|
|
<< length << "usec. Giving " << length/5000 << "usec per data" << endl;
|
|
|
|
|
|
|
|
|
|
//delete the file
|
|
|
|
|
file.Unset();
|
|
|
|
|
entry.Remove();
|
|
|
|
|
}
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
TestSuite* TMessageSpeedTest::Suite()
|
|
|
|
|
{
|
|
|
|
|
TestSuite* suite = new TestSuite("BMessage::Test of Performance");
|
|
|
|
@@ -265,13 +527,24 @@ TestSuite* TMessageSpeedTest::Suite()
|
|
|
|
|
ADD_TEST4(BMessage, suite, TMessageSpeedTest, MessageSpeedTestLookup5Int32);
|
|
|
|
|
ADD_TEST4(BMessage, suite, TMessageSpeedTest, MessageSpeedTestLookup50Int32);
|
|
|
|
|
ADD_TEST4(BMessage, suite, TMessageSpeedTest, MessageSpeedTestLookup500Int32);
|
|
|
|
|
ADD_TEST4(BMessage, suite, TMessageSpeedTest, MessageSpeedTestLookup5000Int32);
|
|
|
|
|
ADD_TEST4(BMessage, suite, TMessageSpeedTest, MessageSpeedTestRead500Int32);
|
|
|
|
|
ADD_TEST4(BMessage, suite, TMessageSpeedTest, MessageSpeedTestFlatten5Int32);
|
|
|
|
|
ADD_TEST4(BMessage, suite, TMessageSpeedTest, MessageSpeedTestFlatten50Int32);
|
|
|
|
|
ADD_TEST4(BMessage, suite, TMessageSpeedTest, MessageSpeedTestFlatten500Int32);
|
|
|
|
|
ADD_TEST4(BMessage, suite, TMessageSpeedTest, MessageSpeedTestFlatten5000Int32);
|
|
|
|
|
ADD_TEST4(BMessage, suite, TMessageSpeedTest, MessageSpeedTestFlatten5IndividualInt32);
|
|
|
|
|
ADD_TEST4(BMessage, suite, TMessageSpeedTest, MessageSpeedTestFlatten50IndividualInt32);
|
|
|
|
|
ADD_TEST4(BMessage, suite, TMessageSpeedTest, MessageSpeedTestFlatten500IndividualInt32);
|
|
|
|
|
ADD_TEST4(BMessage, suite, TMessageSpeedTest, MessageSpeedTestFlatten5000IndividualInt32);
|
|
|
|
|
ADD_TEST4(BMessage, suite, TMessageSpeedTest, MessageSpeedTestUnflatten5Int32);
|
|
|
|
|
ADD_TEST4(BMessage, suite, TMessageSpeedTest, MessageSpeedTestUnflatten50Int32);
|
|
|
|
|
ADD_TEST4(BMessage, suite, TMessageSpeedTest, MessageSpeedTestUnflatten500Int32);
|
|
|
|
|
ADD_TEST4(BMessage, suite, TMessageSpeedTest, MessageSpeedTestUnflatten5000Int32);
|
|
|
|
|
ADD_TEST4(BMessage, suite, TMessageSpeedTest, MessageSpeedTestUnflatten5IndividualInt32);
|
|
|
|
|
ADD_TEST4(BMessage, suite, TMessageSpeedTest, MessageSpeedTestUnflatten50IndividualInt32);
|
|
|
|
|
ADD_TEST4(BMessage, suite, TMessageSpeedTest, MessageSpeedTestUnflatten500IndividualInt32);
|
|
|
|
|
ADD_TEST4(BMessage, suite, TMessageSpeedTest, MessageSpeedTestUnflatten5000IndividualInt32);
|
|
|
|
|
|
|
|
|
|
return suite;
|
|
|
|
|
}
|
|
|
|
|