mirror of https://github.com/Icinga/icinga2.git
Updated dyntest app.
This commit is contained in:
parent
8144ca398b
commit
195cd07ace
|
@ -7,6 +7,8 @@ SUBDIRS = \
|
||||||
compat \
|
compat \
|
||||||
third-party \
|
third-party \
|
||||||
base \
|
base \
|
||||||
|
dyn \
|
||||||
|
dyntest \
|
||||||
jsonrpc \
|
jsonrpc \
|
||||||
icinga \
|
icinga \
|
||||||
components \
|
components \
|
||||||
|
|
|
@ -71,6 +71,8 @@ components/configfile/Makefile
|
||||||
components/configrpc/Makefile
|
components/configrpc/Makefile
|
||||||
components/demo/Makefile
|
components/demo/Makefile
|
||||||
components/discovery/Makefile
|
components/discovery/Makefile
|
||||||
|
dyn/Makefile
|
||||||
|
dyntest/Makefile
|
||||||
icinga/Makefile
|
icinga/Makefile
|
||||||
icinga-app/Makefile
|
icinga-app/Makefile
|
||||||
jsonrpc/Makefile
|
jsonrpc/Makefile
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
## Process this file with automake to produce Makefile.in
|
||||||
|
|
||||||
|
|
||||||
|
pkglib_LTLIBRARIES = \
|
||||||
|
libdyn.la
|
||||||
|
|
||||||
|
libdyn_la_SOURCES = \
|
||||||
|
i2-dyn.h \
|
||||||
|
dynamicobject.cpp \
|
||||||
|
dynamicobject.h \
|
||||||
|
objectset.cpp \
|
||||||
|
objectset.h \
|
||||||
|
objectmap.cpp \
|
||||||
|
objectmap.h
|
||||||
|
|
||||||
|
libdyn_la_CPPFLAGS = \
|
||||||
|
-DI2_DYN_BUILD \
|
||||||
|
$(BOOST_CPPFLAGS) \
|
||||||
|
-I${top_srcdir}/base
|
||||||
|
|
||||||
|
libdyn_la_LDFLAGS = \
|
||||||
|
$(BOOST_LDFLAGS) \
|
||||||
|
-no-undefined \
|
||||||
|
@RELEASE_INFO@ \
|
||||||
|
@VERSION_INFO@
|
||||||
|
|
||||||
|
libdyn_la_LIBADD = \
|
||||||
|
${top_builddir}/base/libbase.la
|
|
@ -0,0 +1,22 @@
|
||||||
|
## Process this file with automake to produce Makefile.in
|
||||||
|
|
||||||
|
|
||||||
|
bin_PROGRAMS = \
|
||||||
|
dyntest
|
||||||
|
|
||||||
|
dyntest_SOURCES = \
|
||||||
|
dyntest.cpp
|
||||||
|
|
||||||
|
dyntest_CPPFLAGS = \
|
||||||
|
-DI2_DYNTEST_BUILD \
|
||||||
|
$(BOOST_CPPFLAGS) \
|
||||||
|
-I${top_srcdir}/base \
|
||||||
|
-I${top_srcdir}/dyn \
|
||||||
|
-I${top_srcdir}
|
||||||
|
|
||||||
|
dyntest_LDFLAGS = \
|
||||||
|
$(BOOST_LDFLAGS)
|
||||||
|
|
||||||
|
dyntest_LDADD = \
|
||||||
|
${top_builddir}/base/libbase.la \
|
||||||
|
${top_builddir}/dyn/libdyn.la
|
|
@ -18,19 +18,48 @@ bool foo(const Object::Ptr& object)
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < 1000000; i++) {
|
int num = atoi(argv[1]);
|
||||||
|
int num_obs = atoi(argv[2]);
|
||||||
|
|
||||||
|
time_t st, et;
|
||||||
|
|
||||||
|
time(&st);
|
||||||
|
vector<DynamicObject::Ptr> objects;
|
||||||
|
for (int i = 0; i < num; i++) {
|
||||||
DynamicObject::Ptr dobj = make_shared<DynamicObject>();
|
DynamicObject::Ptr dobj = make_shared<DynamicObject>();
|
||||||
dobj->GetConfig()->SetProperty("foo", "bar");
|
dobj->GetConfig()->SetProperty("foo", "bar");
|
||||||
dobj->Commit();
|
objects.push_back(dobj);
|
||||||
}
|
}
|
||||||
|
time(&et);
|
||||||
|
cout << "Creating objects: " << et - st << " seconds" << endl;
|
||||||
|
|
||||||
ObjectSet::Ptr filtered = make_shared<ObjectSet>(ObjectSet::GetAllObjects(), &foo);
|
time(&st);
|
||||||
filtered->Start();
|
for (vector<DynamicObject::Ptr>::iterator it = objects.begin(); it != objects.end(); it++) {
|
||||||
|
(*it)->Commit();
|
||||||
|
}
|
||||||
|
time(&et);
|
||||||
|
cout << "Committing objects: " << et - st << " seconds" << endl;
|
||||||
|
|
||||||
|
time(&st);
|
||||||
|
Dictionary::Ptr obs = make_shared<Dictionary>();
|
||||||
|
for (int a = 0; a < num_obs; a++) {
|
||||||
|
ObjectSet::Ptr os = make_shared<ObjectSet>(ObjectSet::GetAllObjects(), &foo);
|
||||||
|
os->Start();
|
||||||
|
obs->AddUnnamedProperty(os);
|
||||||
|
}
|
||||||
|
time(&et);
|
||||||
|
cout << "Creating objectsets: " << et - st << " seconds" << endl;
|
||||||
|
|
||||||
|
time(&st);
|
||||||
ObjectMap::Ptr m = make_shared<ObjectMap>(ObjectSet::GetAllObjects(), &foogetter);
|
ObjectMap::Ptr m = make_shared<ObjectMap>(ObjectSet::GetAllObjects(), &foogetter);
|
||||||
m->Start();
|
m->Start();
|
||||||
|
time(&et);
|
||||||
|
cout << "Creating objectmap: " << et - st << " seconds" << endl;
|
||||||
|
|
||||||
|
time(&st);
|
||||||
ObjectMap::Range range = m->GetRange("bar");
|
ObjectMap::Range range = m->GetRange("bar");
|
||||||
|
time(&et);
|
||||||
|
cout << "Retrieving objects from map: " << et - st << " seconds" << endl;
|
||||||
cout << distance(range.first, range.second) << " elements" << endl;
|
cout << distance(range.first, range.second) << " elements" << endl;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in New Issue