A Python package for negatively optimizing your Windows/Linux system performance
Project description
nwtools 🐌
一个用于"负优化"你的Windows/Linux系统性能的Python包。这个包主要用于演示、测试和教育目的,展示如何降低系统性能的各种方法。
警告:请谨慎使用!仅在测试环境或虚拟机中使用!
功能特性
- CPU负优化:创建大量计算密集型任务消耗CPU资源
- 内存负优化:分配大量内存但不释放
- 磁盘负优化:频繁读写磁盘,创建大量临时文件
- 网络负优化:发送大量网络请求,消耗带宽
- 进程负优化:创建大量子进程
- UI干扰:干扰用户界面(如闪烁窗口、移动鼠标等)
- 安全模式:所有操作都是可逆的,有安全限制
安装
pip install nwtools
或者从源代码安装:
git clone https://github.com/yourusername/nwtools.git
cd nwtools
pip install -e .
使用方法
命令行界面
# 显示帮助信息
nwtools --help
# 运行所有负优化功能(默认强度)
nwtools run
# 运行特定强度的负优化
nwtools run --intensity high
# 只运行CPU负优化
nwtools cpu --duration 30
# 运行内存负优化
nwtools memory --size 1024
# 运行磁盘负优化
nwtools disk --files 100
# 运行网络负优化
nwtools network --requests 50
# 运行进程负优化
nwtools process --count 20
# 停止所有负优化任务
nwtools stop
# 显示系统状态
nwtools status
Python API
from nwtools import NegativeOptimizer
# 创建优化器实例
optimizer = NegativeOptimizer()
# 运行CPU负优化
optimizer.optimize_cpu(duration=30, intensity="medium")
# 运行内存负优化
optimizer.optimize_memory(size_mb=512, duration=60)
# 运行磁盘负优化
optimizer.optimize_disk(num_files=50, file_size_kb=1024)
# 运行网络负优化
optimizer.optimize_network(num_requests=100, target_url="http://example.com")
# 运行进程负优化
optimizer.optimize_process(num_processes=10)
# 停止所有优化
optimizer.stop_all()
# 获取系统状态
status = optimizer.get_system_status()
print(f"CPU使用率: {status['cpu_percent']}%")
print(f"内存使用率: {status['memory_percent']}%")
TUI界面(稳定跨平台)
nwtools提供了三种TUI界面,推荐使用稳定TUI:
🎯 1. 稳定TUI界面(推荐 - 跨平台稳定)
# 运行稳定TUI界面
nwtools-stable-tui
特点:
- ✅ 纯Python实现,无任何外部依赖
- ✅ 跨平台支持(Windows/Linux/Termux/macOS)
- ✅ 不会崩溃,稳定可靠
- ✅ 数字选择菜单,操作简单
- ✅ 支持所有nwtools功能
2. 基于dialog的TUI界面(仅Linux)
# 安装dialog工具
pkg install dialog # Termux
sudo apt install dialog # Ubuntu/Debian
# 运行TUI界面
nwtools-tui
特点:
- 使用dialog工具创建图形对话框
- 支持真正的鼠标点击
- ❌ Windows不支持
3. 简单TUI界面(实验性)
# 运行简单TUI界面
nwtools-simple-tui
特点:
- 使用curses库
- ❌ 在Termux上可能不稳定
- ❌ 在Windows上需要额外配置
推荐使用稳定TUI,因为它:
- 在所有平台上都能工作
- 不会崩溃
- 无需安装额外工具
- 操作简单直观
安全特性
- 资源限制:默认有资源使用上限
- 超时保护:所有操作都有超时限制
- 可逆操作:所有创建的文件和进程都可以清理
- 确认提示:危险操作前需要确认
- 强度控制:可以控制负优化的强度
配置
创建配置文件 ~/.nwtools/config.yaml:
defaults:
intensity: medium
duration: 60
auto_cleanup: true
limits:
max_cpu_percent: 80
max_memory_mb: 2048
max_disk_files: 100
max_processes: 20
safety:
require_confirmation: true
max_total_duration: 300
许可证
MIT License
免责声明
本软件仅供测试、演示和教育目的使用。作者不对使用本软件造成的任何损害负责。请勿在生产环境或重要系统上使用。
使用风险自负!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nwtools-1.0.0.tar.gz.
File metadata
- Download URL: nwtools-1.0.0.tar.gz
- Upload date:
- Size: 25.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d8e81264aeaf1eda82b3f10d169ddcba5559cdbd9108262cd5c26962e8b69884
|
|
| MD5 |
47af35db008b94596cc6956f4670e3cb
|
|
| BLAKE2b-256 |
69d54b33536773b05576ea9a7d0a9ecb234f35ffc46a2545a8390c5c386576d5
|
File details
Details for the file nwtools-1.0.0-py3-none-any.whl.
File metadata
- Download URL: nwtools-1.0.0-py3-none-any.whl
- Upload date:
- Size: 28.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
89b582176959d398bb92fe740e697dc4f912a8aacf661c5d456e484a41cc99de
|
|
| MD5 |
3214ba5129a8e4f9d493d69f47035799
|
|
| BLAKE2b-256 |
a17bfcbf155a0f7dfbb537ccf08a45f42ec997605fa19476e519e8b507c4fd6a
|