循环加速最高达 3 倍!DolphinDB 动态脚本优化免费开启,零代码改造即可投入生产

在量化投研与实时风控场景中,逐笔数据处理、因子计算、累计指标统计等任务往往涉及大量循环、条件分支和自定义函数调用。当策略逻辑变得更加复杂,脚本运行时间随之变长;如果能够在不改动业务逻辑的前提下减少这类执行开销,就能让计算过程更高效、稳定,帮助团队捕捉转瞬即逝的市场机会。

因此,DolphinDB 推出了动态脚本优化机制。它在不改变业务逻辑的前提下,通过优化解释器的执行路径,循环与分支密集型脚本的运行速度提升 2-3.3 倍。

完全免费,社区版可用:动态脚本优化内置于 DolphinDB 2.00.18 & 3.00.5 及以上版本,无论是企业版还是社区版均可一键开启,无需额外授权费用。

为什么需要动态脚本优化?

传统脚本引擎在执行循环体或条件分支时,往往需要反复解析变量作用域和类型,产生大量额外开销;在大规模数据遍历、状态类指标逐笔更新等计算密集或逻辑密集场景中,这类开销会更加明显。

而 DolphinDB 动态脚本优化会根据脚本实际执行情况动态调整执行路径,减少冗余解析,让计算资源真正用在业务逻辑上。并且,脚本优化仅影响当前会话,便于在调试、性能对比和灰度验证等场景中灵活使用。

启用方式:一行代码,会话级生效

你无需修改已有脚本结构,只需在当前会话中执行一行函数即可开启:

enableDynamicScriptOptimization()

执行后,当前会话后续提交的所有脚本将自动进行优化加速。若需关闭,同样简单:

disableDynamicScriptOptimization()

这种会话级隔离的设计非常贴心——你可以在测试会话中验证效果,确认无误后再通过全局配置为生产环境的新建会话统一开启。

如需让所有新建会话默认启用优化,在服务节点的配置文件中添加:

enableDynamicScriptOptimization=true

重启节点后即全局生效。

完整使用示例

以最常见的循环内调用自定义函数为例:

// 开启当前会话的优化
enableDynamicScriptOptimization()

// 循环内调用自定义函数
def normalizePrice(x){ return x * 1.01 }
def calcSignal(x){ return x > 100.0 }
def calcScore(x){ return x * x }

n = 1000000
score = 0.0
for(i in 0..(n-1)){
    price = normalizePrice(double(i))
    signal = calcSignal(price)
    if(signal){ score += calcScore(price) }
}
score

// 需要时关闭当前会话的优化
disableDynamicScriptOptimization()

哪些场景收益最大?

我们基于 3 台集群节点,在 100 万次循环及 50 万条逐笔数据上做了 11 个场景的完整测试,测试环境如下:

项目配置
Server 版本3.00.6
CPU类型Intel® Xeon® Silver 4314 CPU @ 2.40GHz
集群拓扑3 个 controller、3 个 datanode、3 个 computenode 和 3 个 agent
数据/计算节点资源每个节点内存上限 256 GB,workerNum=64

每个场景均使用确定性输入,并校验开启和关闭优化后的计算结果一致。以下是部分典型场景的耗时对比:

场景开启优化前开启优化后性能提升
调用链封装在函数体内(100 万次)0.93s0.28s3.3 倍
循环内并列调用 3 个函数(100 万次)1.27s0.42s3.0 倍
单层自定义函数调用循环(100 万次)0.81s0.35s2.3 倍
lambda 表达式循环调用(100 万次)0.55s0.27s2.0 倍
VWAP 累计计算(50 万条)0.27s0.18s1.5 倍
逐条条件判断因子计算(50 万条)0.28s0.22s1.3 倍
矩阵双重循环(1000×1000)0.42s0.32s1.3 倍
for 循环密集计算(100 万次)0.34s0.30s1.1 倍

从场景测试中我们可以看到,循环体内频繁调用自定义函数或 lambda、嵌套多层 if/else 分支、涉及状态累计的逐笔更新计算(如 VWAP)。这类场景优化收益最为显著,普遍获得 2–3 倍加速。

而纯算术运算密集型脚本(如 for 循环内仅执行简单四则运算),这类场景 DolphinDB 解释器本身已经能较高效地执行,动态优化空间相对有限。

因此,动态优化并非必须用于所有脚本。对于函数调用密集、控制流复杂或高频执行的任务,建议优先开启;对于简单纯数值循环,开启通常不会带来负面影响,但投入产出比不高,可根据实际性能测试结果决定。

兼容性说明

优化机制对绝大多数脚本透明兼容。唯一需要留意的是循环内 if 分支中首次赋值的变量——如果该变量在分支外继续使用,建议在循环外预先声明,这是一种良好的编程习惯:

// 推荐写法:循环外预先声明
a = 0
for(i in 1..10){
    if(true){ a = 1 }
    res = a + 1
}

常见问题

Q1:当前会话开启后,如何确认脚本优化状态?
文档中有自定义函数 isScriptOptEnabled()。它利用已说明的变量作用域差异进行探测,返回 true 表示当前会话已开启优化。具体函数定义可见阅读原文跳转的教程链接。

Q2:为什么只影响当前会话,仍需要管理员权限?
函数的作用范围是当前会话,但服务端将修改会话执行策略的操作限定为管理员。使用配置项为新建会话设置初始状态后,普通用户可以在其会话中执行优化后的脚本。

Q3:如何让新建会话默认开启优化?
在服务配置中设置 enableDynamicScriptOptimization=true,重启对应服务节点后,新建会话将按配置项初始化。

Q4:while 循环可以使用吗?
可以。DolphinDB 3.00.6 支持 while 语句;本教程的性能测试已覆盖 100 万次 while 循环场景。

Q5:如果在优化过程中会话超时断开了,优化会失效吗?

是的,会话超时断开后临时配置会失效,重连后执行 enableDynamicScriptOptimization() 即可开启优化。

立即体验

动态脚本优化已在 DolphinDB 2.00.18 & 3.00.5 及以上版本中提供。

  • 快速上手:在你的会话中执行 enableDynamicScriptOptimization(),即刻感受加速效果。

📖 想了解完整的适配指南、性能测试脚本和全局配置说明? 欢迎点击 在 DolphinDB 中启用动态脚本优化,查看官网详细教程,获取全部 11 个场景的测试脚本和校验结果。

让每一微秒的计算都物尽其用,DolphinDB 动态脚本优化,为高性能量化计算而生。

相关推荐

V3.00.6 & V2.00.19 正式发布!DolphinX 重磅上线,打造企业级 Agent 开发与治理平台

V3.00.6 & V2.00.19 正式发布!DolphinX 重磅上线,打造企业级 Agent 开发与治理平台

DolphinDB智臾科技 365

股基归因干货分享丨基于 DolphinDB 的 Brinson 绩效归因模型实践

Brinson 模型是一种基于持仓数据对基金业绩进行归因的工具,能够对单期或多期的基金超额收益来源进行详细分解。它通过分析基金具体的持仓信息,将基金当期的收益分解为不同的效应,从而对组合的损益来源有更明确的认识。因此,本文实现了一个更为通用的 Brinson 模型,可用于混合型基金中,用户可以灵活地选择归因方式,单期或者多期归因,以及每个大类资产组合中的归因信息。

DolphinDB智臾科技 2461

新版本发布丨向企业级实时计算平台迈进!支持存算分离、FICC 函数库大更新!

DolphinDB 原有的时序聚合引擎支持用户指定窗口和步长,在计算时通过下一个窗口的首条数据触发前一个窗口的计算。然而,在某些场景下(例如由 1 分钟 K 线合成 5 分钟 K 线),这一方式可能会带来较高的计算延迟。为解决这一问题,最新版本引入了,用户可以通过参数 timeCutPoints。

DolphinDB智臾科技 1585

CEP 复杂事件处理引擎进阶:股票中高频 CTA 策略实现与并行回测

今天将为大家介绍如何基于 CEP 引擎实现一个股票 CTA 策略,并使用真实市场数据进行回测 ,同时实现股票技术指标和买卖信号的实时可视化。此外,我们能还将进一步介绍如何在 CEP 引擎中实现并行的参数寻优,以最大程度地接近真实的使用场景。快点击学习吧~!

DolphinDB智臾科技 1943

基于车联网大数据平台的用户驾驶习惯行为画像分析

车联网系统中,利用大数据对驾驶行为进行研究,有助于了解驾驶员的特征,并提供优化建议。本文从用户驾驶行程中的速度偏好、驾驶风格、熟练度三个方面描述用户画像,并介绍如何使用 DolphinDB 基于 K-means 算法的聚类模型生成用户画像与个性化标签,完成数据存储、处理、特征提取、模型构建及预测等全过程。

DolphinDB智臾科技 4016

QuantLib 之外,衍生品定价还能怎么选?DolphinDB Monte Carlo + PDE 工具实测

DolphinDB 全新上线 Monte Carlo 与 pdeSolver 两类通用定价工具

DolphinDB智臾科技 250

金融数据接入又快一步:EasyTushare 模块正式上线

DolphinDB 推出 EasyTushare 模块,将 Tushare 与 DolphinDB 连接起来,把数据初始化、建表、批量导入和定时更新等流程统一起来。模块覆盖股票、ETF、公募基金、期货、债券、指数、期权、外汇、黄金现货及大模型语料 10 大类数据源,并提供宏观经济数据支持,一次初始化、持续更新,让金融数据更快进入查询、计算与量化研究。

DolphinDB智臾科技 118

插件上新 | 让 Excel 数据更顺畅地接入 DolphinDB

DolphinDB Excel 插件让业务数据以 Excel 形式交付时可直接标准化接入,为后续数据处理和计算提供统一入口,同时减少重复开发文件解析、字段映射和类型转换逻辑。

DolphinDB智臾科技 266

告别繁琐解析!BinaryTcp 模块实现沪深 Level‑1 行情接收‑解析‑落库一站式能力

独立开发者张锦程打造的 BinaryTcp 模块正式发布到 DolphinDB 插件市场,将沪深 Level-1 行情接入链路完整封装:二进制报文解析、响应式快照空值填充、流表处理、DFS 分布式持久化全链路闭环,内置断线自动重连与报文录制回放,配置网关参数调用 connect() 即可跑通。

DolphinDB智臾科技 341

10GB 数据 12 秒入库,计算比 Python 快 71 倍!DolphinDB 新能源场景实测曝光

10GB 数据 12 秒入库,计算比 Python 快 71 倍!DolphinDB 新能源场景实测曝光

DolphinDB智臾科技 318

数据库自带 Agent:10 分钟搭起 DolphinX-Web 数据入库与分析框架

本文以核电模拟数据为例,展示如何用 DolphinX-Web 在约 10 分钟内搭起可运行的数据入库与分析框架:通过自然语言完成建库建表、CSV 批量导入、字段注释补全,并实现指标查询、多表关联分析与趋势绘图,全程无需手写 SQL。

DolphinDB智臾科技 281

告别多系统拼凑,DolphinDB 如何一站式搞定多资产高频策略回测

案例基于 DolphinDB 3.00.6、Backtest 插件与 MatchingEngineSimulator 插件运行,涵盖 initialize、beforeTrading、onSnapshot、onOrder、onTrade、afterTrading、finalize 等策略回调函数,支持智能移仓、Delt

DolphinDB智臾科技 255

插件上新 | 让企业文档真正成为 AI 数据,DolphinDB 如何补齐 RAG 数据链路

DocParser 负责文档解析,ModelInference 负责模型推理与向量化。两者结合,可以进一步打通从文档到数据、从数据到模型的处理链路。

DolphinDB智臾科技 112

客户案例 | 毫秒级盘中估值!华安基金携手 DolphinDB 打造公募 FOF 实时净值计算解决方案

华安基金联合 DolphinDB 打造一体化实时净值计算方案,支持交易所行情直连、盘前底仓准备、盘中流式计算与结果落库全流程,在高频行情驱动下支撑上万只基金实时净值更新,平均响应延时小于 10 毫秒,实现极致性能与全栈自主可控。

DolphinDB智臾科技 312

存算一体、云边协同:DolphinDB 为石油化工行业设备监测打造高效数据底座

浙江微科机电基于 DolphinDB 构建工业设备监测系统,在百亿级数据规模下实现毫秒级振动异常告警,内置窗口计算函数与 Signal 插件让傅里叶变换等信号处理无需从零开发。

DolphinDB智臾科技 282

持续升级!DolphinDB 全面完成银河麒麟 V11 兼容性认证

DolphinDB V2.0、V3.0 完成与银河麒麟高级服务器操作系统 V11 的兼容性测试并获适配认证

DolphinDB智臾科技 153

用 AI Agent 构建行情中心:DolphinDB DolphinX 零代码数据接入实战

本文以历史行情导入和 CTP 实时行情接入两个场景为例,拆解 DolphinX 行情中心 Agent 的架构设计与实战流程,看它如何把数据工程从写代码调试变成自然语言交互。

DolphinDB智臾科技 311

从公里级到百米级,海量气象数据如何高效存储与分析?

气象数据越来越精细,持续积累的历史数据也很容易进入 TB、PB 级规模,海量的气象数据如何存储与分析?

DolphinDB智臾科技 211

南方电网 SCADA 项目:无人值守时代,边缘端振动监测需要什么样的数据底座?

DolphinDB 支撑南方电网主变振动监测项目,在 ARM 边缘工控机实现 8~50kHz 高频信号实时计算,构建云边协同体系,毫秒级故障预警,有效降低硬件与运维成本。

DolphinDB智臾科技 230

告别第三方转发!DolphinDB 沪深交易所官方直连插件重磅上线

DolphinDB 在已有第三方极速行情通道的基础上,新增五大插件,进一步覆盖上交所官方直连、深交所官方直连、北交所 DBF 自动化接入、外盘期货及云数据仓库导入五大方向,为用户构建一套面向新市场规则的行情数据底座。

DolphinDB智臾科技 36

Text-to-SQL 已过时?DolphinX 正在重新定义 AI 问数

在推动工业场景 AI Agent 能力落地过程中,DolphinDB 选择智能问数作为具体切入点,基于 DolphinX 做了一个智能问数 Agent,尝试探索一套面向企业数据的智能问数链路应该如何构建。

DolphinDB智臾科技 149

传统运维能否被 AI 改写?基于 Intel Berkeley 实验室数据的 DolphinDB MCP 实战

以 Intel Berkeley 实验室的 54 个真实传感器数据集为例,从设备注册,到实时监控、健康评分、预测维护,再到故障诊断和设备退役,完整拆解如何使用 DolphinDB MCP Server,将一套设备全生命周期管理能力,封装为标准化的 MCP Tool。

DolphinDB智臾科技 325

不懂复杂金融数据,也能让 AI 做投研:DolphinDB 股票分析 MCP 已开源

DolphinDB Stock MCP Server,一款面向股票智能投研的 AI 金融工具包,涵盖了指标选股、单因子评价、多因子选股策略回测等核心能力,能够借助 AI 大模型能力,降低股票研究与量化分析中专业金融数据的处理门槛。

DolphinDB智臾科技 281

一个人抵一个团队的时代,企业级 AI Agent 还需要做什么?

对于企业而言,真正需要的,不是一个“会聊天”的 Agent,而是一套能被多用户、多场景复用,且权限清晰、过程可审计、成本可控制的 Agent 能力体系。

DolphinDB智臾科技 321

DolphinDB MCP 助力工业 AI 真正进入生产系统

DolphinDB 依照 MCP 标准原生开发了 DolphinDB MCP Server,提供 Tool、Prompt 及其管理能力,让 AI 不再只是停留在问答界面,而是能够安全地调用企业能力、参与真实业务闭环。

DolphinDB智臾科技 353

告别手写代码:Trae + DolphinDB Skill,10 分钟造一个懂期货的投研 Agent

本文以搭建 CTA 投研 Agent 工作流为例,介绍如何从工作区、系统提示词、数据模型和任务工作流四个层面构建 CTA 投研 Agent,并展示其在简单策略和复杂截面 CTA 策略中的实际执行效果。

DolphinDB智臾科技 202

从 EMQX 到 DolphinDB 数据接入实操:百万 JSON 消息如何秒级入库

本文将代码详细拆解,从 MQTT 消息订阅、JSON 数据解析,到分布式入库与查询验证,逐步展示 DolphinDB 如何与 EMQX 协同,构建一条极简、高效、可扩展的工业数据接入与分析链路。

DolphinDB智臾科技 367

AI Coding 蜜月期之后,我们重新思考了 AI 提效

未来的竞争,不属于写代码最快的 AI,而属于工程环境更好、基础设施更强、业务理解更深的人。

DolphinDB智臾科技 228

ORCA:定义一张流图,让实时行情“跑”起来

实时计算平台 ORCA,提供将链路从“设计图”落地为“可运行系统”的能力,开发者只需提交一张流图并做少量配置,ORCA 便可围绕这张图完成编排、调度与容错管理,让数据持续流动并实时产出结果。

DolphinDB智臾科技 308

从行情到模拟成交:DolphinDB 如何打通交易执行链路

DolphinDB 推出 SnapTradeStream 模块,把从行情到成交的关键流程组织成统一的流计算链路。

DolphinDB智臾科技 304
上一篇: 传统运维能否被 AI 改写?基于 Intel Berkeley 实验室数据的 DolphinDB MCP 实战
下一篇: Text-to-SQL 已过时?DolphinX 正在重新定义 AI 问数
DolphinDB智臾科技
DolphinDB智臾科技 企业官方账号 企业官方账号
博客等级 码龄9年 2475粉丝 596原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值