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

【Linux 系统调试】Linux 调试工具strip使用方法

目录

一. strip 工具的定义与核心作用‌

‌1. strip 是什么?‌

2. strip 工具调试符号的作用‌

3. strip 工具调试符号的重要性‌

二. 如何确认文件是否被 strip 处理?‌

1. 通过 file 命令检查文件状态

2. strip 的典型用法‌

‌基础命令格式‌

‌常用选项‌

‌实战示例‌

3. 开发与发布场景的最佳实践‌

4. 编译时避免意外 strip 的要点‌

‌三. 构建系统配置‌示例

‌1. CMake 禁用 strip‌

‌2. Makefile 禁用 strip‌

‌3. 自动化流程验证‌

‌4. 安全与防篡改‌

‌5.1 文件权限控制‌

‌5.2 哈希校验‌

‌5. 常见问题与解决方案‌

6. 附录:命令速查表‌

7.关键操作总结‌


一. strip 工具的定义与核心作用

1. strip 是什么?

strip 是 ‌GNU Binutils 工具集‌中的关键组件,专门用于‌移除可执行文件、动态库(.so)和静态库(.a)中的符号表(symbol table)和调试信息(debug info)‌。其核心作用包括:

  • 减小文件体积‌:移除调试符号后,可执行文件大小可减少 20%~50%

  • 提升安全性‌:避免通过符号表逆向分析程序逻辑

  • 优化发布版本‌:适用于最终产品发布,但会破坏调试能力

2. strip 工具调试符号的作用

调试符号(Debug Symbols)是编译时嵌入到可执行文件中的元数据,包含以下信息:

  • 变量名、函数名、源码行号

  • 代码与内存地址的映射关系

  • 动态链接库(DLL/SO)的依赖关系

3. strip 工具调试符号的重要性

  • 调试能力‌:支持 GDB、LLDB 等工具进行源码级调试。

  • 问题定位‌:通过崩溃地址(如 0x7f1c8d8d6a56)快速定位源码位置。

  • 性能分析‌:结合 Profiler(如 perf)分析代码热点。

二. 如何确认文件是否被 strip 处理?

1. 通过 file 命令检查文件状态

file demo # 若输出包含 "not stripped",表示保留调试信息

示例输出:

demo: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, ‌**not stripped**‌

若显示 ‌stripped‌,则说明文件已被处理,无法通过 gdb 或 addr2line 调试。

2. strip 的典型用法

基础命令格式

strip [选项] <文件>

常用选项
选项作用
-s移除所有符号表(包括调试信息)68
-g仅移除调试信息,保留其他符号(适用于部分场景的调试)67
--strip-debug等同于 -g,移除 .debug 段(调试信息专用选项)6
--strip-unneeded移除非运行时必需的符号(平衡体积与基本调试能力)68
实战示例
  • 移除调试信息但保留符号表‌:

    strip --strip-debug demo # 保留函数名,但无法通过行号调试
  • 完全剥离符号信息‌(适用于发布):

    strip -s demo # 文件体积最小化,但彻底失去调试能力

3. 开发与发布场景的最佳实践

场景操作建议
开发调试阶段编译时添加 -g,且‌禁止任何形式的 strip 处理
正式发布阶段编译后执行 strip -s 或 strip --strip-all 优化体积
嵌入式部署使用交叉编译版 strip(如 arm-linux-gnueabihf-strip)处理目标文件

4. 编译时避免意外 strip 的要点

  • 禁用 gcc 的自动 strip‌:
    确保编译命令‌不含 -s , -Wl,--strip-all 选项

  • 检查构建脚本‌:
    某些构建系统(如 CMake)默认启用 Release 模式优化,需显式关闭 -DCMAKE_BUILD_TYPE=Debug,set(CMAKE_BUILD_TYPE Debug) # Debug模式默认保留符号 set(CMAKE_STRIP "") # 强制禁用strip

  • 自动化流程集成验证:在 CI/CD 流程中嵌入检查脚本,检查所有可执行文件是否被处理
    find ./bin -type f -exec file {} \; | grep -v "not stripped" && exit 1

    若发现 stripped 文件,立即终止流程并报错

  • 文件防篡改保护:若需防止他人意外执行 strip,可结合防篡改机制

  • 设置文件只读权限:chmod a-w demo

  • 哈希校验:生成并存储文件的哈希值(如 SHA256),运行时校验完整性

    ha256sum demo > demo.sha256 # 生成哈希 sha256sum -c demo.sha256 # 运行前校验

    若哈希不匹配,提示文件已被篡改

‌三. 构建系统配置‌示例

1. CMake 禁用 strip

set(CMAKE_BUILD_TYPE Debug) set(CMAKE_STRIP "") # 禁用 strip

2. Makefile 禁用 strip

demo: main.c gcc -g -o $@ $^ # release: demo # 注释掉 strip 操作 # strip demo

3. 自动化流程验证

  • CI/CD 集成检查‌:

    find ./bin -type f -exec file {} \; | grep -v "not stripped" && exit 1

4. 安全与防篡改

  • 5.1 文件权限控制

chmod a-w demo # 禁止写入,防止意外修改

  • 5.2 哈希校验

sha256sum demo > demo.sha256 # 生成哈希 sha256sum -c demo.sha256 # 运行前校验

5. 常见问题与解决方案

问题解决方案
addr2line 无法解析地址确认编译时添加了 -g 且未执行 strip
ASan 报告地址偏移设置 ASAN_OPTIONS=symbolize=1
动态库地址解析失败安装带调试符号的库(如 libasan5-dbg

6. 附录:命令速查表

操作命令
检查是否保留调试符号file demo
编译保留调试符号gcc -g -o demo main.c
解析地址addr2line -e demo 0x7f1c8d8d6a56
启用 ASangcc -fsanitize=address -o demo main.c

7.关键操作总结

步骤工具/方法作用
文件状态检查file 命令快速判断是否保留符号表27
编译配置优化禁用 -s 选项确保生成未处理的可执行文件23
构建系统适配CMake/Makefile 配置调整防止自动化流程触发 strip37
自动化验证CI/CD 脚本集成拦截被篡改或误处理的文件46
防篡改增强权限控制 + 哈希校验双重保障文件完整性4

相关文章:

【Linux 系统调试】Linux 调试工具strip使用方法

‌ 目录 ‌ 一. strip 工具的定义与核心作用‌ ‌1. strip 是什么&#xff1f;‌ 2. strip 工具调试符号的作用‌ 3. strip 工具调试符号的重要性‌ 二. 如何确认文件是否被 strip 处理&#xff1f;‌ 1. 通过 file 命令检查文件状态 2. strip 的典型用法‌ ‌基础命…...

Solana批量转账教程:提高代币持有地址和生态用户空投代币

前言 Solana区块链因其高吞吐量和低交易费用成为批量操作&#xff08;如空投&#xff09;的理想选择。本教程将介绍几种在Solana上进行批量转账的方法&#xff0c;帮助您高效地向多个地址空投代币。 solana 账户模型 在Solana中有三类账户&#xff1a; 数据账户&#xff0c;…...

leetcode hot100 技巧

如有缺漏谬误&#xff0c;还请批评指正。 1.只出现一次的数字 利用异或运算相同得0的特点。所有出现过两次的数字都会在异或运算累加过程中被抵消。、 class Solution { public:int singleNumber(vector<int>& nums) {int res0;for(int i0;i<nums.size();i) re…...

搭建spark伪分布集群

1.先查看虚拟机的默认名称&#xff0c;将其修改为vm01 2.更改了主机名&#xff0c;还需要修改/etc/hosts文件&#xff0c;在这个文件设定了IP地址与主机名的对应关系&#xff0c;类似DNS域名服务器的功能 3.修改spark相关配置文件&#xff0c;包括spark-env.sh和slave两个文件 …...

vue3自定义audio音频播放【进度条,快进,后退,音量加减,播放速度】

本文将介绍如何使用Vue3构建一个功能完备的自定义音频播放器&#xff0c;包含进度条控制、快进/后退、音量调节和播放速度控制等功能。相比使用浏览器默认的audio控件&#xff0c;自定义播放器可以提供更一致的用户体验和更灵活的设计空间&#xff0c;复制粘贴即可使用&#xf…...

学习基本开锁知识

本文主要内容 目前市面上锁的种类有哪些 机械锁 钥匙开锁 &#xff1a;这是最常见的传统开锁方式&#xff0c;通过插入匹配的钥匙转动来开锁&#xff0c;如常见的家用门锁、汽车门锁等&#xff0c;钥匙形状和齿纹各异&#xff0c;有单排齿的一字锁、双排齿的双面锁&#xff0c;…...

泛微ECOLOGY9 流程表单中添加按钮的方法

使用场景介绍 有时需要在流程表单中添加一个按钮来实现弹窗、打开指定的页面等需求。 实现方式一:通过ID 在流程表单中想要生成按钮的地方指定一个ID,然后再到ecode中创建按钮及方法。 具体步骤如下: 一、表单中指定ID为 exceldc 二、在ecode中实现按钮及功能。 1.建立…...

小刚说C语言刷题—1331 做彩纸花边

1.题目描述 李晓芳用一条长为 n 米的彩纸制作花边&#xff0c;每朵花李晓芳用一条长为 n 米的彩纸制作花边&#xff0c;每朵花的宽度为 x 厘米&#xff0c;花与花之间的间隔为 y 厘米。请问 n 米的彩纸最多能做多少朵花的花边。 如&#xff0c;图中的案例花的宽度为 4.5cm &a…...

【Python】读取excel文件的时候,遇到“Excel file format cannot be determined”的问题

使用os.path 读取路径下的文件&#xff0c;并拼接文件名&#xff0c;可能会遇到这个问题&#xff1a; ValueError: Excel file format cannot be determined, you must specify an engine manually. 因为我用的是相对路径的拼接的方法&#xff0c;读取出来会有这样的问题&#…...

天气预报、天气查询API接口文档 | 实时天气 | 七日天气 | 15日天气查询

天气预报、天气查询API接口文档 | 实时天气 | 七日天气 | 15日天气查询 这篇文章详细介绍了一种天气查询服务&#xff0c;提供了实时天气(1天)、7天预报和15天预报三个RESTful接口&#xff0c;支持通过地区名称、编码、IP或经纬度等多种方式查询&#xff0c;返回数据包含温度、…...

Linux中的线程安全与线程同步详解

在Linux系统中&#xff0c;线程安全性是指在多个线程同时访问共享资源时&#xff0c;能够确保这些共享资源不被破坏或者产生数据错误。线程同步是一种机制&#xff0c;用于保证多个线程之间的操作次序和协调&#xff0c;以避免竞态条件、死锁等问题。 以下是线程安全和线程同步…...

qwen2.5vl

多模态大模型通用架构&#xff1a; 在通用的MM-LLM&#xff08;Multi-Modality LLM&#xff09;框架里&#xff0c;共有五个模块&#xff0c;整体以LLM为核心主干&#xff0c;分别在前后有一个输入、输出的投影模块&#xff08;Projector&#xff09;&#xff0c;投影模块主要…...

国产Word处理控件Spire.Doc教程:在Java中为Word文本和段落设置边框

在 Word 文档中添加边框是一种突显重点信息的有效方式&#xff0c;尤其适用于包含大量文本的内容场景。相比普通格式&#xff0c;给字符或段落添加边框不仅能强化视觉层次&#xff0c;还能提升文档的专业感与可读性。E-iceblue旗下Spire系列产品是国产文档处理领域的优秀产品&a…...

【CUDA C实战演练】CUDA介绍、安装、C代码示例

文章目录 0. 前言1. 并行计算与异构计算1.1 并行计算&#xff08;Parallel Computing&#xff09;1.2 异构计算&#xff08;Heterogeneous Computing&#xff09; 2. CUDA 的核心概念2.1 主机&#xff08;Host&#xff09;与设备&#xff08;Device&#xff09;2.2 线程层次结构…...

滑动窗口——无重复字符最长的字串

题目&#xff1a; 子字符串&#xff0c;我们也可以看成子数组。 题意不难理解&#xff0c;这个题我们暴力枚举的思路是把每一个字符遍历存到hash桶中&#xff0c;如果放两次就进行结果更新。 但这个题我们有更优化的方法&#xff0c;利用数组代替hash&#xff08;重点不在这&…...

QT中connect高级链接——指针、lambda、宏

1、connect使用指针 connect(button,&QPushButton::released,this,&MainWidget::mySlot); //【抬起】按钮button时&#xff0c;修改按钮b2的标题 2、使用lambda表达式 引入lambda表达式&#xff0c;类似内联函数&#xff0c;可以用于不会被重用的短代码片段&#x…...

说说es配置项的动态静态之分和集群配置更新API

这天因为某件工作来到了es官网某个参数配置相关的页面&#xff0c;注意到了下图圆圈里的“Dynamic”&#xff1a; 链接&#xff1a;https://www.elastic.co/guide/en/elasticsearch/reference/8.1/modules-cluster.html#misc-cluster-settings 显然这是对配置项的一个描述&am…...

如何有效防御服务器DDoS攻击

分布式拒绝服务&#xff08;DDoS&#xff09;攻击通过大量恶意流量淹没服务器资源&#xff0c;导致服务瘫痪。本文将提供一套结合代码实现的主动防御方案&#xff0c;涵盖流量监控、自动化拦截和基础设施优化。 1. 实时流量监控与告警 目标&#xff1a;检测异常流量并触发告警…...

C#上传文件到腾讯云的COS

测试环境&#xff1a; vs2022 .net 6控制台应用程序 测试步骤如下&#xff1a; 1 添加子用户&#xff0c;目前是为了拿到secretId和secretKey&#xff0c;打开添加子用户界面链接&#xff1a;https://console.cloud.tencent.com/cam 并为子用户添加API 密钥 2 通过链接htt…...

强缓存与协商缓存的实现机制

文章目录 前言**1. 强缓存&#xff08;强制缓存&#xff09;****强缓存生效流程**&#xff1a;**2. 协商缓存&#xff08;对比缓存&#xff09;****协商缓存生效流程**&#xff1a;**对比总结****实际应用建议** **1. 缓存配置的三种主要实现方式** 前言 强缓存与协商缓存的实…...

【云备份】项目展示项目总结

目录 一. 项目展示 二. 项目总结 一. 项目展示 首先我们打开服务端&#xff0c;把没有用的东西都删干净&#xff0c;包括备份的文件信息啊什么的 这个时候我们启动服务器 我们先用浏览器去看看 什么东西都没有。 好&#xff0c;我们现在去启动客户端&#xff0c;下面这个是客…...

嵌入式 Linux Platform 驱动模型测试

文章目录 一、为什么要用 Platform 驱动模型&#xff1f; 二、Platform 驱动模型的三大核心组件 1.Platform 总线&#xff08;虚拟总线&#xff09; 2.Platform 设备&#xff08;platform_device&#xff09; 3.Platform 驱动&#xff08;platform_driver&#xff09; 三、Plat…...

Linux:web服务nginx

一.Nginx简介 Nginx (engine x) 是一个高性能的Web和反向代理服务器&#xff0c;同时也是一个 IMAP/POP3/SMTP 代理服器。Nginx处理高并发能力是十分强大的&#xff0c;能经受高负载的考验。而且支持热部署&#xff0c;几乎可以做到 7 * 24 小时不间断运行&#xff0c;即使运行…...

【“星睿O6”评测】Armv9.2a、KLEIDIAI及vulkan加速llamacpp部署本地AI

llamacpp 简介 llama.cpp 的主要目标是通过最小的设置&#xff0c;实现 LLM 推理&#xff0c;在各种硬件上&#xff08;无论是本地还是云端&#xff09;提供最先进的性能。 纯 C/C实现&#xff0c;无任何依赖苹果 M1/M2 芯片&#xff08;Apple silicon&#xff09;优化&#…...

Advanced Installer 22.5打包windows 安装包

Advanced Installer 22.5打包windows 安装包 1、打开Advanced Installer 22.5打包工具&#xff0c;绿色免安装下载链接&#xff1a;https://download.csdn.net/download/LongtengGensSupreme/90778405 2、选择需要打包的文件 3、设置安装文件夹权限 4、安装参数设置 5、构建设…...

Qt界面设计时窗口中各控件布局及自适应方法

在进行Qt界面设计时,往往会因为控件的布局以及伴随窗口拉伸时控件没有做好自适应部署而导致界面效果大打折扣。 这里简单介绍一下QtDesigner实现界面自适应布局,包括水平布局、垂直布局、栅格布局应用,确保界面元素随窗口变化自动调整。 图1 如图所示,这是我们的设计目标…...

添加地形与自定义地形

在先前我们设置的地图中,放大后不难发现这是2d平面 此时我们可以使用cesium自带的方法对图层进行修改 terrainProvider:Cesium.createWorldTerrainAsync(_) 修改后重新打开地图明显有了3d效果 还可以自定义添加水纹效果 requestWaterMask: true, // 可选&#xff1a;请求水面掩…...

livedata使用,完整的livedata的Demo

完整 LiveData Demo&#xff08;Java 实现&#xff09; 下面是一个可直接运行的完整 LiveData 示例&#xff0c;包含 ViewModel、LiveData 的基本使用以及与 UI 的交互。 项目结构 app/ ├── java/ │ ├── com.example.livedatademo/ │ │ ├── MainActivity.java │ …...

SpringBoot+Vue全栈的一个简单入门案例

目录 开发环境 Github开源项目 入门一&#xff1a;跑起别人的开源项目 跑起前端Vue 跑起后端SpringBoot 运行效果 入门二&#xff1a;将HTML模板转成Vue组件 下载一个免费的HTML模板 通过Trae将HTML转成Vue组件 将生成Vue组件增加为Vue的一个路由节点 运行Vue看看效…...

Nginx 性能调优与深度监测全攻略

目录 Nginx 性能调优与深度监测全攻略 一、引言 二、Nginx 核心性能调优策略 2.1 基础参数优化 2.1.1 worker 进程配置 2.1.2 事件驱动模型优化 2.2 缓存与资源优化 2.2.1 静态资源缓存 2.2.2 反向代理缓存 2.3 网络与连接优化 2.3.1 TCP 参数调整 2.3.2 Keep-Aliv…...

bad interpreter: No such file or directory

shell脚本加sqlite插入语句&#xff0c;内容如下&#xff1a; #!/bin/bash # 数据库文件路径 DB_FILE"/opt/ecu/db/Test.db" # 检查数据库文件所在目录是否存在&#xff0c;若不存在则创建 DB_DIR$(dirname "$DB_FILE") if [ ! -d "$DB_FILE" ]…...

python安装pyqt5失败

记录 PyQt5不支持3.10及以上版本&#xff0c;pip install PyQt5时报错raise PyProjectOptionException(qmake 详细错误信息如下&#xff1a; $ pip install PyQt5 Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple Collecting pyqt5Using cached https://pypi…...

【风控】模型监控和异常处理

在风控模型的全生命周期中&#xff0c;模型监控与异常处理是保障模型持续、稳定、可靠运行的关键环节。本指南旨在提供系统化、可落地的监控指标、预警策略及异常处置流程&#xff0c;帮助团队快速定位、响应并修复线上模型问题&#xff0c;最大限度降低风险。 1.模型监控与预…...

高并发内存池(一):项目简介+定长内存池的实现

目录 一&#xff0c;项目介绍 二&#xff0c;什么是内存池 1&#xff0c;池化技术 2&#xff0c;内存池 3&#xff0c;内存池主要解决的问题 4&#xff0c;malloc 三&#xff0c;实现一个定长内存池 定长内存池的设计 大致结构 核心功能实现 申请一块大小为T的内存 释…...

STM32--TIM--函数

void TIM_ITConfig(TIM_TypeDef* TIMx, uint16_t TIM_IT, FunctionalState NewState) 用于使能或禁用指定的定时器中断。...

文生图(Text-to-Image)的发展

文章目录 1. 早期探索&#xff08;2010-2015&#xff09;&#xff1a;传统方法与初步尝试2. 文本条件GAN时代&#xff08;2016-2019&#xff09;3. 自回归与VQ-VAE时代&#xff08;2019-2021&#xff09;4. 扩散模型革命&#xff08;2021-2022&#xff09;(1) 扩散模型基础突破…...

vscode预览模式(点击文件时默认覆盖当前标签,标签名称显示为斜体,可通过双击该标签取消)覆盖标签、新窗打开

文章目录 VS Code 预览模式如何取消预览模式&#xff08;即“固定”标签页&#xff09;&#xff1f;预览模式有什么用&#xff1f; VS Code 预览模式 在 VS Code 中&#xff0c;当你单击文件浏览器&#xff08;例如&#xff0c;资源管理器侧边栏&#xff09;中的某个文件时&am…...

热部署相关

手动热部署 启动热部署后代码进行修改可以不用重启整个项目Carl F9修改的代码就可以直接生效了 热部署只进行重启的操作而不用进行重载的操作 自动热部署 自定义重启排除项 关闭热部署 ture为开启热部署false为关闭 如果直接在application.yml里写可能会被其他优先级更高的配…...

高防ip是怎么做到分布式防御的

高防IP的分布式防御体系通过多维度技术协同实现攻击流量的分散处理与智能拦截&#xff0c;其核心机制可从以下五个层面解析&#xff1a; ​​一、全球节点网络布局​​ ​​多区域节点覆盖​​ 在全球关键互联网枢纽&#xff08;如北美、欧洲、亚太&#xff09;部署清洗中心&am…...

结构可视化:利用数据编辑器剖析数据内在架构​

结构可视化聚焦于展示数据的内部结构和各部分之间的关系&#xff0c;使企业能够深入理解数据的组织方式和层次体系&#xff0c;从而更好地进行数据管理和分析。通过结构可视化&#xff0c;企业可以清晰地看到数据的层次结构、关联关系以及数据流动路径&#xff0c;为数据驱动的…...

QT编程练习20250507

#include <stdio.h> // 包含标准输入输出库 #include <stdlib.h> // 包含通用工具库&#xff08;如malloc, free等&#xff09; #include <string> // 包含C string类定义 #include <iostream> // 包含C输入输出流库using namespace std; // 使用st…...

【软件设计师:算法】3.排序算法

一、排序 将一组杂乱无章的数据按一定的规律次序排列起来。 排序的目的是什么? 便于查找!排序算法的好坏如何衡量? 时间效率——排序速度(即排序所花费的全部比较次数)空间效率——占内存辅助空间的大小稳定性——若两个记录A和B的关键字值相等,但排序后A、B的先后次序保…...

Linux 内核学习(7) --- 字符设备驱动

字符设备驱动程序 Linux 中主要有三类设备的驱动程序&#xff0c;分别是字符设备驱动程序&#xff0c;块设备驱动程序和网络设备驱动程序 字符设备是指在 I/O 传输过程中以字符为单位进行传输的设备&#xff0c;例如键盘&#xff0c;打印机等&#xff0c;字符设备的驱动程序结…...

vue3+vite项目引入tailwindcss

从2025年1月tailwindcss4.0发布开始使用tailwindcss比之前简化很多 1,安装 yarn add tailwindcss tailwindcss/vite2,配置vite.config.js import tailwindcss from tailwindcss/vite;...plugins: [tailwindcss(),...] ...3,在主css文件顶部添加 注意一定是css文件,不能是sc…...

IIS配置SSL

打开iis 如果搜不到iis&#xff0c;要先开 再搜就打得开了 cmd中找到本机ip 用http访问本机ip 把原本的http绑定删了 再用http访问本机ip就不行了 只能用https访问了...

LeetCode:对称二叉树

1、题目描述 给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 示例 1&#xff1a; 输入&#xff1a;root [1,2,2,3,4,4,3] 输出&#xff1a;true 示例 2&#xff1a; 输入&#xff1a;root [1,2,2,null,3,null,3] 输出&#xff1a;false 提示&#xff1a; 树中…...

6天从0到精通:MySQL基础快速入门指南

放在前头 6天从0到精通&#xff1a;MySQL基础快速入门指南 6天从0到精通&#xff1a;MySQL基础快速入门指南 在数据驱动的时代浪潮下&#xff0c;MySQL作为全球最受欢迎的开源关系型数据库管理系统之一&#xff0c;广泛应用于Web开发、数据分析、云计算等多个领域。无论是刚…...

信息论12:从信息增益到信息增益比——决策树中的惩罚机制与应用

从信息增益到信息增益比&#xff1a;决策树中的惩罚机制与应用 引言&#xff1a;当"信息量"遇到"公平性" 在2018年某银行的信用卡风控系统中&#xff0c;数据分析师发现一个诡异现象&#xff1a;客户ID号在决策树模型中竟成为最重要的特征。这个案例揭示…...

C++ -- 哈希扩展

目录 位图 位图概念 位图的实现 位图应用 布隆过滤器 布隆过滤器的提出 布隆过滤器概念 布隆过滤器的插入 布隆过滤器的查找 布隆过滤器的删除 位图 给40亿个不重复的无符号整数&#xff0c;没排过序。给一个无符号整数&#xff0c;如何快速判断一个数是否在这40亿个数…...

AI大模型分类以及Prompt优化技巧

目录 一、AI大模型分类 1、按模态分类 2、按开源性分类 3、按规模分类 4、按用途分类 如何对比和选择大模型 二、Token 如何计算 Token 如何估算Token成本 三、Prompt工程 Prompt优化技巧 基础提示技巧 1、明确指定任何和角色 2、提供详细说明和具体示例 3、使用…...