第1章:测试环境搭建——硬件环境选型、软件依赖安装

大家好,我是你们的老朋友。今天咱们聊聊算法性能批量验证的第一步——环境搭建。

说实话,很多同学一上来就急着写代码、跑测试,结果环境没配好,折腾半天全白费。我当年就吃过这个亏。记得有一次,我在一台内存只有8G的笔记本上跑批量验证,数据量稍微大一点,直接卡死。从那以后,我养成了一个习惯:先搭环境,再写代码。

1.1 硬件环境选型

硬件选型这事儿,说白了就是看你的算法要跑多大规模的数据。

我个人习惯把硬件需求分成三个档次:

档次 适用场景 推荐配置
入门级 小规模验证(数据量 < 1GB) 4核CPU、8GB内存、256GB SSD
进阶级 中等规模验证(数据量 1GB~10GB) 8核CPU、16GB内存、512GB SSD
专业级 大规模验证(数据量 > 10GB) 16核CPU、32GB+内存、1TB NVMe SSD

你想想看,如果你的算法要处理上千万条记录,内存不够的话,光是磁盘I/O就能把你拖死。我在项目中遇到过一位同事,用8GB内存跑2000万条数据的排序验证,结果跑了整整一个下午还没跑完。后来换了台32GB内存的机器,半小时就搞定了。

我的小建议:如果你预算有限,优先升级内存和SSD。CPU其实没那么关键,大部分算法性能瓶颈都在内存和磁盘读写上。

1.2 软件依赖安装

硬件搞定了,接下来就是软件环境。嗯,这里要注意,千万别一股脑全装最新版。我见过太多人因为版本不兼容,折腾一整天。

1.2.1 Python 安装

Python 版本我建议用 3.8 或 3.9。为什么?因为很多科学计算库对 3.10 以上的支持还不够稳定。我曾经在 3.11 上跑 pandas,结果有个底层依赖报错,查了半天才发现是版本问题。

安装步骤很简单:

  1. 去 python.org 下载对应版本
  2. 安装时记得勾选「Add Python to PATH」
  3. 打开终端,输入 python --version 验证
避坑指南:我曾经在 Windows 上同时装了 Python 3.7 和 3.9,结果 pip 总是装到旧版本上。后来我学乖了,用 py -3.9 -m pip install 指定版本。

1.2.2 pytest 安装

pytest 是我们做批量验证的核心工具。它比 unittest 好用太多了,尤其是参数化测试和 fixture 功能,简直是批量验证的神器。

pip install pytest

装完之后,你可以跑一下 pytest --version 确认安装成功。我建议装 7.x 版本,功能最全,社区也最活跃。

1.2.3 pandas 安装

pandas 是处理测试数据的利器。批量验证中,我们经常需要读取 CSV、Excel 等格式的数据,然后做对比分析。

pip install pandas

这里有个小坑:pandas 依赖 numpy,而 numpy 在某些 CPU 上需要编译。如果你遇到安装失败,可以试试预编译的 wheel 包:

pip install pandas --only-binary=:all:

1.3 虚拟环境配置

虚拟环境这事儿,我建议每个项目都配一个。为什么?因为不同项目可能依赖不同版本的库,混在一起迟早出问题。

我个人习惯用 venv,它是 Python 自带的,不需要额外安装。

1.3.1 创建虚拟环境

python -m venv algo_bench_env

这条命令会在当前目录下创建一个叫 algo_bench_env 的文件夹,里面就是独立的 Python 环境。

1.3.2 激活虚拟环境

Windows 下:

algo_bench_env\Scripts\activate

Linux/Mac 下:

source algo_bench_env/bin/activate

激活后,终端前面会出现 (algo_bench_env) 的标识,说明你已经在虚拟环境里了。

我的习惯:每次打开终端,第一件事就是激活虚拟环境。我还把激活命令写成了一个别名,省得每次敲一长串。

1.3.3 安装依赖到虚拟环境

激活虚拟环境后,再执行 pip install,所有包都会安装到这个环境里,不会影响系统全局。

pip install pytest pandas

你可以用 pip list 查看当前环境安装了哪些包。我建议把依赖写到一个 requirements.txt 文件里,方便别人复现:

pytest==7.4.0
pandas==2.0.3

然后别人只需要执行 pip install -r requirements.txt 就能一键安装所有依赖。

1.4 知识体系总览

下面这张图,是我画的环境搭建的整体流程。你一看就明白了:

算法性能批量验证——环境搭建知识体系 硬件环境选型 软件依赖安装 虚拟环境配置 CPU 内存 SSD Python pytest pandas venv创建 激活/退出 依赖管理 先选硬件 → 再装软件 → 最后配虚拟环境 三步走,环境搭建不再愁

1.5 验证环境是否搭建成功

环境搭好了,怎么知道对不对?我一般会写一个简单的测试脚本:

# test_env.py
import pytest
import pandas as pd

def test_pandas_works():
    df = pd.DataFrame({'a': [1, 2, 3], 'b': [4, 5, 6]})
    assert df.shape == (3, 2)
    print("pandas 环境正常!")

def test_pytest_works():
    assert 1 + 1 == 2
    print("pytest 环境正常!")

if __name__ == "__main__":
    pytest.main(["-v", "test_env.py"])

跑一下 python test_env.py,如果两个测试都通过,说明你的环境已经搭建成功了。

重要提醒:环境搭建是批量验证的基石。别嫌麻烦,花半小时把环境配好,后面能省下好几个小时。

好了,环境搭建就聊到这儿。记住我说的:先搭环境,再写代码。下一章咱们开始写第一个批量验证脚本,到时候你就知道环境搭好了有多爽了。


可可精品资料库