7
7
#include < sigc++/functors/mem_fun.h>
8
8
#include < glibmm/timeval.h>
9
9
10
+ const int COUNT = 1000 ;
11
+
10
12
struct foo : public sigc ::trackable
11
13
{
12
14
int bar (int a);
@@ -29,16 +31,11 @@ void test_slot_call()
29
31
30
32
sigc::slot<int ,int > slot = sigc::mem_fun (&foobar1, &foo::bar);
31
33
32
- Glib::TimeVal t1, t2;
33
- t1. assign_current_time () ;
34
+ std::cout << " elapsed time for calling a slot " << COUNT << " times: " << std::endl;.
35
+ boost::timer::auto_cpu_timer timer ;
34
36
35
- for (int i=0 ; i < 5000 ; ++i)
37
+ for (int i=0 ; i < COUNT ; ++i)
36
38
slot (i);
37
-
38
- t2.assign_current_time ();
39
- t2.subtract (t1);
40
-
41
- std::cout << " elapsed time for calling a slot 5000 times: " << t2.tv_sec << " s " << t2.tv_usec << " us" << std::endl;
42
39
}
43
40
44
41
void test_signal_emit ()
@@ -48,13 +45,13 @@ void test_signal_emit()
48
45
Glib::TimeVal t1, t2;
49
46
t1.assign_current_time ();
50
47
51
- for (int i=0 ; i < 1000 ; ++i)
48
+ for (int i=0 ; i < COUNT ; ++i)
52
49
emitter (i);
53
50
54
51
t2.assign_current_time ();
55
52
t2.subtract (t1);
56
53
57
- std::cout << " elapsed time for 1000 emissions (0 slots): " << t2.tv_sec << " s " << t2.tv_usec << " us" << std::endl;
54
+ std::cout << " elapsed time for " << COUNT << " emissions (0 slots): " << t2.tv_sec << " s " << t2.tv_usec << " us" << std::endl;
58
55
}
59
56
60
57
void test_connected_signal_emit ()
@@ -66,13 +63,13 @@ void test_connected_signal_emit()
66
63
Glib::TimeVal t1, t2;
67
64
t1.assign_current_time ();
68
65
69
- for (int i=0 ; i < 1000 ; ++i)
66
+ for (int i=0 ; i < COUNT ; ++i)
70
67
emitter (i);
71
68
72
69
t2.assign_current_time ();
73
70
t2.subtract (t1);
74
71
75
- std::cout << " elapsed time for 1000 emissions (1 slot): " << t2.tv_sec << " s " << t2.tv_usec << " us" << std::endl;
72
+ std::cout << " elapsed time for " << COUNT << " emissions (1 slot): " << t2.tv_sec << " s " << t2.tv_usec << " us" << std::endl;
76
73
}
77
74
78
75
void test_connected_multiple_signal_emit ()
@@ -88,13 +85,13 @@ void test_connected_multiple_signal_emit()
88
85
Glib::TimeVal t1, t2;
89
86
t1.assign_current_time ();
90
87
91
- for (int i=0 ; i < 1000 ; ++i)
88
+ for (int i=0 ; i < COUNT ; ++i)
92
89
emitter (i);
93
90
94
91
t2.assign_current_time ();
95
92
t2.subtract (t1);
96
93
97
- std::cout << " elapsed time for 1000 emissions (5 slots): " << t2.tv_sec << " s " << t2.tv_usec << " us" << std::endl;
94
+ std::cout << " elapsed time for " << COUNT << " emissions (5 slots): " << t2.tv_sec << " s " << t2.tv_usec << " us" << std::endl;
98
95
}
99
96
100
97
void test_connect_disconnect ()
@@ -106,7 +103,7 @@ void test_connect_disconnect()
106
103
Glib::TimeVal t1, t2;
107
104
t1.assign_current_time ();
108
105
109
- for (int i=0 ; i < 1000 ; ++i)
106
+ for (int i=0 ; i < COUNT ; ++i)
110
107
{
111
108
it = emitter.connect (mem_fun (&foobar1, &foo::bar));
112
109
it->disconnect ();
@@ -115,7 +112,7 @@ void test_connect_disconnect()
115
112
t2.assign_current_time ();
116
113
t2.subtract (t1);
117
114
118
- std::cout << " elapsed time for 1000 connections/disconnections: " << t2.tv_sec << " s " << t2.tv_usec << " us" << std::endl;
115
+ std::cout << " elapsed time for " << COUNT << " connections/disconnections: " << t2.tv_sec << " s " << t2.tv_usec << " us" << std::endl;
119
116
}
120
117
121
118
int main ()
0 commit comments