惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
阮一峰的网络日志
阮一峰的网络日志
S
Secure Thoughts
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
Cyber Attacks, Cyber Crime and Cyber Security
T
Threat Research - Cisco Blogs
P
Privacy & Cybersecurity Law Blog
The Hacker News
The Hacker News
H
Heimdal Security Blog
W
WeLiveSecurity
L
LINUX DO - 热门话题
Hacker News: Ask HN
Hacker News: Ask HN
WordPress大学
WordPress大学
The Last Watchdog
The Last Watchdog
Hugging Face - Blog
Hugging Face - Blog
博客园 - 【当耐特】
D
DataBreaches.Net
I
Intezer
Webroot Blog
Webroot Blog
C
Cisco Blogs
AWS News Blog
AWS News Blog
博客园 - 聂微东
T
The Blog of Author Tim Ferriss
V
Vulnerabilities – Threatpost
罗磊的独立博客
Google DeepMind News
Google DeepMind News
N
Netflix TechBlog - Medium
Schneier on Security
Schneier on Security
宝玉的分享
宝玉的分享
博客园 - 叶小钗
PCI Perspectives
PCI Perspectives
D
Docker
Scott Helme
Scott Helme
NISL@THU
NISL@THU
J
Java Code Geeks
B
Blog RSS Feed
Google Online Security Blog
Google Online Security Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
T
The Exploit Database - CXSecurity.com
AI
AI
美团技术团队
Cloudbric
Cloudbric
月光博客
月光博客
P
Proofpoint News Feed
T
Tailwind CSS Blog
Google DeepMind News
Google DeepMind News
小众软件
小众软件
www.infosecurity-magazine.com
www.infosecurity-magazine.com
The Cloudflare Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org

Hacker News

Introducing Claude Opus 4.7 Qwen Studio The Future of Everything is Lies, I Guess: Where Do We Go From Here? GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis Moving a large-scale metrics pipeline from StatsD to OpenTelemetry / Prometheus GitHub - Nightmare-Eclipse/RedSun: The Red Sun vulnerability repository GitHub - SethPyle376/hiraeth: Local AWS emulator focused on fast integration testing, with SQS support, SQLite-backed state, and a debug-friendly web UI. GitHub - macOS26/Agent: Any AI, replaces Claude Code, Cursor, OpenClaw. Over 18 LLM providers (Claude, OpenAI, Gemini, Ollama, Zai, HF, Qwen) wired into a native Mac app that writes code, builds Xcode projects, bumps versions, manages git, automates Safari, use AppleScript, JS or Accessibility, extend Agent! w/ MCP Servers, run tasks from your iPhone via Messages. YouTube now lets you turn off Shorts I Made a Terminal Pager Burgers | マクドナルド公式 Commands — HackerNews CLI documentation ChatGPT for Excel PiCore - Raspberry Pi Port of Tiny Core Linux Live Nation illegally monopolized ticketing market, jury finds Google Broke Its Promise to Me. Now ICE Has My Data. Founding Engineer at Adaptional | Y Combinator CRISPR takes important step toward silencing Down syndrome’s extra chromosome GitHub - saffron-health/libretto: The AI toolkit for building reliable browser automations US v. Heppner (S.D.N.Y. 2026) no attorney-client privilege for AI chats [pdf] Unexpected €54k billing spike in 13 hours: Firebase browser key without API restrictions used for Gemini requests Retrofitting JIT Compilers into C Interpreters IPv6 – Google The Accursèd Alphabetical Clock Cybersecurity Looks Like Proof of Work Now Fragments: April 14 Cal.com Goes Closed Source: Why AI Security Is Forcing Our Decision | Cal.com - Scheduling Software for Online Bookings Laravel raised money and now injects ads directly into your agent When moving fast, talking is the first thing to break Too much Discussion of the XOR swap trick – Heather Cafe Introduction to Spherical Harmonics for Graphics Programmers The Grand Line Building a Z-Machine in the worst possible language High-Level Rust: Getting 80% of the Benefits with 20% of the Pain GitHub - duguyue100/midnight-captain: Inspired by Midnight Commander, tailored to my taste. How to build a `git diff` driver · Jamie Tanna | Software Engineer Center for Responsible, Decentralized Intelligence at Berkeley The Local Universe’s Expansion Rate Is Clearer Than Ever, but Still Doesn’t Add Up - A new synthesis of astronomical measurements confirms a persistent mismatch that could point to physics beyond current models The air throughout our homes is infused with microplastics. But there are things you can do to breathe less of them The disturbing white paper Red Hat is trying to erase from the internet – OSnews The Future of Everything is Lies, I Guess: Annoyances ‘Abhorrent’: the inside story of the Polymarket gamblers betting millions on war Productive procrastination — Max van IJsselmuiden maps, territory and LMs 447 Terabytes per Square Centimetre at Zero Retention Energy: Non-Volatile Memory at the Atomic Scale on Fluorographane Show HN: Pardonned.com – A searchable database of US Pardons 20 Years on AWS and Never Not My Job The Seasons are Wrong Artemis II crew splashes down near San Diego after historic moon mission We gave an AI a 3 year retail lease in SF and asked it to make a profit | Andon Labs How a dancer with ALS used brainwaves to perform live On filing the corners off my MacBooks Installing every* Firefox extension OpenClaw’s memory is unreliable, and you don’t know when it will break Steve Blank Nowhere Is Safe Chimpanzees in Uganda locked in vicious 'civil war', say researchers watgo - a WebAssembly Toolkit for Go linux/Documentation/process/coding-assistants.rst at master · torvalds/linux GitHub - callumlocke/json-formatter: Makes JSON easy to read. Founding Product Engineer at Bild AI | Y Combinator A compelling title that is cryptic enough to get you to take action on it GitHub - Keychron/Keychron-Keyboards-Hardware-Design: Industrial design files for Keychron keyboards and mice. 100+ models with CAD assets in STEP, DXF, DWG, and PDF. Source-available, with commercial use allowed for original compatible accessories within the license terms. [ANNOUNCE] WireGuardNT v0.11 and WireGuard for Windows v0.6 Released 1D-Chess Helium Is Hard to Replace Cooperative Vectors Introduction | Evolve Keeping a Postgres queue healthy — PlanetScale Our response to the Axios developer tool compromise Do Americans read print books, e-books or audiobooks more? The Zettelkasten Method in Obsidian: A Practical Setup Guide Artemis II Is Competency Porn and We Are Starving For It WeakC4 Flight Viz — Cockpit View A Mexican surveillance giant you’ve never heard of is now watching the U.S. border Surelock: Deadlock-Free Mutexes for Rust RISC-V 101 – what is it and what does it mean for Canonical? | Ubuntu The Problem That Built an Industry How Much Linear Memory Access Is Enough? | Solidean Investigating Split Locks on x86-64 Simplest hash functions Sybilproof reputation mechanisms (2005) [pdf] What is a property? How Complex is my Code? Static code analysis in Kotlin — tools overview Toffoli gates are all you need PGLite evangelism dcmake: a new CMake debugger UI Clojure on Fennel part one: Persistent Data Structures Fragments: April 2 Python Release Python install manager 26.1 The Life and Death of the Book Review - Liberties Introducing Database Traffic Control — PlanetScale Bitcoin miners are losing $19,000 on every BTC produced as difficulty drops 7.8% God sleeps in the minerals Building slogbox Apple Silicon and Virtual Machines: Beating the 2 VM Limit Who was “Not Even Wrong” first? Pokemon Evolution Vs Darwinian Evolution The APL Programming Language Source Code
GitHub - ClickHouse/silk: Fast stackful fibers with a NUMA-aware work-stealing scheduler
2026-05-21 · via Hacker News
The Silk logo.

Silk

A cooperative fiber scheduler for Linux with per-CPU scheduler threads, io_uring integration, and topology-aware work-stealing.

Fibers are lightweight stackful coroutines that suspend rather than block their OS thread, enabling high concurrency with low overhead.

Documentation

  • docs/scheduler.md — scheduler loop, context switching, suspension pattern, async IO, sleep cancellation, work-stealing design, and performance benchmarks
  • docs/sync.md — synchronization primitives: FiberFuture, FiberFutex, FiberMutex, FiberSequencer, FiberEvent, FairFiberMutex
  • docs/util.md — utility library: lock-free data structures, TSC timing, memory pool, CPU topology, logging, assertions
  • docs/perf.mdnet-perf and file-perf benchmark results and fio comparison
  • docs/coroutines.md — stackless coroutines vs stackful fibers: design differences and performance data
  • src/fibers/tests/ — usage examples: fiber lifecycle, futures, synchronization primitives, async IO
  • src/gdb/fiber.py — GDB extension; load with source src/gdb/fiber.py, then use fiber-list, fiber-savecontext, fiber-restorecontext, fiber-switchcontext

Requirements

  • CMake >= 3.28
  • Ninja
  • Clang 21
  • ccache (optional)
  • Boost headers (libboost-dev)
  • libelf (libelf-dev) — optional, required only for src/profiler; the profiler is silently skipped if absent.

GTest, Google Benchmark, libbacktrace, liburing, librseq, libbpf, bpftool, and cxxopts are bundled as submodules under contrib/ and do not need to be installed separately. The two Boost.Context asm sources used for fiber switching are vendored under contrib/fcontext/, and systemtap's USDT headers (<sys/sdt.h> + <sys/sdt-config.h>) under contrib/systemtap-sdt/ (both vendored directly, no submodule). Poco, the AWS SDK, and jemalloc are built on demand via --build-poco, --build-aws, and --build-jemalloc passed to configure.

Runtime dependencies for optional benchmarks: nginx (only for http-perf --nginx; the default uses an internal Poco-based server built into the http-perf binary), fio (for fio-perf), and MinIO (for s3-perf). MinIO is downloaded automatically to .tools/ if not in PATH; the others must be installed separately.

Build

./bb [options] [command]

Global options

Option Values Default Description
-b, --build debug, release debug Build type
-s, --sanitizer thread, address, memory, undefined Enable sanitizer
-v, --verbose Print every command before running it; also passes --verbose to perf binaries to enable their debug logging

Commands

configure [--build-poco] [--build-aws] [--build-jemalloc]

Configure (or reconfigure) the CMake build directory. Optional flags enable components that are off by default: --build-poco enables http-perf (requires Poco), --build-aws enables s3-perf (requires the AWS SDK), --build-jemalloc enables jemalloc (used by http-perf and s3-perf to improve allocator performance).

./bb configure
./bb configure --build-poco --build-aws
./bb -b release configure

fmt [--check]

Format all source files with clang-format-21. Pass --check to verify formatting without modifying files (exits non-zero if any file would be changed).

./bb fmt
./bb fmt --check

clean

Remove the entire build/ directory.

./bb clean

build [targets]

Build the project. Configures automatically if the build directory does not exist. build is the default command when none is specified.

./bb                          # debug build
./bb -b release               # release build
./bb -s thread                # debug build with TSan
./bb -b release -s address    # release build with ASan
./bb build fibers-test        # build a specific target

test [-R pattern] [-N] [ctest flags...]

Build and run tests. Runs in parallel using all available CPUs. Any extra flags are forwarded directly to ctest.

Flag Description
-R <pattern> Run only tests matching the regex pattern
-N List tests without running them
--timeout SECONDS Per-test timeout in seconds (default: 180, 0=none)
--coverage Instrument with coverage, run tests, and generate an HTML report, an lcov file, and a Cobertura XML report under build/debug-coverage/
--rerun-failed Rerun only tests that failed in the last run
--repeat until-fail:<n> Repeat each test up to n times, stopping on first failure (useful for flaky test hunting)
--output-on-failure Print test output when a test fails
./bb test
./bb test -R FiberMutex
./bb -s thread test
./bb test --rerun-failed
./bb test --coverage

bench [-R pattern] [-N] [gbench flags...]

Build and run benchmarks.

Flag Description
-R <pattern> Run only benchmarks matching the pattern
-N List benchmarks without running them
--timeout SECONDS Per-benchmark timeout in seconds (default: 180, 0=none)
./bb -b release bench
./bb -b release bench -R LockFreeQueue

Performance commands

Each perf command builds the relevant binary and runs the benchmark, printing results as a Markdown table. Duration, warmup, and delay options accept a unit suffix (ns, us, ms, s, m); a bare number is interpreted as seconds. All perf commands accept --timeout SECONDS (per-run timeout; default: 180, 0=none).

file-perf

Async file I/O benchmark using io_uring.

Option Default Description
--file PATH /dev/shm/file-perf.bin Test file path
--bs SIZE 4k Block size
--size SIZE 1g File size
--duration DURATION 10 Measurement duration
--warmup DURATION 2 Warmup duration
--numjobs N [N ...] 1 Number of parallel jobs
--iodepth N [N ...] 16 IO queue depth per job
--rw MODE [MODE ...] randread Access mode(s): randread, randwrite, seqread
--flamegraph Profile and generate flamegraph SVG
--print-counters Print perf counters after each run
./bb -b release file-perf
./bb -b release file-perf --bs 64k --size 4g
./bb -b release file-perf --numjobs 1 16 --iodepth 1 16
./bb -b release file-perf --rw randread randwrite
./bb -b release file-perf --flamegraph

fio-perf

fio comparison using io_uring engine. Same options as file-perf (except --flamegraph and --print-counters). Does not build anything.

./bb fio-perf
./bb fio-perf --bs 64k
./bb fio-perf --numjobs 1 16 --iodepth 1 16

net-perf

TCP echo benchmark. Starts a local server and runs the client against it. When --host points to a remote host, the server is not started locally.

Option Default Description
--host 127.0.0.1 Server host
--port 17777 Server port
--msg-size BYTES 64 Echo message size
--duration DURATION 10 Measurement duration
--warmup DURATION 2 Warmup duration
--connections N [N ...] 1000 Connection counts to sweep
--delay DURATION 0 Server-side delay per message (e.g. 1ms, 100us)
--flamegraph Profile client and generate flamegraph SVG
--print-counters Print perf counters after each run
./bb -b release net-perf
./bb -b release net-perf --connections 1 64 256 1024
./bb -b release net-perf --delay 1ms
./bb -b release net-perf --host 10.0.0.2
./bb -b release net-perf --flamegraph

net-perf-asio

TCP echo benchmark using Boost.Asio C++20 coroutines. Same options as net-perf.

./bb -b release net-perf-asio
./bb -b release net-perf-asio --connections 1 64 256 1024
./bb -b release net-perf-asio --delay 1ms
./bb -b release net-perf-asio --flamegraph

http-perf

HTTP/1.1 GET benchmark. Defaults to silk's internal HTTP server (Poco's HTTPServerConnection over FiberSocketImpl, one fiber per connection); pass --nginx to run against nginx instead.

Option Default Description
--host 127.0.0.1 Server host
--port 18080 Server port
--duration DURATION 10 Measurement duration
--warmup DURATION 2 Warmup duration
--connections N [N ...] 1000 Connection counts to sweep
--delay DURATION 0 Server-side per-request delay (e.g. 1ms, 100us); fiber server uses silk::FiberScheduler::sleep, nginx uses lua sleep
--threads Use thread-per-connection client mode instead of fibers
--nginx Run client against nginx instead of the internal server
--flamegraph Profile client and generate flamegraph SVG
--print-counters Print perf counters after each run
./bb -b release http-perf
./bb -b release http-perf --threads
./bb -b release http-perf --nginx
./bb -b release http-perf --delay 5ms
./bb -b release http-perf --connections 1 512 1024 2048
./bb -b release http-perf --flamegraph

s3-perf

S3 object storage benchmark. Starts a local MinIO server (downloaded automatically to .tools/ if not in PATH) and runs the client against it.

Option Default Description
--endpoint URL http://127.0.0.1:9000 S3 endpoint
--bucket NAME test-bucket S3 bucket
--key NAME test-object S3 object key
--region NAME us-east-1 S3 region
--access-key KEY minioadmin S3 access key
--secret-key KEY minioadmin S3 secret key
--size SIZE 4096 Object size; no units = bytes (e.g. 4096, 64k, 1g)
--duration DURATION 10 Measurement duration
--warmup DURATION 2 Warmup duration
--numjobs N [N ...] 1 Number of parallel jobs
--iodepth N [N ...] 16 IO queue depth per job
--rw MODE [MODE ...] read Access mode(s): read, write, readwrite
--threads Also run with thread executor
--flamegraph Profile first config and generate flamegraph SVG
--print-counters Print perf counters after each run
--data-dir PATH /dev/shm/minio-data MinIO data directory
./bb -b release s3-perf
./bb -b release s3-perf --rw read write
./bb -b release s3-perf --numjobs 1 16 --iodepth 1 64
./bb -b release s3-perf --threads
./bb -b release s3-perf --flamegraph

perf

Run multiple perf benchmarks in one shot. Targets are positional values, listed after the options.

Target Description
file file-perf
fio fio comparison
net net-perf
net-asio net-perf-asio
net-epoll net-perf-epoll
http http-perf (internal server, fiber client)
http-threads http-perf (internal server, thread client)
http-nginx http-perf against nginx (fiber client)
s3 s3-perf (fibers)
s3-threads s3-perf (threads)
all run every target above
Option Description
--duration DURATION Override per-binary measurement duration (e.g. 60s)
--warmup DURATION Override per-binary warmup duration (e.g. 10s)
--timeout SECONDS Per-run timeout (default 180, 0 = none)
./bb -b release perf file net
./bb -b release perf all
./bb -b release perf --duration 60s --warmup 10s file net net-asio
./bb -b release perf --duration 60s --warmup 10s all