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
I started running short on disk space for the non-production FreshPorts hosts. This time, I have decided to ask for donations. See my recent blog post which points to my Patreon account.
Port details
libcpucycles Microlibrary for counting CPU cycles
20250925 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 20240318_2Version 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: 2025-09-28 09:29:34
Commit Hash: 7f47d88
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 (14 items)
Collapse this list.
  1. @ldconfig
  2. /usr/local/share/licenses/libcpucycles-20250925/catalog.mk
  3. /usr/local/share/licenses/libcpucycles-20250925/LICENSE
  4. /usr/local/share/licenses/libcpucycles-20250925/PD
  5. bin/cpucycles-info
  6. include/cpucycles.h
  7. lib/libcpucycles.a
  8. lib/libcpucycles.so
  9. lib/libcpucycles.so.1
  10. share/man/man1/cpucycles-info.1.gz
  11. share/man/man3/cpucycles.3.gz
  12. @owner
  13. @group
  14. @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 = 1758883194 SHA256 (libcpucycles-20250925.tar.gz) = 62313d42ad5a3cbd8d41a9fb7088edc328ef499d426e1f191612331d0fcbe301 SIZE (libcpucycles-20250925.tar.gz) = 48447

Packages (timestamps in pop-ups are UTC):
libcpucycles
ABIaarch64amd64armv6armv7i386powerpcpowerpc64powerpc64le
FreeBSD:13:latest20240318_220240318_2-20240318_220250925---
FreeBSD:13:quarterly20240318_220250925-20240318_220250925---
FreeBSD:14:latest20240318_220250925-20240318_220250925---
FreeBSD:14:quarterly20240318_220250925-20240318_220250925---
FreeBSD:15:latest20240318_220250925n/a20240318_2n/a---
FreeBSD:15:quarterly--n/a-n/a---
FreeBSD:16:latest-20250925n/a-n/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: 4

Commit History - (may be incomplete: for full details, see links to repositories near top of page)
CommitCreditsLog message
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: 4