Skip to main content

一个用于负优化系统性能的Python包 (仅供测试使用)

Project description

nwtools

一个用于"负优化"系统性能的Python包。这个包主要用于演示、测试和教育目的,展示如何降低系统性能的各种方法。

⚠️ 警告:请谨慎使用!仅在测试环境或虚拟机中使用!

安装

pip install nwtools

功能特性

功能 说明
CPU负优化 创建大量计算密集型任务消耗CPU资源
内存负优化 分配大量内存但不释放
磁盘负优化 频繁读写磁盘,创建大量临时文件
网络负优化 发送大量网络请求,消耗带宽
进程负优化 创建大量子进程
UI干扰 干扰用户界面(需要pyautogui)
安全模式 所有操作都是可逆的,有安全限制

跨平台支持

  • Windows - 完全支持
  • Linux - 完全支持,可选dialog TUI
  • macOS - 基本支持

使用方法

命令行界面 (CLI)

# 显示帮助信息
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界面

TUI类型 命令 特点
稳定TUI(推荐) nwtools-stable-tui 纯Python实现,跨平台稳定,无需外部依赖
DIALOG TUI(仅Linux) nwtools-tui 使用dialog工具,支持鼠标点击
简单TUI nwtools-simple-tui 使用curses库(Linux/Mac)

💡 推荐:使用稳定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

依赖

  • Python >= 3.6
  • psutil >= 5.8.0
  • colorama >= 0.4.4
  • requests >= 2.25.0
  • pyyaml >= 5.4.0

可选依赖:

  • pyautogui >= 0.9.52 (用于UI干扰功能)
  • dialog (Linux系统,用于dialog TUI)

更新日志

v3.0.1 (2026-04-13)

  • 🔧 修复Windows兼容性问题
  • 🔧 修复psutil.disk_usage('/')在Windows上的错误
  • 🔧 修复进程创建在Windows上的参数问题
  • ✅ 添加跨平台TUI支持
  • ✅ 改进错误处理和依赖检查

v3.0.0 (2026-01-09)

  • 🎉 初始版本发布

免责声明

⚠️ 重要提示

  • 本软件仅供测试、演示和教育目的使用
  • 作者不对使用本软件造成的任何损害负责
  • 请勿在生产环境或重要系统上使用
  • 使用风险自负!

许可证

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nwtools-3.0.1.tar.gz (21.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nwtools-3.0.1-py3-none-any.whl (25.2 kB view details)

Uploaded Python 3

File details

Details for the file nwtools-3.0.1.tar.gz.

File metadata

  • Download URL: nwtools-3.0.1.tar.gz
  • Upload date:
  • Size: 21.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for nwtools-3.0.1.tar.gz
Algorithm Hash digest
SHA256 8dfb4ccb92d3b910ab5f1bd8c7b5acd6fa1c5fed878405ebe4d2a26787c26d13
MD5 b8f81ab78d647a5fcab85f2c682e74b5
BLAKE2b-256 37adfec508b9c3db0e2b1924eecb9cc3e85536af55201600212220cd27840982

See more details on using hashes here.

File details

Details for the file nwtools-3.0.1-py3-none-any.whl.

File metadata

  • Download URL: nwtools-3.0.1-py3-none-any.whl
  • Upload date:
  • Size: 25.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for nwtools-3.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 76c128ea77323b2f9f85e0b3d1a0617b81daf99f0ee4a4bab452c74130729e67
MD5 7d87ca820d4c32b5d503d07ec6a1e6c9
BLAKE2b-256 53c1c815cf2f85a83de7de2c54f7445d5f5f4c8c80c27886f98f63818d08bf09

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page