模拟投资大师思维:AI对冲基金开源项目详解
这里写目录标题
- 引言
- 项目概述
- 核心功能详解
- 多样化的AI投资智能体
- 灵活的运行模式
- 透明的决策过程
- 安装和使用教程
- 环境要求
- 安装步骤
- 基本使用方法
- 运行对冲基金模式
- 运行回测模式
- 应用场景和实际价值
- 教育和研究价值
- 潜在的商业应用
- 与现有解决方案的对比
- 局限性与发展方向
- 结论
引言
随着人工智能技术的迅猛发展,其应用场景正不断扩展到各个领域,金融投资无疑是其中最具潜力的方向之一。今天要为大家介绍的是 GitHub 上一个名为"ai-hedge-fund"的开源项目(项目地址)。这个项目巧妙地将人工智能与投资决策相结合,构建了一个由15个 AI 智能体组成的投资决策系统,模拟了从沃伦·巴菲特到凯瑟琳·伍德等投资大师的思维方式,为我们提供了一个探索 AI 如何辅助投资决策的绝佳平台。
声明:本项目仅用于学习!!!
项目概述
"ai-hedge-fund"是一个概念验证(POC)目,旨在探索使用人工智能进行股票交易决策的可能性。该项目由15个不同的 AI 智能体(Agent)成,这些智能体模拟了著名投资者的思维模式或专注于特定的金融分析领域。项目仅供教育和研究目的,不用于实际交易或投资活动。
系统采用了多种大型语言模型(LLM),包括 OpenAI、Groq、Anthropic 和 Deepseek 模型,通过这些 AI 技术,系统能够分析股票数据并生成投资建议。项目支持对多种股票进行分析,例如 AAPL、MSFT、NVDA 等,还提供了回测功能,让用户能够评估系统在历史数据上的表现。
该项目当前25.9K颗星,采用 MIT 许可证,鼓励社区贡献,要求贡献者保持小而集中的拉取请求。
项目结构
ai-hedge-fund/
├── src/
│ ├── agents/ # Agent definitions and workflow
│ │ ├── bill_ackman.py # Bill Ackman agent
│ │ ├── fundamentals.py # Fundamental analysis agent
│ │ ├── portfolio_manager.py # Portfolio management agent
│ │ ├── risk_manager.py # Risk management agent
│ │ ├── sentiment.py # Sentiment analysis agent
│ │ ├── technicals.py # Technical analysis agent
│ │ ├── valuation.py # Valuation analysis agent
│ │ ├── ... # Other agents
│ │ ├── warren_buffett.py # Warren Buffett agent
│ ├── tools/ # Agent tools
│ │ ├── api.py # API tools
│ ├── backtester.py # Backtesting tools
│ ├── main.py # Main entry point
├── pyproject.toml
├── ...
核心功能详解
多样化的AI投资智能体
该系统最大的特点是拥有15个不同角色的AI智能体,分为两大类:
投资大师模拟智能体(9个):
- 本杰明·格雷厄姆智能体 - 价值投资之父,专注于寻找具有安全边际的隐藏宝石
- 比尔·阿克曼智能体 - 激进型投资者,采取大胆立场并推动变革
- 凯瑟琳·伍德智能体 - 成长型投资女王,相信创新和颠覆的力量
- 查理·芒格智能体 - 沃伦·巴菲特的合伙人,只买公平价格下的优质企业
- 迈克尔·伯里智能体 - "大空头"逆势投资者,寻找深度价值
- 彼得·林奇智能体 - 实用投资者,在普通企业中寻找"十倍股"
- 菲利普·费舍尔智能体 - 一丝不苟的成长型投资者,使用深度"小道消息"研究
- 斯坦利·德鲁肯米勒智能体 - 宏观传奇,寻找具有增长潜力的不对称机会
- 沃伦·巴菲特智能体 - 奥马哈先知,寻找公平价格下的优质公司
功能性分析智能体(6个):
- 估值智能体 - 计算股票内在价值并生成交易信号
- 情感分析智能体 - 分析市场情绪并生成交易信号
- 基本面分析智能体 - 分析基本面数据并生成交易信号
- 技术分析智能体 - 分析技术指标并生成交易信号
- 风险管理器 - 计算风险指标并设置仓位限制
- 投资组合管理器 - 做出最终交易决策并生成订单
这种多智能体设计使系统能够从不同角度和投资哲学出发,对股票进行全面分析,提供多元化的投资视角。注意:系统模拟交易决策,实际上并不交易。
灵活的运行模式
系统提供了两种主要运行模式:
- 对冲基金模式:针对特定股票或股票组合进行实时分析和决策。用户可以通过命令行参数指定要分析的股票代码、时间范围等。
- 回测模式:在历史数据上测试投资策略的表现。用户可以指定回测的时间段,评估系统在不同市场环境下的决策质量。
两种模式都支持使用远程 API 托管的 LLM 或通过 --ollama
参数使用本地部署的 LLM,为不同需求的用户提供了灵活性。
透明的决策过程
系统还提供了 --show-reasoning
参数,可以显示每个智能体的推理过程,使用户能够了解每个投资决策背后的逻辑和思考过程。这不仅有助于用户评估决策质量,也使整个系统成为学习不同投资风格和思维方式的极佳工具。
安装和使用教程
环境要求
项目使用 Python 开发,并依赖 Poetry 进行依赖管理。要运行该项目,你需要:
- Python 3.8 或更高版本
- Poetry 包管理工具
- 相关 LLM 提供商的 API 密钥(OpenAI、Groq、Anthropic 或 Deepseek)
- 对于除 AAPL、GOOGL、MSFT、NVDA 和 TSLA 以外的股票,需要 Financial Datasets API 密钥
安装步骤
- 克隆项目仓库:
git clone https://github.com/virattt/ai-hedge-fund.git
cd ai-hedge-fund
- 安装Poetry(如果尚未安装):
curl -sSL https://install.python-poetry.org | python3 -
- 安装项目依赖:
poetry install
- 设置环境变量:
# 创建.env文件用于API密钥
cp .env.example .env
- 在.env文件中配置 API 密钥:
# OpenAI API密钥
# https://platform.openai.com/
OPENAI_API_KEY=your-openai-api-key# deepseek API密钥 (deepseek-chat, deepseek-reasoner, etc.)
# from https://deepseek.com/
DEEPSEEK_API_KEY=your-deepseek-api-key# Financial Datasets API密钥(可选)
# https://financialdatasets.ai/
FINANCIAL_DATASETS_API_KEY=your-financial-datasets-api-key
重要提示:
- 必须设置 OPENAI_API_KEY、GROQ_API_KEY、ANTHROPIC_API_KEY 或 DEEPSEEK_API_KEY 其中的一个对冲基金才能正常工作。如果想使用所有提供商的LLM,则需要设置所有 API 密钥。
- AAPL、GOOGL、MSFT、NVDA 和 TSLA 的财务数据是免费的,不需要 API 密钥。
- 对于任何其他股票代码,您需要在
. env
文件中设置 FINANCIAL_DATASETS_API_KEY。
基本使用方法
运行对冲基金模式
poetry run python src/main.py --ticker AAPL,MSFT,NVDA
可以添加以下可选参数:
--ollama
:使用本地 LLM--show-reasoning
:显示智能体推理过程--start-date 2024-01-01 --end-date 2024-03-01
:指定分析的时间范围
运行回测模式
poetry run python src/backtester.py --ticker AAPL,MSFT,NVDA
同样支持上述可选参数,使用方式相同。
应用场景和实际价值
教育和研究价值
该项目最直接的价值在于教育和研究领域:
- 投资教育工具:通过观察不同投资大师的 AI 模拟体如何分析相同股票并做出决策,用户可以深入了解各种投资哲学和方法论的差异。
- AI在金融领域的研究平台:项目为研究人员提供了一个探索如何将AI应用于投资决策的平台,可以测试不同的AI架构、输入数据组合以及决策流程。
- 算法交易研究:尽管项目不进行实际交易,但其框架可以作为开发和测试算法交易策略的基础。
潜在的商业应用
虽然项目明确表示仅用于教育目的,但其架构和思路可以启发多种商业应用:
- 投资决策辅助系统:可以发展成为专业投资者的决策辅助工具,提供多角度的分析和建议。
- 个人投资顾问:简化后可以面向普通投资者,提供易于理解的投资建议。
- 金融教育产品:可以发展成为金融课程和培训项目中的互动学习工具。
与现有解决方案的对比
相比传统的投资分析工具或单一模型的 AI 投资系统,该项目有几个明显优势:
- 多视角分析:通过模拟多位投资大师和专业分析工具,提供了更加全面的分析视角。
- 透明的决策过程:与大多数"黑盒"AI系统不同,用户可以看到每个智能体的推理过程,增强了系统的可解释性。
- 灵活性高:支持多种 LLM 提供商、本地或远程模型、多种股票分析以及自定义时间范围,适应性强。
- 开源性质:作为MIT许可的开源项目,社区可以不断贡献和改进,潜力巨大。
局限性与发展方向
尽管该项目提供了一个令人印象深刻的AI投资框架,但仍存在一些局限:
- 仅限于股票分析:当前项目仅关注股票市场,未涵盖债券、商品、加密货币等其他资产类别。
- 依赖外部数据源:除了少数免费股票外,分析其他股票需要付费 API 密钥。
- 资源需求:运行多个 LLM 可能需要相当的计算资源和 API 费用。
- 实际交易集成缺失:系统目前不支持与实际交易平台对接。
这些局限也指明了项目可能的发展方向,包括扩展到更多资产类别、整合更多数据源、优化资源使用效率以及可能的交易平台集成(尽管项目明确表示不鼓励实际交易)。
结论
"ai-hedge-fund"项目代表了 AI 与金融投资交叉领域的一次有趣探索。通过模拟多位投资大师的思维模式和整合多种分析方法,该项目不仅为研究人员和教育工作者提供了宝贵的工具,也为金融科技的未来发展提供了有价值的思路。
尽管该项目明确定位于教育和研究用途,不鼓励实际交易应用,但其中的创新理念和技术架构无疑会对金融AI领域产生积极影响。作为一个 MIT 许可的开源项目,我们可以期待社区在此基础上不断迭代、改进,探索AI赋能金融决策的更多可能性。
对于对金融投资和AI技术都感兴趣的开发者来说,这个项目无疑值得一试,无论是作为学习工具还是进一步开发的基础平台。
相关文章:
模拟投资大师思维:AI对冲基金开源项目详解
这里写目录标题 引言项目概述核心功能详解多样化的AI投资智能体灵活的运行模式透明的决策过程 安装和使用教程环境要求安装步骤基本使用方法运行对冲基金模式运行回测模式 应用场景和实际价值教育和研究价值潜在的商业应用与现有解决方案的对比局限性与发展方向 结论 引言 随着…...
DAY4:数据库对象与高级查询深度解析:从视图到多表关联实战
一、数据库对象精要指南 1.1 视图(View)的进阶应用 视图是存储在数据库中的虚拟表,本质是预编译的SQL查询语句。通过视图可以简化复杂查询、实现数据安全隔离、保持业务逻辑一致性。 创建语法示例: CREATE VIEW sales_summary…...
【Matlab】中国东海阴影立体感地图
【Matlab】中国东海阴影立体感地图 【Matlab】中国东海阴影立体感地图 【Matlab】中国东海阴影图立体感画法 以前分享过一次,链接如下: 中国海域地形图 但是以前还是有些小问题,这次修改了。 另外,增加了新的画法: 另…...
python文件类操作:json/ini配置文件、logging日志统计、excel表格数据读写、os操作库
文章目录 一、with open文件操作二、csv表格数据读写三、Excel表格数据读写四、json配置文件读写五、ini配置文件读写六、logging日志统计七、os操作库(文件拼接、创建、判断等) 打开文件使用不同参数有着不同的含义,比如只读、只写、二进制读…...
VSCode安装与环境配置(Mac环境)
20250419 - 概述 大概是非常久之前了,装了VSCode,估计都得21的时候了,电脑上也没更新过。当时安装也直接装上就完事了。这次把版本更新一下,同时记录一下这个安装过程。 安装 mac下安装非常简单,直接从官网下载&am…...
【信息系统项目管理师】高分论文:论信息系统项目的采购管理(“营业工单系统”项目)
更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 论文1、规划采购管理2、实施采购3、控制采购论文 2018年1月,我参加了 XX运营商集团公司某省分公司的“营业工单系统”的信息化建设项目,我有幸担任项目经理。该项目投资1000万元人民币,建设工期为12个月。该…...
XCVU13P-2FHGA2104I Xilinx Virtex UltraScale+ FPGA
XCVU13P-2FHGA2104I 是 Xilinx(现为 AMD)Virtex UltraScale™ FPGA 系列中的高端 Premium 器件,基于 16nm FinFET 工艺并采用 3D IC 堆叠硅互连(SSI)技术,提供业内顶级的计算密度和带宽。该芯片集成约 3,…...
@Validated与@Valid的正确使用姿势
验证代码 Validated RestController public class A {PostMappingpublic void test(Min(value 1) Integer count) {} // 校验规则生效 }RestController public class A {PostMappingpublic void test(Validated Min(value 1) Integer count) {} // 校验规则不生效 }RestCont…...
Ubuntu20.04下Docker方案实现多平台SDK编译
0 前言 熟悉嵌入式平台Linux SDK编译流程的小伙伴都知道,假如平台a要求必须在Ubuntu18.04下编译,平台b要求要Ubuntu22.04的环境,那我只有Ubuntu20.04,或者说我的电脑硬件配置最高只能支持Ubuntu20.04怎么办?强行在Ubuntu20.04下编译,编又编不过,换到旧版本我又不愿意,…...
树莓派超全系列教程文档--(34)树莓派配置GPIO
配置GPIO GPIO控制gpio 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 GPIO控制 gpio 通过 gpio 指令,可以在启动时将 GPIO 引脚设置为特定模式和值,而以前需要自定义 dt-blob.bin 文件。每一行都对一组引脚应用相同的设…...
C语言 数组(下)
目录 1.二维数组的创建 2.二位数组的初始化 3.二维数组的使用 4.二维数组在内存中的储存 1.二维数组的创建 1.1二维数组的概念 前面学习的数组被称为一维数组,数组的元素都是内置类型的,如果我们把一维数组做为数组的元 素,这时候就是…...
opencv图像旋转(单点旋转的原理)
首先我们以最简单的一个点的旋转为例子,且以最简单的情况举例,令旋转中心为坐标系中心O(0,0),假设有一点P_{0}(x_{0},y_{0}),P_{0}离旋转中心O的距离为r,OP_{0}与坐标轴x轴的夹角为\…...
针对MCP认证考试中的常见技术难题进行实战分析与解决方案分享
一、身份与权限管理类难题 场景1:Active Directory组策略(GPO)不生效 问题现象:客户端计算机未应用新建的组策略。排查步骤: 检查GPO链接顺序:使用gpresult /r查看策略优先级,确保目标OU的GPO…...
systemctl管理指令
今天我们来继续学习服务管理指令,接下来才是重头戏-systemctl,那么话不多说,直接开始吧. systemctl管理指令 1.基本语法: systemctl [start | stop | restart | status]服务 注:systemctl指令管理的服务在/usr/lib/ systemd/system查看 2.systemctl设置服务的自…...
DataWhale AI春训营 问题汇总
1.没用下载训练集导致出错,爆错如下。 这个时候需要去比赛官网下载对应的初赛训练集 unzip -d /mnt/workspace/sais_third_new_energy_baseline/data /mnt/workspace/sais_third_new_energy_baseline/初赛训练集.zip 在命令行执行这个命令解压 2.没定义测试集 te…...
当算力遇上马拉松:一场科技与肉身的极限碰撞
目录 一、从"肉身苦修"到"科技修仙" 二、马拉松的"新大陆战争" 三、肉身会被算法"优化"吗? 马拉松的下一站是"人机共生"时代 当AI能预测你的马拉松成绩,算法能规划最佳补给方案,智能装备让训练效率翻倍——你还会用传…...
n8n 中文系列教程_02. 自动化平台深度解析:核心优势与场景适配指南
在低代码与AI技术深度融合的今天,n8n作为开源自动化平台正成为开发者提效的新利器。本文深度剖析其四大核心技术优势——极简部署、服务集成、AI工作流与混合开发模式,并基于真实场景测试数据,厘清其在C端高并发、多媒体处理等场景的边界。 一…...
Macvlan 网络类型详解:特点、优势与局限性
一、Macvlan 网络类型的基本概念 1. 什么是 Macvlan Macvlan 是 Linux 内核提供的一种网络虚拟化技术,允许在单个物理接口(例如 enp0s3)上创建多个虚拟网络接口。每个虚拟接口拥有独立的 MAC 地址,表现得像物理网络中的独立设备…...
tigase源码学习杂记-AbstractMessageReceiver
前言 废话,最近把工作中用的基于XMPP协议的经典开源框架又读了一遍,整理一下其优秀的源码学习记录。 概述 AbstractMessageReceiver是tigase核心组件MessageRouter、SessionManager的抽象父类,是tigase消息接收器的抽象。AbstractMessageR…...
C#.net core部署IIS
Windows IIS 部署 .NET 应用详细指南 本文档提供了在 Windows Server 上使用 IIS 部署 .NET 应用(包括 .NET Core 和传统 WebForms)的完整步骤和最佳实践。 目录 概述环境准备.NET Core 应用部署 应用准备发布应用在 IIS 中配置应用池配置高级配置 .N…...
sql学习
Name 列中选取唯一不同的值 插入 更新 删除 筛选固定的行数 模糊查询 包含 范围 name的别名是n 两个表交集 左边包含全部 右边包含全部 重复的展示一条 重复的都会展示 创建一个新表,把字段复制近期 创建数据库 约束 创建索引 删除 函数 聚合函数...
OSPF实验
实验要求: 1.R5为ISP,其上只能配置IP地址;R4作为企业边界路由器, 出口公网地址需要通过PPP协议获取,并进行chap认证 (上面这个不会做) 2.整个OSPF环境IP基于172.16.0.0/16划分; 3.所…...
洛谷题目:P8624 [蓝桥杯 2015 省 AB] 垒骰子 题解 (本题简)
题目传送门: P8624 [蓝桥杯 2015 省 AB] 垒骰子 - 洛谷 (luogu.com.cn) 前言: 这道题要求我们计算将 个骰子垒成柱体且满足某些面不能紧贴的不同垒骰字方式的数量,并且结果需要对 取模。下面小亦来带大家逐步分析解题思路: #基本概念理解: 1、骰子特性: 一直骰子的…...
简单线段树的讲解(一点点的心得体会)
目录 一、初识线段树 图例: 编辑 数组存储: 指针存储: 理由: build函数建树 二、线段树的区间修改维护 区间修改维护: 区间修改的操作: 递归更新过程: 区间修改update:…...
在 Node.js 中使用原生 `http` 模块,获取请求的各个部分:**请求行、请求头、请求体、请求路径、查询字符串** 等内容
在 Node.js 中使用原生 http 模块,可以通过 req 对象来获取请求的各个部分:请求行、请求头、请求体、请求路径、查询字符串 等内容。 ✅ 一、基础结构 const http require(http); const url require(url);const server http.createServer((req, res)…...
深度学习--mnist数据集实现卷积神经网络的手写数字识别
文章目录 一、卷积神经网络CNN1、什么是CNN2、核心3、构造 二、案例1、下载数据集(训练、测试集)并展示画布2、打包数据图片3、判断系统使用的是CPU还是GPU4、定义CNN神经网络5、训练和测试模型 一、卷积神经网络CNN 1、什么是CNN 卷积神经网络是一种深…...
python基础知识点(1)
python语句 一行写一条语句 一行内写多行语句,使用分号分隔建议每行写一句,且结束时不写分号写在[ ]、{ }内的跨行语句,被视为一行语句\ 是续行符,实现分行书写功能 反斜杠表示下一行和本行是同一行 代码块与缩进 代码块复合语句…...
详解反射型 XSS 的后续利用方式:从基础窃取到高级组合拳攻击链
在网络安全领域,反射型跨站脚本攻击(Reflected Cross-Site Scripting,简称反射型 XSS)因其短暂的生命周期和临时性,常被视为“低危”漏洞,威胁性不如存储型或 DOM 型 XSS。然而,这种看法低估了它…...
【问题笔记】解决python虚拟环境运行脚本无法激活问题
【问题笔记】解决python虚拟环境运行脚本无法激活问题 错误提示问题所在解决方法**方法 1:临时更改执行策略****方法 2:永久更改执行策略** **完整流程示例** 错误提示 PS F:\PythonProject\0419graphrag-local-ollama-main> venv1\Scripts\activate…...
CF148D Bag of mice
题目传送门 思路 状态设计 设 d p i , j dp_{i, j} dpi,j 表示袋中有 i i i 个白鼠和 j j j 个黑鼠时, A A A 能赢的概率。 状态转移 现在考虑抓鼠情况: A A A 抓到白鼠:直接判 A A A 赢,概率是 i i j \frac{i}{i j}…...
精益数据分析(6/126):深入理解精益分析的核心要点
精益数据分析(6/126):深入理解精益分析的核心要点 在创业和数据驱动的时代浪潮中,我们都在不断探索如何更好地利用数据推动业务发展。我希望通过和大家分享对《精益数据分析》的学习心得,一起在这个充满挑战和机遇的领…...
package.json ^、~、>、>=、* 详解
package.json ^、~、>、>、* 详解 在 Vue 项目中,package.json 文件的依赖项(dependencies)和开发依赖项(devDependencies)中,版本号前可能会带有一些特殊符号,例如 ^、~、>、<、&g…...
2025年赣教云智慧作业微课PPT模板
江西的老师们注意,2025年赣教云智慧作业微课PPT模版和往年不一样,千万不要搞错了,图上的才是正确的2025年的赣教云智慧作业微课PPT模版,赣教云智慧作业官网有问题,无法正确下载该模板,需要该模板的…...
Java PrintStream 类深度解析
Java PrintStream 类深度解析 便捷: 1.直接输出各种数据 2.自动刷新和自动换行(println方法) 3.支持字符串转义 4.自动编码(自动根据环境选择合适的编码方式) 1. 核心定位 PrintStream 是 FilterOutputStream 的子类,提供格式化输出能力,是标准输出 System.out 的…...
超简单的git学习教程
本博客仅用于记录学习和使用 前提声明全部内容全部来自下面廖雪峰网站,如果侵权联系我删除 1.小白学习看这篇,快速易懂入门,完整内容(半天完成学习本地和远程仓库建立) 简介 - Git教程 - 廖雪峰的官方网站 2.博客中…...
Yocto项目实战教程-第5章-5.1-5.2小节-BitBake的起源与源代码讲解
🔍 B站相应的视频教程: 📌 Yocto项目实战教程-第5章-5.1-5.2小节-BitBake的起源与源代码讲解 记得三连,标为原始粉丝。 📚 系列持续更新中,B站搜索 “嵌入式 Jerry”,系统学 Yocto 不迷路&#…...
SQL注入相关知识
一、布尔盲注 1、布尔盲简介 布尔盲注是一种SQL注入攻击技术,用于在无法直接获取数据库查询结果的情况下,通过页面的响应来判断注入语句的真假,从而获取数据库中的敏感信息 2、布尔盲注工作原理 布尔盲注的核心在于利用SQL语句的布尔逻辑…...
Linux网络编程 深入解析Linux TCP:TCP实操,三次握手和四次挥手的底层分析
知识点1【TCP编程概述】 1、TCP的概述 客户端:主动连接服务器,和服务器进行通信 服务器:被动被客户端连接,启动新的线程或进程,服务器客户端(并发服务器) 这里重复TCP和UDP特点 TCP&#x…...
实验4基于神经网络的模式识别实验
实验原理 1. BP学习算法是通过反向学习过程使误差最小,其算法过程从输出节点开始,反向地向第一隐含层(即最接近输入层的隐含层)传播由总误差引起的权值修正。BP网络不仅含有输入节点和输出节点,而且含有一层或多层隐(层)节点。输入信号先向前…...
Rust网络编程实战:全面掌握reqwest库的高级用法
一、开篇导引 1.1 对比Python Requests解释为何reqwest是Rust生态的标杆HTTP客户端 在Python生态中,Requests 库以其简洁易用的API成为了HTTP客户端的首选。它使得开发者能够轻松地发送各种HTTP请求,处理响应,而无需过多关注底层细节。然而…...
【漫话机器学习系列】211.驻点(Stationary Points)
驻点(Stationary Points):理解函数导数为零的关键位置 在数学分析、机器学习优化、物理建模等领域中,驻点(Stationary Points)是一个非常重要的概念。它们是函数图像中“停下来的点”,即导数为…...
图 - 最小生成树算法 - Kruskal - Prim
目录 前言 什么是最小生成树算法 Kruskal 克鲁斯卡尔 Prim 普利姆 结语 前言 在图中一共有两类算法,一种是最短路径,还有一种就是本篇要讲解的最小生成树算法了 其中,最短路径一共有三种,而最小生成树一共有两种ÿ…...
linux kernel irq相关函数详解
在Linux内核驱动开发中,处理中断涉及一系列关键函数,正确使用这些函数对确保驱动的稳定性和性能至关重要。以下是disable_irq、free_irq、platform_get_irq和request_irq等函数的详细解析,涵盖其功能、用法、注意事项及示例代码。 一、核心函…...
聊聊Doris的数据模型,如何用结构化设计解决实时分析难题
传统 OLAP 系统的局限 在大数据实时分析领域,数据模型设计直接决定了系统的查询性能、存储效率与业务适配性。Apache Doris作为新一代MPP分析型数据库,通过独创的多模型融合架构,在业内率先实现了"一份数据支持多种分析范式"的能力…...
[Swift]Xcode模拟器无法请求http接口问题
1.以前偷懒一直是这样设置 <key>NSAppTransportSecurity</key> <dict><key>NSAllowsArbitraryLoads</key><true/> </dict> 现在我在Xcode16.3上,这种设置方式在真机上能请求http(应该是设备开启了开发者模式…...
kafka认证部署
首先启动 zookeeper /home/kafka/bin/zookeeper-server-start.sh /home/kafka/config/zookeeper.properties 创建SCRAM证书 /home/kafka/bin/kafka-configs.sh --zookeeper localhost:2181 --alter --add-config SCRAM-SHA-256[iterations8192,passwordliebe],SCRAM-SHA-512[p…...
基于STM32中断讲解
基于STM32中断讲解 一、NVIC讲解 简介:当一个中断请求到达时,NVIC会确定其优先级并决定是否应该中断当前执行的程序,以便及时响应和处理该中断请求。这种设计有助于提高系统的响应速度和可靠性,特别是在需要处理大量中断请求的实…...
Java 动态代理教程(JDK 动态代理)(以RPC 过程为例)
1. 什么是动态代理 在运行时为指定的接口自动生成代理对象,并通过 invoke 方法增强了这些对象的功能 2. 两个核心组件 java.lang.reflect.Proxy类 这个类提供了方法:newProxyInstance()用来创建一个代理对象 public static Object newProxyInstance(…...
Linux Privilege Escalation: LD_PRELOAD
声明:本文所有操作需在授权环境下进行,严禁非法使用! 0x01 什么是 LD_PRELOAD? LD_PRELOAD 是 Linux 系统中一个特殊的环境变量,它允许用户在程序启动时优先加载自定义的动态链接库(.so 文件)&…...
Java 并发性能优化:线程池的最佳实践
Java 并发性能优化:线程池的最佳实践 在 Java 并发编程的世界里,线程池堪称提高应用性能与稳定性的神器。恰如其分地运用线程池,能让我们在多线程任务调度时游刃有余,既能避免线程频繁创建销毁带来的开销,又能合理管控…...