Fusion Monster Evaluation Project - GO Refactored Version
Please report any issues via issues.
Go version: https://github.com/oneclickvirt/ecs
Shell version: https://github.com/spiritLHLS/ecs/blob/main/README_EN.md
- amd64, arm, arm64, 386, mips, mipsle, s390x, riscv64
- amd64, arm64, s390x
More architectures can be tested by yourself.
- Linux, Windows, MacOS, FreeBSD, OpenBSD
- Linux, Windows、FreeBSD、OpenBSD
More systems can be tested by yourself.
- MacOS, FreeBSD, OpenBSD (hardware testing bugs not yet fixed)
- System basic information query and concurrent IP basic information query:
Self-developed basics, gostun - CPU test:
Self-developed cputest supporting sysbench(lua/golang version), geekbench, winsat - Memory test:
Self-developed memorytest supporting sysbench, dd - Disk test:
Self-developed disktest supporting dd, fio, winsat - Streaming media unlock information concurrent query:
Modified from netflix-verify and more to CommonMediaTests - Common streaming media tests concurrent query:
Self-developed to UnlockTests, logic modified from RegionRestrictionCheck and others - IP quality/security information concurrent query:
Self-developed, binary files compiled in securityCheck - Email port test:
Self-developed portchecker - Three-network return path test:
Modified from zhanghanyun/backtrace to oneclickvirt/backtrace - Three-network route test:
Modified from NTrace-core to nt3 - Speed test:
Based on data from speedtest.net and speedtest.cn, developed to oneclickvirt/speedtest - Three-network Ping test:
Modified from ecsspeed to pingtest
Will install dependencies by default, update package manager by default, non-interactive mode by default. The non-one-click version below allows control of dependency installation/package manager updates/interactive mode by default.
-
International users without acceleration:
export noninteractive=true && curl -L https://raw.githubusercontent.com/oneclickvirt/ecs/master/goecs.sh -o goecs.sh && chmod +x goecs.sh && bash goecs.sh env && bash goecs.sh install && goecs -l en
-
International/domestic users with CDN acceleration:
export noninteractive=true && curl -L https://cdn.spiritlhl.net/https://raw.githubusercontent.com/oneclickvirt/ecs/master/goecs.sh -o goecs.sh && chmod +x goecs.sh && bash goecs.sh env && bash goecs.sh install && goecs -l en
-
Domestic users with CNB acceleration:
export noninteractive=true && curl -L https://cnb.cool/oneclickvirt/ecs/-/git/raw/main/goecs.sh -o goecs.sh && chmod +x goecs.sh && bash goecs.sh env && bash goecs.sh install && goecs -l en
-
Download the script
International users without acceleration:
curl -L https://raw.githubusercontent.com/oneclickvirt/ecs/master/goecs.sh -o goecs.sh && chmod +x goecs.sh
International/domestic users with CDN acceleration:
curl -L https://cdn.spiritlhl.net/https://raw.githubusercontent.com/oneclickvirt/ecs/master/goecs.sh -o goecs.sh && chmod +x goecs.sh
Domestic users with CNB acceleration:
curl -L https://cnb.cool/oneclickvirt/ecs/-/git/raw/main/goecs.sh -o goecs.sh && chmod +x goecs.sh
-
Update package manager (optional) and install environment
./goecs.sh env
Non-interactive mode:
export noninteractive=true && ./goecs.sh env
-
Install
goecs
./goecs.sh install
-
Upgrade
goecs
./goecs.sh upgrade
-
Uninstall
goecs
./goecs.sh uninstall
-
help command
./goecs.sh -h
-
Invoke the menu
goecs -l en
Expand to view parameter descriptions
Usage: goecs [options]
-backtrace
Enable/Disable backtrace test (in 'en' language or on windows it always false) (default true)
-basic
Enable/Disable basic test (default true)
-comm
Enable/Disable common media test (default true)
-cpu
Enable/Disable CPU test (default true)
-cpum string
Set CPU test method (supported: sysbench, geekbench, winsat) (default "sysbench")
-cput string
Set CPU test thread mode (supported: single, multi) (default "multi")
-disk
Enable/Disable disk test (default true)
-diskm string
Set disk test method (supported: fio, dd, winsat) (default "fio")
-diskmc
Enable/Disable multiple disk checks, e.g., -diskmc=false
-diskp string
Set disk test path, e.g., -diskp /root
-email
Enable/Disable email port test (default true)
-h Show help information
-l string
Set language (supported: en, zh) (default "zh")
-log
Enable/Disable logging in the current path
-memory
Enable/Disable memory test (default true)
-memorym string
Set memory test method (supported: sysbench, dd, winsat) (default "sysbench")
-menu
Enable/Disable menu mode, disable example: -menu=false (default true)
-nt3
Enable/Disable NT3 test (in 'en' language or on windows it always false) (default true)
-nt3loc string
Specify NT3 test location (supported: GZ, SH, BJ, CD for Guangzhou, Shanghai, Beijing, Chengdu) (default "GZ")
-nt3t string
Set NT3 test type (supported: both, ipv4, ipv6) (default "ipv4")
-security
Enable/Disable security test (default true)
-speed
Enable/Disable speed test (default true)
-spnum int
Set the number of servers per operator for speed test (default 2)
-upload
Enable/Disable upload the result (default true)
-ut
Enable/Disable unlock media test (default true)
-v Display version information
- Download the compressed file with the .exe file: Releases
- After unzipping, right-click and run as administrator.
International image: https://hub.docker.com/r/spiritlhl/goecs
Please ensure Docker is installed on your machine before executing the following commands
Privileged mode + host network
docker run --rm --privileged --network host spiritlhl/goecs:latest -menu=false -l en
Unprivileged mode + non-host network
docker run --rm spiritlhl/goecs:latest -menu=false -l en
Using Docker to execute tests will result in some hardware testing bias and virtualization architecture detection failure. Direct testing is recommended over Docker testing.
Domestic image: https://cnb.cool/oneclickvirt/ecs/-/packages/docker/ecs
Please ensure Docker is installed on your machine before executing the following commands
Privileged mode + host network
docker run --rm --privileged --network host docker.cnb.cool/oneclickvirt/ecs:latest -menu=false -l en
Unprivileged mode + non-host network
docker run --rm docker.cnb.cool/oneclickvirt/ecs:latest -menu=false -l en
Expand to view compilation instructions
- Clone the public branch of the repository (without private dependencies)
git clone -b public https://github.com/oneclickvirt/ecs.git
cd ecs
- Install Go environment (skip if already installed)
# Download and install Go
wget https://go.dev/dl/go1.23.4.linux-amd64.tar.gz
rm -rf /usr/local/go && tar -C /usr/local -xzf go1.23.4.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
- Compile
go build -o goecs
- Run test
./goecs -menu=false -l en
Supported compilation parameters:
- GOOS: supports linux, windows, darwin, freebsd, openbsd
- GOARCH: supports amd64, arm, arm64, 386, mips, mipsle, s390x, riscv64
Cross-platform compilation examples:
# Compile Windows version
GOOS=windows GOARCH=amd64 go build -o goecs.exe
# Compile MacOS version
GOOS=darwin GOARCH=amd64 go build -o goecs_darwin
Comparison | sysbench | geekbench |
---|---|---|
Application scope | Lightweight, runs on almost any server | Heavyweight, won't run on small machines |
Test requirements | No network needed, no special hardware requirements | Requires internet, IPv4 environment, minimum 1GB memory |
Open source status | Based on LUA, open source, can compile for various architectures | Official binaries are closed source, cannot compile your own version |
Test stability | Core test components unchanged for 10+ years | Each major version updates test items, making scores hard to compare between versions (each version benchmarks against current best CPUs) |
Test content | Only tests computing performance | Covers multiple performance aspects with weighted scores, though some tests aren't commonly used |
Suitable scenarios | Good for quick tests, focuses on computing performance | Good for comprehensive testing |
Note that goecs
allows you to specify CPU test method via parameters. The default is chosen for faster testing across more systems.
A: Because network-related projects currently trend toward Golang, with many components maintained by open source communities. Many Rust components would require building from scratch, I'm too lazy I don't have that technical capability.
A: Because there were too many varied environment issues. Pre-compiled binary files are easier for solving environment problems (better generalization).
A: Each test project has its own maintenance repository. Click through to view the repository description.
A: Press Ctrl+C to terminate the program. After termination, a goecs.txt file and share link will still be generated in the current directory containing information tested so far.
A: Execute the installation command manually. If you can't install it, simply download the appropriate architecture package from releases, extract it, and run the file if you have execution permissions. Alternatively, use Docker if you can.
Thank ipinfo.io ip.sb cheervision.co scamalytics.com abuseipdb.com virustotal.com ip2location.com ip-api.com ipregistry.co ipdata.co ipgeolocation.io ipwhois.io ipapi.com ipapi.is ipqualityscore.com bigdatacloud.com and others for providing APIs for testing, and thanks to various websites on the Internet for providing query resources.
Thank

provided free hosting support for this open source project's shared test results storage
Thanks also to the following platforms for editorial and testing support