9. JIT编译优化
9.1 Numba加速数值计算
from numba import jit
import numpy as np
import time# 标准Python函数
def monte_carlo_pi(n_samples):count = 0for _ in range(n_samples):x, y = np.random.random(), np.random.random()if x**2 + y**2 < 1:count += 1return 4 * count / n_samples# Numba加速版本
@jit(nopython=True)
def monte_carlo_pi_numba(n_samples):count = 0for _ in range(n_samples):x, y = np.random.random(), np.random.random()if x**2 + y**2 < 1:count += 1return 4 * count / n_samples# 性能对比
def compare_jit():n = 10_000_000start = time.time()pi = monte_carlo_pi(n)py_time = time.time() - startstart = time.t