当前位置: 首页 > news >正文

Python 性能优化:从入门到精通的实用指南

Langchain系列文章目录

01-玩转LangChain:从模型调用到Prompt模板与输出解析的完整指南
02-玩转 LangChain Memory 模块:四种记忆类型详解及应用场景全覆盖
03-全面掌握 LangChain:从核心链条构建到动态任务分配的实战指南
04-玩转 LangChain:从文档加载到高效问答系统构建的全程实战
05-玩转 LangChain:深度评估问答系统的三种高效方法(示例生成、手动评估与LLM辅助评估)
06-从 0 到 1 掌握 LangChain Agents:自定义工具 + LLM 打造智能工作流!

python系列文章目录

01-Python 基础语法入门:从变量到输入输出,零基础也能学会!
02-Python 流程控制终极指南:if-else 和 for-while深度解析
03-Python 列表与元组全攻略:从新手到高手的必备指南
04-Python 字典与集合:从入门到精通的全面解析
05-Python函数入门指南:从定义到应用
06-Python 函数高级特性:从默认参数到闭包的全面解析
07-Python 模块与包:从零到自定义的全面指南
08-Python异常处理:从入门到精通的实用指南
09-Python 文件操作:从零基础到日志记录实战
10-Python面向对象编程入门:从类与对象到方法与属性
11-Python类的方法与属性:从入门到进阶的全面解析
12-Python继承与多态:提升代码复用与灵活性的关键技术
13-掌握Python魔法方法:如何用__add__和__len__自定义类的行为
14-python面向对象编程总结:从基础到进阶的 OOP 核心思想与设计技巧
15-掌握 Python 高级特性:深入理解迭代器与生成器
16-用 Python 装饰器提升效率:日志与权限验证案例
17-再也不怕资源泄漏!Python 上下文管理器,with语句全攻略
18-Python 标准库必备模块:math、random、os、json 全解析
19-Python 性能优化:从入门到精通的实用指南


文章目录

  • Langchain系列文章目录
  • python系列文章目录
  • 前言
  • 一、影响 Python 性能的因素
    • 1.1 时间复杂度
      • 1.1.1 为什么时间复杂度重要?
      • 1.1.2 怎么优化时间复杂度?
    • 1.2 空间复杂度
      • 1.2.1 空间复杂度为啥关键?
      • 1.2.2 怎么优化空间复杂度?
  • 二、Python 性能优化技巧
    • 2.1 避免重复计算
      • 2.1.1 使用缓存机制
      • 2.1.2 预计算和惰性计算
    • 2.2 减少 IO 操作
      • 2.2.1 批量处理数据
      • 2.2.2 使用异步 IO
  • 三、使用 `timeit` 模块测量代码性能
    • 3.1 `timeit` 模块简介
      • 3.1.1 为什么用 `timeit`?
    • 3.2 如何使用 `timeit` 测量代码性能
      • 3.2.1 命令行使用 `timeit`
      • 3.2.2 在代码中使用 `timeit`
  • 四、总结


前言

Hey,你有没有遇到过这样的情况:代码跑得太慢,CPU 风扇狂转,甚至内存直接爆满?在 Python 开发中,性能问题是个绕不过去的坎儿。无论是处理大数据、写爬虫,还是开发 Web 应用,优化性能都能让你的程序更快、更省资源。这篇文章的目标很简单:带你从零开始,搞懂影响 Python 性能的因素,学会几个超实用的优化技巧,还要教你怎么用 timeit 模块测测代码到底有多快。不管你是刚入门的小白,还是有点经验的开发者,这里都有干货等着你!

本文会聊三大块:

  • 影响 Python 性能的“幕后黑手”:时间复杂度和空间复杂度。
  • 优化代码的“锦囊妙计”:避免重复计算、减少 IO 操作。
  • 性能检测的“秘密武器”:timeit 模块。

准备好了吗?咱们这就开始!


一、影响 Python 性能的因素

性能优化得先知道问题出在哪儿,对吧?Python 虽然简单好用,但有些地方不注意就会拖慢速度。这部分咱们聊聊两个核心因素:时间复杂度和空间复杂度。

1.1 时间复杂度

时间复杂度听起来有点学术,其实就是“你的代码跑起来需要多久”。它跟数据量大小直接挂钩,数据越多,影响越明显。

1.1.1 为什么时间复杂度重要?

简单说,时间复杂度决定了一个算法的效率。比如你在列表里找个数,数据量小还好,可要是列表里有几百万条数据,效率低的算法能让你等到怀疑人生。

  • 举个例子:用列表和集合找数字的区别。
    # 列表找数字,时间复杂度 O(n)
    my_list = [1, 2, 3, 4, 5]
    if 3 in my_list:  # 得一个个检查print("找到啦!")# 集合找数字,时间复杂度 O(1)
    my_set = {1, 2, 3, 4, 5}
    if 3 in my_set:  # 直接定位,超快print("找到啦!")
    
  • 关键点:列表是线性查找,时间复杂度是 O(n);集合用哈希表,平均时间复杂度是 O(1)。数据量越大,差距越明显。

1.1.2 怎么优化时间复杂度?

  • 建议:需要频繁查找时,用集合(set)或字典(dict)代替列表。
  • 场景:比如去重、查重这种操作,集合简直是神器。

1.2 空间复杂度

时间跑得快还不够,内存用得少也很重要。空间复杂度就是“你的代码占了多少内存”。

1.2.1 空间复杂度为啥关键?

Python 自动管理内存,但用错了数据结构,内存照样吃紧。比如存一堆数字,用列表和生成器差别可不小。

  • 举个例子
    # 列表存一百万个数,全都加载到内存
    my_list = [i for i in range(1000000)]  # 内存占用大# 生成器,边用边生成,内存几乎不占
    my_gen = (i for i in range(1000000))  # 超省空间
    
  • 关键点:列表把所有数据都存下来,空间复杂度 O(n);生成器只存当前值,空间复杂度接近 O(1)。

1.2.2 怎么优化空间复杂度?

  • 建议:大数据场景下,优先用生成器或迭代器。
  • 场景:比如读取大文件、处理流数据,用生成器能省下不少内存。

二、Python 性能优化技巧

知道了影响性能的因素,咱们得动手优化代码。这部分分享两个超实用的技巧:避免重复计算和减少 IO 操作。

2.1 避免重复计算

重复计算就像你炒菜时把同一个葱花切了十遍,太浪费时间!Python 里有些操作可以提前做好,省下不少力气。

2.1.1 使用缓存机制

缓存就是把算过的结果存起来,下次直接拿来用。Python 自带一个神器:functools.lru_cache

  • 代码示例:优化递归计算斐波那契数列。
    from functools import lru_cache@lru_cache(maxsize=128)  # 缓存最多 128 个结果
    def fibonacci(n):if n < 2:return nreturn fibonacci(n-1) + fibonacci(n-2)print(fibonacci(50))  # 超快!
    
  • 关键点:没缓存时,递归会重复算好多次;加了缓存,直接查表,时间从“天文数字”变成“秒级”。
  • 场景:递归函数、频繁调用的计算任务。

2.1.2 预计算和惰性计算

  • 预计算:提前把结果算好,比如程序启动时把常用数据准备好。
  • 惰性计算:用到时再算,用生成器就是典型例子。
    def lazy_range(n):i = 0while i < n:yield i  # 每次只生成一个数i += 1for num in lazy_range(1000):  # 按需取值print(num)
    
  • 建议:不常用的数据用惰性计算,常用的小数据用预计算。

2.2 减少 IO 操作

IO 操作(比如读文件、发网络请求)特别慢,减少它的次数能让代码飞起来。

2.2.1 批量处理数据

别一行行读文件,一次性读完再处理效率更高。

  • 代码示例
    # 逐行读,IO 次数多
    def process(line):print(line)with open('file.txt', 'r') as f:for line in f:  # 每次都调用 IOprocess(line)# 一次性读,IO 次数少
    with open('file.txt', 'r') as f:content = f.read()  # 一次读完lines = content.splitlines()for line in lines:process(line)
    
  • 关键点:批量操作把多次 IO 变成一次,速度提升明显。
  • 场景:读写大文件、数据库操作。

2.2.2 使用异步 IO

网络请求多的时候,等一个完再发下一个太慢,用异步 IO 可以同时处理。

  • 代码示例:用 asyncio 抓网页。
    import asyncio
    import aiohttpasync def fetch_url(url):async with aiohttp.ClientSession() as session:async with session.get(url) as response:return await response.text()async def main():urls = ['http://example.com', 'http://example.org']tasks = [fetch_url(url) for url in urls]results = await asyncio.gather(*tasks)print(results[0][:100])  # 只打印前 100 个字符asyncio.run(main())
    
  • 关键点:异步 IO 让多个请求并行,特别适合爬虫或高并发任务。
  • 场景:网络密集型任务。

三、使用 timeit 模块测量代码性能

优化完代码,怎么知道效果咋样?用 timeit 模块测一测就知道了!

3.1 timeit 模块简介

timeit 是 Python 自带的小工具,专门测小段代码的运行时间。它会重复跑代码取平均值,结果很靠谱。

3.1.1 为什么用 timeit

手动用 time.time() 测时间不准,因为系统负载会干扰。timeit 跑很多次,数据更稳定。

3.2 如何使用 timeit 测量代码性能

3.2.1 命令行使用 timeit

直接在终端跑,适合快速测试。

  • 示例:测列表推导式的速度。
    python -m timeit "sum([i for i in range(1000)])"
    
  • 输出:类似“1000 loops, best of 5: 123 usec per loop”,表示平均每次多久。
  • 建议:调试小代码时用这个,简单又快。

3.2.2 在代码中使用 timeit

想在脚本里测?也很简单。

  • 代码示例
    import timeitdef my_function():return sum([i for i in range(1000)])# 跑 100 次,测总时间
    execution_time = timeit.timeit(my_function, number=100)
    print(f"总耗时: {execution_time} 秒")
    
  • 关键点number 是运行次数,自己调,别设太大跑不动。
  • 场景:对比不同实现方案的性能。

四、总结

本文聊了 Python 性能优化的三大块:

  • 影响因素:时间复杂度管速度,空间复杂度管内存,选对数据结构很关键。
  • 优化技巧:避免重复计算用缓存和生成器,减少 IO 用批量和异步。
  • 测量工具timeit 帮你量化优化效果。

希望你看完能有所收获,赶紧把这些技巧用到自己的代码里吧!有什么问题,随时问我哦~


相关文章:

Python 性能优化:从入门到精通的实用指南

Langchain系列文章目录 01-玩转LangChain&#xff1a;从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块&#xff1a;四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain&#xff1a;从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…...

Vue23Web 基礎性拉滿的面試題(2025版)還沒更新完...

Vue2&3 基礎性1. 關於Vue2和Vue3生命週期的差別2. Vue2&3組件之間傳參不同點Vue2 傳遞與接收Vue3 傳遞與接收 (使用script setup語法糖)Vue3 傳遞與接收 (不使用script setup語法糖) 3. Vue2&3 keep-alive 組件Vue2 keep-aliveVue3 keep-alive 進階性爲什麽POST請求…...

Python基于Django的医用耗材网上申领系统【附源码、文档说明】

博主介绍&#xff1a;✌Java老徐、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&…...

STM32使用无源蜂鸣器

1.1 介绍&#xff1a; 有源蜂鸣器&#xff1a;内部自带振荡源&#xff0c;将正负极接上直流电压即可持续发声&#xff0c;频率固定 无源蜂鸣器&#xff1a;内部不带振荡源&#xff0c;需要控制器提供振荡脉冲才可发声&#xff0c;调整提供振荡脉冲的频率&#xff0c;可发出不同…...

9.1go结构体

Go不是完全面向对象的&#xff0c;没有类的概念&#xff0c;所以结构体应该承担了更多的责任。 结构体定义 使用 type 和 struct 关键字定义&#xff1a; type Person struct { Name string Age int } 字段可以是任意类型&#xff0c;包括其他结构体或指针。 字段名以大写…...

Ubuntu20.04本地配置IsaacLab 4.2.0的G1训练环境(一)

Ubuntu20.04本地配置IsaacLab的G1训练环境&#xff08;一&#xff09; 配置Omniverse环境配置IsaacSim配置IsaacLab 写在前面&#xff0c;如果Ubuntu剩余空间低于60G&#xff0c;则空间不足&#xff0c;除非你不需要资产包。但资产包中却包含了G1模型、Go2模型等机器人模型和代…...

全星FMEA软件:汽车电子行业研发管理高效之选

全星FMEA软件&#xff1a;汽车电子行业研发管理高效之选 在汽车电子行业&#xff0c;FMEA&#xff08;失效模式与影响分析&#xff09;是确保产品质量和安全的关键工具。然而&#xff0c;传统的FMEA分析过程往往繁琐复杂&#xff0c;耗费大量时间和精力。 全星FMEA软件应运而生…...

AGI 之 【Dify】 之 使用 Docker 在 Windows 端本地部署 Dify 大语言模型(LLM)应用开发平台

AGI 之 【Dify】 之 使用 Docker 在 Windows 端本地部署 Dify 大语言模型&#xff08;LLM&#xff09;应用开发平台 目录 AGI 之 【Dify】 之 使用 Docker 在 Windows 端本地部署 Dify 大语言模型&#xff08;LLM&#xff09;应用开发平台 一、简单介绍 二、Docker 下载安…...

OpenCV计算摄影学(18)平滑图像中的纹理区域同时保留边缘信息函数textureFlattening()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 cv::textureFlattening 是 OpenCV 中用于图像处理的一个函数&#xff0c;旨在平滑图像中的纹理区域&#xff0c;同时保留边缘信息。该技术特别适…...

RLock类详细介绍、应用场景和示例代码

概述 org.redisson.api.RLock 是 Redisson 提供的 分布式可重入锁&#xff08;类似 ReentrantLock&#xff09;&#xff0c;基于 Redis 实现&#xff0c;常用于 分布式环境 下的 并发控制。 1. RLock 详解 &#x1f539; 特点 基于 Redis 实现&#xff0c;支持 集群环境。可…...

【HeadFirst系列之HeadFirst设计模式】第16天之生成器模式(Builder Pattern):让对象构建更优雅!

&#x1f680; 生成器模式&#xff08;Builder Pattern&#xff09;&#xff1a;让对象构建更优雅&#xff01; “遇到复杂对象构建&#xff1f;试试生成器模式&#xff01;” 在日常开发中&#xff0c;我们经常会遇到 创建对象属性过多、构造方法过长、可选参数混乱 的问题。这…...

Browser Use+DeepSeek的使用教程

browser-use webui 主要功能 提供了全新的网页界面&#xff0c;简单好用&#xff0c;方便操作。 支持更多大语言模型&#xff0c;比如 Gemini、OpenAI、Azure 等&#xff0c;还有最近爆火的国产大模型 DeepSeek&#xff0c;未来还会加更多。 支持用自己的浏览器&#xff0c;不用…...

“此电脑”中删除WPS云盘方法(百度网盘通用)

&#x1f4e3;此方法适用于卸载WPS云盘后&#xff0c;WPS云盘图标依然在此电脑中显示的问题。 原理&#xff1a;通过注册来进行删除 步骤&#xff1a; WIN键R,打开运行窗口&#xff0c;输入regedit命令&#xff0c;来打开【注册表编辑器】&#xff1b; 从左侧&#xff0c;依…...

1. 树莓派上配置机器人环境(具身智能机器人套件)

1. 安装树莓派系统 镜像下载地址&#xff08;windows/Mac/Ubuntu)&#xff0c;安装Pi5. 2. 环境配置&#xff08;登录Pi系统&#xff09; 2.1 启用 SSH From the Preferences menu, launch Raspberry Pi Configuration. Navigate to the Interfaces tab. Select Enable…...

正则表达式(2)匹配规则

正则表达式的匹配规则定义了如何识别字符串中的特定模式。这些规则包括字符类匹配、元字符匹配、数量词、字符转义和分组。 字符类匹配 字符类匹配允许你指定一个字符集合&#xff0c;并匹配该集合中的任意单个字符。这是通过方括号 [] 来实现的。 简单字符类&#xff1a;[abc…...

Golang实践录:go发布版本信息收集

go发布版本信息收集。 背景 本文从官方、网络资料收罗有关go的发布历史概况。主要目的是能快速了解golang不同版本的变更。鉴于官方资料为英文&#xff0c;为方便阅读&#xff0c;使用工具翻译成中文&#xff0c;重要特性参考其它资料补充/修改。由于发布版本内容较多&#xf…...

go:windows环境下安装Go语言

1.下载 打开Go语言中文网下载页面&#xff1a; https://studygolang.com/dl 按照对应平台选择下载&#xff1a; https://studygolang.com/dl/golang/go1.19.2.windows-amd64.msi。 2.安装 双击下载好的文件 记下安装路径&#xff0c;删除末尾的反斜杠&#xff1a; C:\Program…...

遵义市招生管理信息系统的开发与实现

近年来&#xff0c;随着信息技术的发展&#xff0c;各类管理系统在教育领域得到广泛应用。本文将介绍如何开发一个基于Web的招生管理信息系统&#xff0c;以提高遵义市招生工作的效率和透明度。 系统架构设计 本系统采用典型的三层架构&#xff0c;包括表示层、业务逻辑层和数…...

Java 大视界 -- 区块链赋能 Java 大数据:数据可信与价值流转(84)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…...

Pytest自动化框架

目录 Pytest简单介绍 第一章&#xff1a;Pytest console命令 1.pytest -v 参数 -h 参数 其他一些参数&#xff1a;仅供参考 第二章. mark标记 pytest.mark.skip pytest.mark.skipif pytest.mark.xfail ​编辑 pytest.mark.patametrize 单个参数 多个参数 直接…...

算法之 前缀和

文章目录 前缀和基础3427.变长子数组求和 前缀和与哈希表1524.和为奇数的子数组数目 距离和1685.有序数组中绝对值之和 前缀异或和1177.构建回文串检测 其他一维前缀和1310.子数组异或查询 二维前缀和1314.矩阵区域和 前缀和&#xff0c;就是定义pre[i] 为nums的前i个元素的和值…...

【Windows下Gitbook快速入门使用】

Windows下Gitbook快速入门使用 1 工具安装1.1 Node.js下载安装1.1 环境变量1.2 npm配置1.3 安装gitbook 2 gitbook使用2.1 gitbook 无法执行2.2 gitbook常用命令 Gitbook是一个软件&#xff0c;使用Git和Markdown来编排书本&#xff1b; GitBook helps you pushlish beautiful …...

python网络爬虫开发实战之基本库使用

目录 第二章 基本库的使用 2.1 urllib的使用 1 发送请求 2 处理异常 3 解析链接 4 分析Robots协议 2.2 requests的使用 1 准备工作 2 实例引入 3 GET请求 4 POST请求 5 响应 6 高级用法 2.3 正则表达式 1 实例引入 2 match 3 search 4 findall 5 sub 6 com…...

【hello git】git rebase、git merge、git stash、git cherry-pick

目录 一、git merge&#xff1a;保留了原有分支的提交结构 二、git rebase&#xff1a;提交分支更加整洁 三、git stash 四、git cherry-pick 共同点&#xff1a;将 一个分支的提交 合并到 到另一个上分支上去 一、git merge&#xff1a;保留了原有分支的提交结构 现有一个模型…...

deepseek、腾讯元宝deepseek R1、百度deepseekR1关系

分析与结论 区别与联系 技术基础与定制方向&#xff1a; DeepSeek官网R1版本&#xff1a;作为基础版本&#xff0c;通常保留通用性设计&#xff0c;适用于广泛的AI应用场景&#xff08;如自然语言处理、数据分析等&#xff09;。其优势在于技术原生性和官方直接支持。腾讯元宝…...

DeepSeek + 沉浸式翻译 打造智能翻译助手

本文详细介绍如何使用 DeepSeek API 沉浸式翻译插件打造个性化翻译助手。 一、DeepSeek API 配置 基础配置 API 基础地址&#xff1a;https://api.deepseek.com需要申请 API Key支持与 OpenAI SDK 兼容的调用方式 可用模型 deepseek-chat&#xff1a;已升级为 DeepSeek-V3&am…...

iOS 聊天 IM 消息收发管理工具

iOS 聊天 IM 消息收发管理工具 连续疯狂加班告一段落&#xff0c;趁着离职前夕的空闲时间&#xff0c;整理一下重构相关的文档。之前写过两篇文章 iOS 客户端 IM 以及列表 UI 框架 、iOS 客户端 IM 消息卡片插件化&#xff0c;突然发现时间过的真的很快&#xff0c;这都已经是…...

从零开始学习Slam--数学概念

正交矩阵 矩阵的转置等于它的逆矩阵&#xff0c;这样的矩阵称之为正交矩阵 即&#xff1a; Q T Q I Q^T Q I QTQI&#xff0c; 这样的矩阵列向量都是单位向量且两两正交。 旋转矩阵属于特殊的正交群&#xff0c;即SO(n)&#xff0c;这里n通常是3&#xff0c;所以SO(3)就是…...

3.使用ElementUI搭建侧边栏及顶部栏

1. 安装ElementUI ElementUI是基于 Vue 2.0 的桌面端组件库。使用之前&#xff0c;需要在项目文件夹中安装ElementUI&#xff0c;在终端中输入以下命令&#xff0c;进行安装。 npm i element-ui -S并在main.js中引入ElementUI 2. 使用elmentUI组件进行页面布局 2.1 清空原…...

pandas-基础(数据结构及文件访问)

1 Pandas的数据结构 1.1 Series 特点&#xff1a;一维的数据型对象&#xff0c;包含一个值序列和数据标签(即索引&#xff09; 创建Series&#xff1a; pandas.Series(dataNone, indexNone, dtypeNone, nameNone, copyFalse, fastpathFalse) 参数说明&#xff1a; data&a…...

windows下使用msys2编译ffmpeg

三种方法&#xff1a; 1、在msys2中使用gcc编译 2、在msys2中使用visual studio编译&#xff08;有环境变量&#xff09; 3、在msys2中使用visual studio编译&#xff08;无环境变量&#xff09; 我的环境&#xff1a; 1、msys2-x86_64-20250221 2、vs2015 3、ffmpeg-7.1…...

Linux驱动开发(1.基础创建)

序言&#xff1a;从高层逻辑到底层硬件的回归 在当今的软件开发中&#xff0c;我们习惯于用高级语言构建抽象层——通过框架、库和云服务快速实现功能。这种“软逻辑”的便利性让开发效率倍增&#xff0c;却也逐渐模糊了我们对计算机本质的认知&#xff1a;一切代码终将落地为…...

长短期记忆网络(LSTM)学习指南

长短期记忆网络&#xff08;LSTM&#xff09;学习指南 1. 定义和背景 长短期记忆网络&#xff08;Long Short-Term Memory, LSTM&#xff09;是一种递归神经网络&#xff08;RNN&#xff09;的变体&#xff0c;旨在解决传统RNN在处理长期依赖关系时遇到的梯度消失或爆炸问题。…...

蓝耘智算平台助力阿里万相2.1:文生图创作攻略

声明&#xff1a;非广告&#xff0c;为用户体验文章 目录 引言 一、认识蓝耘智算平台与阿里万相 2.1 &#xff08;一&#xff09;蓝耘智算平台概述 &#xff08;二&#xff09;阿里万相 2.1 文生图技术解析 二、蓝耘智算平台注册与环境准备 &#xff08;一&#xff09;注…...

HarmonyOS ArkTS声明式UI开发实战教程

引言&#xff1a;为何选择ArkTS&#xff1f; 在HarmonyOS生态快速发展的当下&#xff0c;ArkTS作为新一代声明式UI开发框架&#xff0c;正在引发移动应用开发范式的变革。笔者曾在多个跨平台框架开发中经历过"命令式编程之痛"&#xff0c;直到接触ArkTS后才发现&…...

电脑总显示串口正在被占用处理方法

1.现象 在嵌入式开发过程中&#xff0c;有很多情况下要使用串口调试&#xff0c;其中485/422/232转usb串口是非常常见的做法。 根据协议&#xff0c;接口芯片不同&#xff0c;需要安装对应的驱动程序&#xff0c;比如ch340&#xff0c;cp2102&#xff0c;CDM212364等驱动。可…...

linux 安装nvidia 驱动所有发行版通用

之前有写过Ubuntu安装驱动的手册&#xff1a; https://blog.csdn.net/qq_50247813/article/details/146062785 到官网寻找合适的驱动&#xff1a; https://www.nvidia.cn/drivers/lookup 直接选择 linux 64-bit 适用于所有x86构架的linux&#xff0c;arm需要选择arm架构。 这次…...

PHP之数组

在你有别的编程语言的基础下&#xff0c;你想学习PHP&#xff0c;可能要了解的一些关于数组的信息。 PHP中的数组不用指定数据类型&#xff0c;同时索引不一定是数字。 与其说是数组&#xff0c;其实更像map。 创建和输出 $arr array(1, 2, 3); $arr1 [1, 2, 3]; var_dump(…...

【js逆向】图灵爬虫练习平台 第十五题

地址&#xff1a;aHR0cHM6Ly9zdHUudHVsaW5ncHl0b24uY24vcHJvYmxlbS1kZXRhaWwvMTUv 不一样的两个值 hook cookie两次执行出现密文v值 最主要是这个函数 直接扣整个js代码&#xff0c;然后补环境即可&#xff0c;可以参考 同花顺那篇文章&#xff0c;有讲 关键代码 var rt;!funct…...

LeetCode 1328.破坏回文串:贪心

【LetMeFly】1328.破坏回文串&#xff1a;贪心 力扣题目链接&#xff1a;https://leetcode.cn/problems/break-a-palindrome/ 给你一个由小写英文字母组成的回文字符串 palindrome &#xff0c;请你将其中 一个 字符用任意小写英文字母替换&#xff0c;使得结果字符串的 字典…...

【商城实战(11)】解锁商品搜索与筛选功能,提升用户购物体验

【商城实战】专栏重磅来袭&#xff01;这是一份专为开发者与电商从业者打造的超详细指南。从项目基础搭建&#xff0c;运用 uniapp、Element Plus、SpringBoot 搭建商城框架&#xff0c;到用户、商品、订单等核心模块开发&#xff0c;再到性能优化、安全加固、多端适配&#xf…...

Android AudioFlinger(五)—— 揭开AudioMixer面纱

前言&#xff1a; 在 Android 音频系统中&#xff0c;AudioMixer 是音频框架中一个关键的组件&#xff0c;用于处理多路音频流的混音操作。它主要存在于音频回放路径中&#xff0c;是 AudioFlinger 服务的一部分。 上一节我们讲threadloop的时候&#xff0c;提到了一个函数pr…...

HTML-05NPM使用踩坑

2025-03-04-NPM使用踩坑 本文讲述了一个苦逼程序员在使用NPM的时候突然来了一记nmp login天雷&#xff0c;然后一番折腾之后&#xff0c;终究还是没有解决npm的问题&#x1f61e;&#x1f61e;&#x1f61e;,最终使用cnpm完美解决的故事。 文章目录 2025-03-04-NPM使用踩坑[toc…...

并发编程——累加器

目录 1 AtomicLong 1.1 核心功能 1.2 实现原理&#xff1a; (1&#xff09;基于 Unsafe 的底层操作 (2) volatile字段的内存可见性 (3&#xff09;CAS 操作与 ABA 问题 1.3 性能分析 1.4 使用场景 2 LongAdder 核心设计原理 1 分段存储 2 分散更新策略 3.处理高竞…...

LeetCode - 28 找出字符串中第一个匹配项的下标

题目来源 28. 找出字符串中第一个匹配项的下标 - 力扣&#xff08;LeetCode&#xff09; 题目解析 暴力解法 本题如果采用暴力解法的话&#xff0c;可以定义两个指针 i&#xff0c;j&#xff0c;其中 i 指针用于扫描 S&#xff08;haystack&#xff09;串&#xff0c;j 指针…...

人机交互革命:从触屏到脑波的13维战争

人机交互革命&#xff1a;从触屏到脑波的13维战争 一、交互维度大爆炸&#xff1a;重新定义人机沟通边界 当ChatGPT开始解析你的微表情&#xff0c;当Neuralink芯片能读取皮层信号&#xff0c;人机交互已突破【键鼠】的次元壁。我们正经历人类史上最大规模的感官革命&#xff…...

如何查看Elastic-Job在Zookeeper中的注册信息

目录 使用zkCli.sh脚本 1. 连接ZooKeeper 2. 查看根目录 3. 查看具体作业的注册信息 4. 退出ZooKeeper客户端 使用ZooInspector工具 1.下载并安装ZooInspector&#xff1a; 2.连接到Zookeeper服务器: 3.浏览服务节点&#xff1a; 4.查看服务实例数据&#xff1a; 注…...

【数据库系统概论】事务

一、事务的定义 1.定义&#xff1a; 事务是数据库管理系统中的一个逻辑工作单元&#xff0c;它由一组操作组成&#xff0c;这些操作是数据库的增删查改的这种一些类的操作&#xff0c;这些操作要么全部成功&#xff0c;要么全部失败。逻辑工作单元是指在数据库中执行的一组操…...

FPGA 配置原理

用户编程控制的FPGA 是通过加载比特位流配置内部的存储单元实现的。该存储单元就是所谓的配置单元&#xff0c;它必须在器件上电后进行配置&#xff0c;从而设置查找表&#xff08;LUT&#xff09;的属性、连线方式、IOB 电压标准和其它的用户设计。 1.配置帧 以Xilinx 公司的…...

《DeepSeek MoE架构下,动态专家路由优化全解析》

在人工智能飞速发展的当下&#xff0c;模型架构的创新与优化始终是推动技术进步的关键力量。DeepSeek的混合专家模型&#xff08;MoE&#xff09;架构&#xff0c;以其独特的设计理念和卓越的性能表现&#xff0c;在大模型领域崭露头角。而其中的动态专家路由优化技术&#xff…...