@@ -180,6 +180,27 @@ void BenchPostLinearizeWorstCase(ClusterIndex ntx, benchmark::Bench& bench)
180
180
});
181
181
}
182
182
183
+ template <typename SetType>
184
+ void BenchMergeLinearizationsWorstCase (ClusterIndex ntx, benchmark::Bench& bench)
185
+ {
186
+ DepGraph<SetType> depgraph;
187
+ for (ClusterIndex i = 0 ; i < ntx; ++i) {
188
+ depgraph.AddTransaction ({i, 1 });
189
+ if (i) depgraph.AddDependency (0 , i);
190
+ }
191
+ std::vector<ClusterIndex> lin1;
192
+ std::vector<ClusterIndex> lin2;
193
+ lin1.push_back (0 );
194
+ lin2.push_back (0 );
195
+ for (ClusterIndex i = 1 ; i < ntx; ++i) {
196
+ lin1.push_back (i);
197
+ lin2.push_back (ntx - i);
198
+ }
199
+ bench.run ([&] {
200
+ MergeLinearizations (depgraph, lin1, lin2);
201
+ });
202
+ }
203
+
183
204
} // namespace
184
205
185
206
static void LinearizePerIter16TxWorstCase (benchmark::Bench& bench) { BenchLinearizePerIterWorstCase<BitSet<16 >>(16 , bench); }
@@ -210,6 +231,13 @@ static void PostLinearize64TxWorstCase(benchmark::Bench& bench) { BenchPostLinea
210
231
static void PostLinearize75TxWorstCase (benchmark::Bench& bench) { BenchPostLinearizeWorstCase<BitSet<75 >>(75 , bench); }
211
232
static void PostLinearize99TxWorstCase (benchmark::Bench& bench) { BenchPostLinearizeWorstCase<BitSet<99 >>(99 , bench); }
212
233
234
+ static void MergeLinearizations16TxWorstCase (benchmark::Bench& bench) { BenchMergeLinearizationsWorstCase<BitSet<16 >>(16 , bench); }
235
+ static void MergeLinearizations32TxWorstCase (benchmark::Bench& bench) { BenchMergeLinearizationsWorstCase<BitSet<32 >>(32 , bench); }
236
+ static void MergeLinearizations48TxWorstCase (benchmark::Bench& bench) { BenchMergeLinearizationsWorstCase<BitSet<48 >>(48 , bench); }
237
+ static void MergeLinearizations64TxWorstCase (benchmark::Bench& bench) { BenchMergeLinearizationsWorstCase<BitSet<64 >>(64 , bench); }
238
+ static void MergeLinearizations75TxWorstCase (benchmark::Bench& bench) { BenchMergeLinearizationsWorstCase<BitSet<75 >>(75 , bench); }
239
+ static void MergeLinearizations99TxWorstCase (benchmark::Bench& bench) { BenchMergeLinearizationsWorstCase<BitSet<99 >>(99 , bench); }
240
+
213
241
BENCHMARK (LinearizePerIter16TxWorstCase, benchmark::PriorityLevel::HIGH);
214
242
BENCHMARK (LinearizePerIter32TxWorstCase, benchmark::PriorityLevel::HIGH);
215
243
BENCHMARK (LinearizePerIter48TxWorstCase, benchmark::PriorityLevel::HIGH);
@@ -237,3 +265,10 @@ BENCHMARK(PostLinearize48TxWorstCase, benchmark::PriorityLevel::HIGH);
237
265
BENCHMARK (PostLinearize64TxWorstCase, benchmark::PriorityLevel::HIGH);
238
266
BENCHMARK (PostLinearize75TxWorstCase, benchmark::PriorityLevel::HIGH);
239
267
BENCHMARK (PostLinearize99TxWorstCase, benchmark::PriorityLevel::HIGH);
268
+
269
+ BENCHMARK (MergeLinearizations16TxWorstCase, benchmark::PriorityLevel::HIGH);
270
+ BENCHMARK (MergeLinearizations32TxWorstCase, benchmark::PriorityLevel::HIGH);
271
+ BENCHMARK (MergeLinearizations48TxWorstCase, benchmark::PriorityLevel::HIGH);
272
+ BENCHMARK (MergeLinearizations64TxWorstCase, benchmark::PriorityLevel::HIGH);
273
+ BENCHMARK (MergeLinearizations75TxWorstCase, benchmark::PriorityLevel::HIGH);
274
+ BENCHMARK (MergeLinearizations99TxWorstCase, benchmark::PriorityLevel::HIGH);
0 commit comments