<feed xmlns='http://www.w3.org/2005/Atom'>
<title>catch3/src/catch2/benchmark/catch_benchmark.hpp, branch v3.7.1</title>
<subtitle>Progmasoft Catch3: an independently maintained C++17 test framework with a parallel runner, property checks, snapshots and structured results.</subtitle>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/'/>
<entry>
<title>Remove copyability from BenchmarkFunction</title>
<updated>2024-07-22T08:54:14+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2024-07-22T07:50:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=22e6490325318d9a0c9820f7e1bb43c993adbbec'/>
<id>22e6490325318d9a0c9820f7e1bb43c993adbbec</id>
<content type='text'>
Technically we should be able to remove moveability as well, but
then we would need a larger surgery. This already improves the
compile times and binary sizes by a surprising amount.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Technically we should be able to remove moveability as well, but
then we would need a larger surgery. This already improves the
compile times and binary sizes by a surprising amount.
</pre>
</div>
</content>
</entry>
<entry>
<title>Reduce the number of templates in Benchmarking</title>
<updated>2023-09-08T08:04:31+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-08-31T19:52:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=47a2c969380259e899f471edde84f06a6d687dc9'/>
<id>47a2c969380259e899f471edde84f06a6d687dc9</id>
<content type='text'>
The basic idea was to reduce the number of things dependent on the `Clock`
type. To that end, I replaced `Duration&lt;Clock&gt;` with `IDuration` typedef
for `std::nanoseconds`, and `FloatDuration&lt;Clock&gt;` with `FDuration`
typedef for `Duration&lt;double, std::nano&gt;`. We can generally assume that
any clock's duration can be expressed in nanoseconds, as long as we insert
`duration_cast`s into the right places.

Note that we cannot remove all dependence on `Clock` as a template
arguments, because functions that actually measure the elapsed time have
to use the Clock.

We also changed some template function arguments to pass plain function
pointers, so that the actual implementation can be placed into a cpp file.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The basic idea was to reduce the number of things dependent on the `Clock`
type. To that end, I replaced `Duration&lt;Clock&gt;` with `IDuration` typedef
for `std::nanoseconds`, and `FloatDuration&lt;Clock&gt;` with `FDuration`
typedef for `Duration&lt;double, std::nano&gt;`. We can generally assume that
any clock's duration can be expressed in nanoseconds, as long as we insert
`duration_cast`s into the right places.

Note that we cannot remove all dependence on `Clock` as a template
arguments, because functions that actually measure the elapsed time have
to use the Clock.

We also changed some template function arguments to pass plain function
pointers, so that the actual implementation can be placed into a cpp file.
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove superfluous stdlib includes from catch_benchmark.hpp</title>
<updated>2023-09-08T08:04:24+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-09-04T14:38:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=fb96279aedc7472326189823078299abb2dad9a4'/>
<id>fb96279aedc7472326189823078299abb2dad9a4</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>🛠 Add &lt;exception&gt; header where strictly necessary</title>
<updated>2023-05-16T16:18:57+00:00</updated>
<author>
<name>ThePhD</name>
</author>
<published>2023-05-16T16:13:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=05d7eb5a0028906e4c6270b2340ae0d88d3cfa2a'/>
<id>05d7eb5a0028906e4c6270b2340ae0d88d3cfa2a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Cleanup internal includes by splitting out some event structs</title>
<updated>2023-03-31T17:31:51+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-03-31T08:44:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=9f08097f55eb29a61efcdb4af41952a67e155215'/>
<id>9f08097f55eb29a61efcdb4af41952a67e155215</id>
<content type='text'>
* Split out BenchmarkInfo and BenchmarkStats to their own header
* Outline BenchmarkStats&lt;&gt; declaration to separate header
* Split out TestRunInfo into its own header

These changes let us remove the large `interfaces_reporter.hpp`
include from `benchmark.hpp`, and replace it with
`interfaces_capture.hpp` in `run_context.hpp`.

I also cleaned out `interfaces_repoter.hpp` from reporter headers
that depend on `reporter_common_base.hpp`. This will not change
anything in the actual inclusion set, but makes it logically
more consistent.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Split out BenchmarkInfo and BenchmarkStats to their own header
* Outline BenchmarkStats&lt;&gt; declaration to separate header
* Split out TestRunInfo into its own header

These changes let us remove the large `interfaces_reporter.hpp`
include from `benchmark.hpp`, and replace it with
`interfaces_capture.hpp` in `run_context.hpp`.

I also cleaned out `interfaces_repoter.hpp` from reporter headers
that depend on `reporter_common_base.hpp`. This will not change
anything in the actual inclusion set, but makes it logically
more consistent.
</pre>
</div>
</content>
</entry>
<entry>
<title>Cleanup benchmarking includes</title>
<updated>2023-03-23T10:59:40+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-03-23T10:59:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=b3ebce715e9686f664e2756043a4c0e0e387a112'/>
<id>b3ebce715e9686f664e2756043a4c0e0e387a112</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Move name and sample analysis in benchmarks into BenchmarkStats</title>
<updated>2023-01-28T20:40:59+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-01-28T20:40:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=356dfc14391183aef80af7f23fe2297485311ae4'/>
<id>356dfc14391183aef80af7f23fe2297485311ae4</id>
<content type='text'>
This always saves 1 allocation per benchmark, and another two
allocations if the benchmark name is longer than the SSO buffer.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This always saves 1 allocation per benchmark, and another two
allocations if the benchmark name is longer than the SSO buffer.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix references to license file</title>
<updated>2022-10-28T09:30:15+00:00</updated>
<author>
<name>Lars Toenning</name>
</author>
<published>2022-10-28T09:22:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=f1084fb30990fe40c8f5b70034970c7eb4e1da72'/>
<id>f1084fb30990fe40c8f5b70034970c7eb4e1da72</id>
<content type='text'>
The license file was renamed with 6a502cc2f5fedd59b3495b58708f0d6d987ed9e1
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The license file was renamed with 6a502cc2f5fedd59b3495b58708f0d6d987ed9e1
</pre>
</div>
</content>
</entry>
<entry>
<title>Added --skip-benchmarks command-line option. (#2408)</title>
<updated>2022-04-23T21:14:49+00:00</updated>
<author>
<name>Daniel Feist</name>
</author>
<published>2022-04-23T21:14:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=291b35b389b8e6d7b560cf7e43b6c72c4b73e522'/>
<id>291b35b389b8e6d7b560cf7e43b6c72c4b73e522</id>
<content type='text'>
Closes #2392

Co-authored-by: Martin Hořeňovský &lt;martin.horenovsky@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Closes #2392

Co-authored-by: Martin Hořeňovský &lt;martin.horenovsky@gmail.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Prefer _t over ::type form for std type traits</title>
<updated>2021-08-18T22:21:13+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2021-08-16T15:01:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=edad4d0af7a91693448bbf884236ea6ff2a4bd15'/>
<id>edad4d0af7a91693448bbf884236ea6ff2a4bd15</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
