基于 Xray-core 的性能优化分支。
本分支专注于以下性能优化:
-
MultiBuffer 切片池化 (
common/buf/multi_buffer.go)- 新增
multiBufferPool池化 MultiBuffer 切片 - 新增
GetMultiBuffer()/PutMultiBuffer()接口 - 新增
ReleaseMultiAndReturn()释放并回收到池 - 减少高吞吐场景下的切片分配
- 新增
-
Buffer 结构体池化 (
common/buf/buffer.go)- 已有的
bufferPool池化 Buffer 结构体 - 已有的
bytespool多级内存池 (2KB/8KB/32KB/128KB)
- 已有的
- Copy 函数快速路径 (
common/buf/copy.go)- 新增
copyFast()无 handler 快速路径 - 无 option 时跳过 handler 分配和迭代
- 减少热路径上的开销
- 新增
- Pipe 无锁长度查询 (
transport/pipe/impl.go)- 新增
dataLen原子变量缓存数据长度 Len()和hasData()无需获取锁- 减少锁竞争,提高并发性能
- 新增
- Notifier 池化 (
common/signal/notifier.go)- 新增
notifierPool池化 Notifier 实例 - 新增
Release()方法回收到池 - 减少频繁创建销毁的开销
- 新增
Mozilla Public License Version 2.0
Project VLESS (Русский)
Project XHTTP (Persian)
- Linux Script
- XTLS/Xray-install (Official)
- tempest (supports
systemdand OpenRC; Linux-only)
- Docker
- Web Panel
- One Click
- Magisk
- Homebrew
brew install xray
- Example
- Xray-examples
- Tutorial
- OpenWrt
- Asuswrt-Merlin
- Windows
- Android
- iOS & macOS arm64 & tvOS
- macOS arm64 & x64
- Linux
- iOS & macOS arm64 & tvOS
- Xray Tools
- Xray Wrapper
- XrayR
- Cores
- 基于 XTLS/Xray-core
- Xray-core v1.0.0 was forked from v2fly-core 9a03cc5
- 第三方依赖详见 go.mod
$env:CGO_ENABLED=0 go build -o xray.exe -trimpath -buildvcs=false -ldflags="-s -w -buildid=" -v ./main
CGO_ENABLED=0 go build -o xray -trimpath -buildvcs=false -ldflags="-s -w -buildid=" -v ./main确保使用相同的 Go 版本,并设置 git commit id (7 bytes):
CGO_ENABLED=0 go build -o xray -trimpath -buildvcs=false -gcflags="all=-l=4" -ldflags="-X github.com/xtls/xray-core/core.build=REPLACE -s -w -buildid=" -v ./main