彻底搞懂 functools.lru_cache:原理、用法、坑点与工程化实践
关键词:LRU、缓存、性能优化、纯函数、可哈希、装饰器顺序、TTL、异步缓存、工程实践 为什么要关心 lru_cache? 当你的函数计算昂贵、参数重复且没有副作用时,缓存返回值会显著降低延迟、减少 CPU 消耗。functools.lru_cache 是 Python 标准库自带的“轻量级、进程内...
来自 MMao 贡献者的精选知识。
关键词:LRU、缓存、性能优化、纯函数、可哈希、装饰器顺序、TTL、异步缓存、工程实践 为什么要关心 lru_cache? 当你的函数计算昂贵、参数重复且没有副作用时,缓存返回值会显著降低延迟、减少 CPU 消耗。functools.lru_cache 是 Python 标准库自带的“轻量级、进程内...
一次搞清楚三套工具的定位、优缺点、典型工作流,并附上 uv 详细操作命令。 1. 一句话定位 uv:Rust 实现的“全家桶”——包管理 + 虚拟环境 + 解析锁定 + 运行命令 + Python 版本管理,全都要,还巨快。 poetry:偏“项目管理器”,围绕 pyproject.toml 做依赖...
Docker Desktop 是 Windows 用户开发和管理容器的强大工具,但默认设置下仅允许本地访问 API 端口 2375。 1. 启用 IP Helper 服务 打开服务管理器,找到 IP Helper 服务,将其启动类型设置为自动并启动服务。 2. 配置 Docker 开放 2375 端...
Python 3.13.5 Pyarmor 9.1.8 (trial) 一、背景与目标 在向多家企业交付 FastAPI 服务时,我们既要保护源码避免泄露,又要灵活控制授权(机器绑定 + 到期)。PyArmor 8.5+ 的 外置许可证(Runtime Key) 机制可以让我们 一次混淆代码、多次下...
简介 在实际应用中,经常会碰到在web请求时,因为网络的不稳定,会有请求超时的问题,这时候,一般都是自己去实现重试请求的逻辑,直到得到响应或者超时。虽然这样的逻辑并不复杂,但是代码写起来却不那么优雅,不那么pythonic。 tenacity是一个重试库,使用python语言编写,它能够让我们在任务...
掌握复杂场景下的语言模型Prompt工程 策略:编写清晰、具体的指令 为了获得最佳的回答,用户需要向 GLM 提供清晰、具体的指令。GLM 越能明确您的需求,提供的回答质量越高。 技巧:定义 System Prompt 用于设定AI助手行为模式的工具,包括角色设定、语言风格、任务模式和针对特定问题的...
1. 修改ssh配置文件 vim /etc/ssh/sshd_config 找到或者加上一行 Port {num} 比如 Port 23456 2. 重启服务 service sshd restart 或者 systemctl restart sshd.service...
1. 线程池简介 在现代编程中,尤其是进行高性能和高并发编程时,线程池是一种非常重要的技术。线程池可以有效地管理和复用线程资源,提高程序的执行效率和响应速度。接下来,我们将详细介绍线程与进程的区别,什么是线程池,以及线程池的优势。 1.1 线程与进程的区别 在计算机科学中,线程和进程是两个基本的并发...
HTTP状态码分类 HTTP状态码列表 ------------ Switching Protocols 200 已接受。已经接受请求,但未处理完成 No Content 206 多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择Found 304...
Ubuntu 20.04 Rabbitmq 3.8.3 Erlang 22.27 1.安装erlang 由于rabbitMq需要erlang语言的支持,在安装rabbitMq之前需要安装erlang,执行命令: sudo apt-get install erlang-nox # 安装erlang e...
utf8 和 utf8mb4 都是 MySQL 中的字符集(Character Set),用于存储和处理文本数据。但它们之间有一些重要的区别,尤其是在支持字符范围和编码方式上。 1. 编码范围的区别 utf8: 在 MySQL 中,utf8 实际上是一个不完整的 UTF-8 编码实现。它最多只能表示...
defaultdict 是 Python 的 collections 模块中的一个工具,它是 dict 的子类,但与普通的字典不同,它在访问不存在的键时会自动为该键生成一个默认值,而不是抛出 KeyError。 defaultdict 基本用法 导入和创建 from collections impo...
如果要在 FastAPI 项目中统一地处理模型序列化以自动排除所有 None 值,可以通过自定义响应处理来实现。 这里提供一种方法,通过自定义 FastAPI 的 JSONResponse 来统一排除模型中的 None 值: 方法 步骤 1: 创建一个自定义的 JSON 响应类 创建一个继承自 fa...
如果 tar 打包时间过长,可以采用以下方法将其放在后台运行: 先安装 screen(如果系统中没有安装),在 Ubuntu 系统中可以通过以下命令安装: sudo apt-get install screen 然后启动一个新的 screen 会话: screen -S backup_session...
如何使用 qpdf 工具消除 PDF 文件的权限限制 PDF 文件是一种常见的文档格式,广泛用于电子书、手册、合同等多种场景。为了保护文件的版权或避免内容被非法复制,许多 PDF 文件会设置权限限制,如禁止复制、打印或编辑。这些限制通常通过 PDF 的加密机制实现。qpdf 是一个开源工具,可以用来...
发布日期 Noble Numbat 23.04 2022年4月21日 Hirsute Hippo 20.04 LTS 2019年4月18日 Bionic Beaver 17.04 2016年4月21日 Vivid Vervet 14.04 LTS 2013年4月25日 Precise Pangoli...
在本文中,我们将介绍如何在 Windows 11 上搭建一个 SFTP 服务器,并允许用户同时使用 SFTP 和 SSH 连接。此外,我们将展示如何自定义默认路径。 1 安装 OpenSSH 服务器 1.1 打开“设置”应用 你可以通过按 Win + I 快捷键快速打开“设置”。 1.2 导航到“系...
查看当前网速 nload命令 nload -t 200 -i 1024 -o 128 -U M devices eth0 查看内存占用 htop 按内存使用率排序 htop --sort-key=M_SIZE 分析磁盘使用情况 ncdu 安装 sudo apt-get install ncdu 查看...
智谱Bigmodel目前支持两种自动评测方式:AI裁判员自动评测和基线评测。 其中,AI裁判员自动评测全程无需人工参与,将基于自定义的评测指标,通过AI裁判员模型对模型输出效果进行自动打分。该方式具有高效、和公正性的优势,但评测结果高度依赖人为设定的评分维度和标准。该方法适用于在特定业务场景下进行模...
JSHint 是一个使用 JavaScript 编写的 JavaScript 的代码质量检查工具,主要用来检查代码质量以及找出一些潜在的代码缺陷。 .jshintrc是JSHint的一种配置方式。这种方式允许你每个项目有不同的配置文件,只需要将文件放在项目根目录即可。 官方配置文档https://j...