notbugAs an Amazon Associate I earn from qualifying purchases.
Want a good read? Try FreeBSD Mastery: Jails (IT Mastery Book 15)
Want a good monitor light? See my photosAll times are UTC
Ukraine
Port details
libcpucycles Microlibrary for counting CPU cycles
20260105 benchmarks on this many watch lists=0 search for ports that depend on this port Find issues related to this port Report an issue related to this port View this port on Repology. pkg-fallout 20251226Version of this port present on the latest quarterly branch.
Maintainer: fuz@FreeBSD.org search for ports maintained by this maintainer
Port Added: 2024-10-30 09:03:18
Last Update: 2026-01-11 15:27:48
Commit Hash: 1d0a13d
Also Listed In: devel
License: PD
WWW:
https://cpucycles.cr.yp.to/
Description:
libcpucycles is a microlibrary for counting CPU cycles. Cycle counts are not as detailed as Falk diagrams but are the most precise timers available to typical software; they are central tools used in understanding and improving software performance. The libcpucycles API is simple: include <cpucycles.h>, call cpucycles() to receive a long long whenever desired, and link with -lcpucycles. Internally, libcpucycles understands machine-level cycle counters for amd64 (both PMC and TSC), arm32, arm64 (both PMC and VCT), mips64, ppc32, ppc64, riscv32, riscv64, s390x, sparc64, and x86. libcpucycles also understands four OS-level mechanisms, which give varying levels of accuracy: mach_absolute_time, perf_event, CLOCK_MONOTONIC, and, as a fallback, microsecond-resolution gettimeofday. When the program first calls cpucycles(), libcpucycles automatically benchmarks the available mechanisms and selects the mechanism that does the best job. Subsequent cpucycles() calls are thread-safe and very fast. An accompanying cpucycles-info program prints a summary of cycle-counter accuracy.
Homepage    cgit ¦ Codeberg ¦ GitHub ¦ GitLab ¦ SVNWeb - no subversion history for this port

Manual pages:
pkg-plist: as obtained via: make generate-plist
Expand this list (16 items)
Collapse this list.
  1. @ldconfig
  2. /usr/local/share/licenses/libcpucycles-20260105/catalog.mk
  3. /usr/local/share/licenses/libcpucycles-20260105/LICENSE
  4. /usr/local/share/licenses/libcpucycles-20260105/PD
  5. bin/cpucycles-info
  6. bin/cpucycles-open
  7. include/cpucycles.h
  8. lib/libcpucycles.a
  9. lib/libcpucycles.so
  10. lib/libcpucycles.so.1
  11. share/man/man1/cpucycles-info.1.gz
  12. share/man/man1/cpucycles-open.1.gz
  13. share/man/man3/cpucycles.3.gz
  14. @owner
  15. @group
  16. @mode
Collapse this list.
USE_RC_SUBR (Service Scripts)
  • no SUBR information found for this port
Dependency lines:
  • libcpucycles>0:benchmarks/libcpucycles
To install the port:
cd /usr/ports/benchmarks/libcpucycles/ && make install clean
To add the package, run one of these commands:
  • pkg install benchmarks/libcpucycles
  • pkg install libcpucycles
NOTE: If this package has multiple flavors (see below), then use one of them instead of the name specified above.
PKGNAME: libcpucycles
Flavors: there is no flavor information for this port.
distinfo:
TIMESTAMP = 1767811693 SHA256 (libcpucycles-20260105.tar.gz) = e87dcaaa28e905b574ccf3d49e23e05c73edb3f99136dcd566bca16829ab6694 SIZE (libcpucycles-20260105.tar.gz) = 58997

Packages (timestamps in pop-ups are UTC):
libcpucycles
ABIaarch64amd64armv6armv7i386powerpcpowerpc64powerpc64le
FreeBSD:13:latest2026010520260105-20240318_220260105n/an/an/a
FreeBSD:13:quarterly2025092520260105-20240318_220260105n/an/an/a
FreeBSD:14:latest2026010520260105-20240318_220260105---
FreeBSD:14:quarterly2026010520260105-20240318_220260105---
FreeBSD:15:latest2026010520260105n/a20240318_2n/an/a--
FreeBSD:15:quarterly2026010520260105n/a-n/an/a--
FreeBSD:16:latest2025122620260105n/a-n/an/a--
Dependencies
NOTE: FreshPorts displays only information on required and default dependencies. Optional dependencies are not covered.
Build dependencies:
  1. python3.11 : lang/python311
There are no ports dependent upon this port

Configuration Options:
No options to configure
Options name:
benchmarks_libcpucycles
USES:
python:build shebangfix
FreshPorts was unable to extract/find any pkg message
Master Sites:
Expand this list (1 items)
Collapse this list.
  1. https://cpucycles.cr.yp.to/
Collapse this list.

Number of commits found: 6

Commit History - (may be incomplete: for full details, see links to repositories near top of page)
CommitCreditsLog message
20260105
11 Jan 2026 15:27:48
commit hash: 1d0a13dbd489fad18bddaf27e09497fda7b50a8fcommit hash: 1d0a13dbd489fad18bddaf27e09497fda7b50a8fcommit hash: 1d0a13dbd489fad18bddaf27e09497fda7b50a8fcommit hash: 1d0a13dbd489fad18bddaf27e09497fda7b50a8f files touched by this commit
Robert Clausecker (fuz) search for other commits by this committer
benchmarks/libcpucycles: update to 20260105

Changelog: https://cpucycles.cr.yp.to/download.html
20251226
28 Dec 2025 15:12:08
commit hash: 26369b2563ea2beb9003156eedafc9b850ad0fc3commit hash: 26369b2563ea2beb9003156eedafc9b850ad0fc3commit hash: 26369b2563ea2beb9003156eedafc9b850ad0fc3commit hash: 26369b2563ea2beb9003156eedafc9b850ad0fc3 files touched by this commit
Robert Clausecker (fuz) search for other commits by this committer
benchmarks/libcpucycles: update to 20251226

Changelog: https://cpucycles.cr.yp.to/download.html

Event:		39C3
20250925
28 Sep 2025 09:29:34
commit hash: 7f47d8879ae096a1af776a78b5a36e4bf68f1e73commit hash: 7f47d8879ae096a1af776a78b5a36e4bf68f1e73commit hash: 7f47d8879ae096a1af776a78b5a36e4bf68f1e73commit hash: 7f47d8879ae096a1af776a78b5a36e4bf68f1e73 files touched by this commit
Robert Clausecker (fuz) search for other commits by this committer
benchmarks/libcpucycles: update to 20250925

Changelog: https://cpucycles.cr.yp.to/download.html

Event:		EuroBSDcon 2025
20240318_2
25 Nov 2024 10:22:04
commit hash: 05515f1759027c2a2b9bb4ca9e20641a048188bacommit hash: 05515f1759027c2a2b9bb4ca9e20641a048188bacommit hash: 05515f1759027c2a2b9bb4ca9e20641a048188bacommit hash: 05515f1759027c2a2b9bb4ca9e20641a048188ba files touched by this commit
Robert Clausecker (fuz) search for other commits by this committer
benchmarks/libcpucycles: report actual CPU frequency if supported

This uses sched_getcpu(2) to find the CPU we are scheduled on and then
cpufreq(4) to find the frequency of that CPU.  The caller is responsible
for pinning the thread to one CPU and/or disabling frequency scaling if
a consistent result is required.
20240318_1
06 Nov 2024 15:14:31
commit hash: 10004332587eb2be62e0ea7ee945770489e049e5commit hash: 10004332587eb2be62e0ea7ee945770489e049e5commit hash: 10004332587eb2be62e0ea7ee945770489e049e5commit hash: 10004332587eb2be62e0ea7ee945770489e049e5 files touched by this commit
Robert Clausecker (fuz) search for other commits by this committer
benchmarks/libcpucycles: fix jmpbuf / sigjmpbuf confusion

I forgot to include this patch originally.  While the warning is
harmless (sigjmp_buf and jmp_buf have the same layout on FreeBSD),
it might not be on downstream ports consumers like DragonflyBSD.
20240318
30 Oct 2024 09:00:37
commit hash: fb1687157216017a3c33d5b1890c3b2b75621735commit hash: fb1687157216017a3c33d5b1890c3b2b75621735commit hash: fb1687157216017a3c33d5b1890c3b2b75621735commit hash: fb1687157216017a3c33d5b1890c3b2b75621735 files touched by this commit
Robert Clausecker (fuz) search for other commits by this committer
benchmarks/libcpucycles: Microlibrary for counting CPU cycles

libcpucycles is a microlibrary for counting CPU cycles.  Cycle counts
are not as detailed as Falk diagrams but are the most precise timers
available to typical software; they are central tools used in
understanding and improving software performance.

The libcpucycles API is simple: include <cpucycles.h>, call cpucycles()
to receive a long long whenever desired, and link with -lcpucycles.

Internally, libcpucycles understands machine-level cycle counters for
amd64 (both PMC and TSC), arm32, arm64 (both PMC and VCT), mips64,
ppc32, ppc64, riscv32, riscv64, s390x, sparc64, and x86. libcpucycles
also understands four OS-level mechanisms, which give varying levels of
accuracy: mach_absolute_time, perf_event, CLOCK_MONOTONIC, and, as a
(Only the first 15 lines of the commit message are shown above View all of this commit message)

Number of commits found: 6