45 throw StandardException(
LOC,ConfigurationError);
52 throw StandardException(
LOC,ConfigurationError,
"Standard exception with an extra string message.");
57 throw StandardException(
LOC,ConfigurationError);
61 throw StandardException(
LOC,ConfigurationError,
"Standard exception with an extra string message.");
66 for (
unsigned int j = 0; j < 5; ++j ) {
67 dude[j] = 3.15*543/230.235;
74 for (
unsigned int j = 0; j < 5; ++j ) {
75 dude[j] = 3.15*543/230.235;
78 throw StandardException(
LOC,ConfigurationError,
"Standard exception with an extra string message.");
98 times[0] = stopwatch.split();
100 times[1] = stopwatch.split();
102 times[2] = stopwatch.split();
104 times[3] = stopwatch.split();
106 times[4] = stopwatch.split();
108 times[5] = stopwatch.split();
113 times[6] = stopwatch.split();
117 times[7] = stopwatch.split();
121 times[8] = stopwatch.split();
126 times[0] = stopwatch.split();
128 times[1] = stopwatch.split();
130 times[2] = stopwatch.split();
132 times[3] = stopwatch.split();
134 times[4] = stopwatch.split();
136 times[5] = stopwatch.split();
142 times[6] = stopwatch.split();
146 times[7] = stopwatch.split();
150 times[8] = stopwatch.split();
152 std::cout << std::endl;
153 std::cout <<
"***********************************************************" << std::endl;
154 std::cout <<
" Performance comparison ecl exceptions" << std::endl;
155 std::cout <<
"***********************************************************" << std::endl;
156 std::cout << std::endl;
158 std::cout <<
"Simple Candidate Function " <<
" Time: " << times[0] << std::endl;
159 std::cout <<
" Undeclared exception " <<
" Time: " << times[1] << std::endl;
160 std::cout <<
" Unused exception " <<
" Time: " << times[2] << std::endl;
161 std::cout <<
" Unused exception w/ string " <<
" Time: " << times[3] << std::endl;
162 std::cout << std::endl;
163 std::cout <<
"Complex Candidate Function " <<
" Time: " << times[4] << std::endl;
164 std::cout <<
" Unused exception w/ string " <<
" Time: " << times[5] << std::endl;
165 std::cout << std::endl;
166 std::cout <<
"Try Catch Blocks " << std::endl;
167 std::cout <<
" Uncaught exceptions " <<
" Time: " << times[6] << std::endl;
168 std::cout <<
" Caught exception " <<
" Time: " << times[7] << std::endl;
169 std::cout <<
" Caught exception w/string " <<
" Time: " << times[8] << std::endl;
171 std::cout << std::endl;
172 std::cout <<
"***********************************************************" << std::endl;
173 std::cout <<
" Conclusions" << std::endl;
174 std::cout <<
"***********************************************************" << std::endl;
175 std::cout << std::endl;
177 std::cout <<
"The following conclusions are after testing on a dual core." << std::endl;
178 std::cout << std::endl;
179 std::cout <<
" - In simple functions, unused ecl exceptions < 50ns." << std::endl;
180 std::cout <<
" - String messages don't effect the cost of unused ecl exceptions." << std::endl;
181 std::cout <<
" - Try-catch blocks have negligible cost." << std::endl;
182 std::cout <<
" - String messages do impact caught messages ~1us." << std::endl;
183 std::cout << std::endl;