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
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 20250925Version 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:latest2025092520250925-20240318_220250925n/an/an/a
FreeBSD:13:quarterly2025092520250925-20240318_220250925n/an/an/a
FreeBSD:14:latest2025092520250925-20240318_220250925---
FreeBSD:14:quarterly2025092520250925-20240318_220250925---
FreeBSD:15:latest2025092520250925n/a20240318_2n/an/a--
FreeBSD:15:quarterly2025092520250925n/a-n/an/a--
FreeBSD:16:latest2025092520250925n/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: 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