腾讯广告模型基于"太极"的训练成本优化实践

腾讯广告模型基于"太极"的训练成本优化实践

近年来,大数据加大模型成为了 AI 领域建模的标准范式。在广告场景,大模型由于使用了更多的模型参数,利用更多的训练数据,模型具备了更强的记忆能力和泛化能力,为广告效果向上提升打开了更大的空间。但是大模型在训练过程中所需要的资源也是成倍的增长,存储以及计算上的压力对机器学习平台都是巨大的挑战。

腾讯太极机器学习平台持续探索降本增效方案,在广告离线训练场景利用混合部署资源大大降低了资源成本,每天为腾讯广告提供 50W 核心廉价混合部署资源,帮助腾讯广告离线模型训练资源成本降低 30%,同时通过一系列优化手段使得混部资源稳定性和正常资源持平。

1、引言

近年来, 随着大模型在 NLP 领域横扫各种大数据磅单取得巨大成功之后,大数据加大模型成为了 AI 领域建模的标准范式。搜索、广告、推荐的建模也不例外,动辄千亿参数,上 T 大小的模型成为各大预估场景的标配,大模型能力也已经成为各大科技公司军备竞赛的焦点。

在广告场景,大模型由于使用了更多的模型参数,利用更多的训练数据,模型具备了更强的记忆能力和泛化能力,为广告效果向上提升打开了更大的空间。但是大模型在训练过程中所需要的资源也是成倍的增长,存储以及计算上的压力对机器学习平台都是巨大的挑战。同时平台能够支撑的试验数量直接影响算法迭代效率,如何用更小的成本,提供更多的试验资源,是平台努力的重点方向。

腾讯太极机器学习平台持续探索降本增效方案,在广告离线训练场景利用混合部署资源大大降低了资源成本,每天为腾讯广告提供 50W 核心廉价混合部署资源,帮助腾讯广告离线模型训练资源成本降低 30%,同时通过一系列优化手段使得混部资源稳定性和正常资源持平。

2、​太极机器学习平台介绍

太极机器学习平台,致力于让用户更加聚焦业务AI问题解决和应用,一站式的解决算法工程师在 AI 应用过程中特征处理,模型训练,模型服务等工程问题。目前支持公司内广告,搜索,游戏,腾讯会议,腾讯云等重点业务。

太极广告平台是太极为广告系统设计的集模型训练和在线推理的高性能机器学习平台,平台具备万亿参数模型的训练和推理能力。目前该平台支持腾讯广告召回,粗排,精排数十个模型训练和在线推理;同时太极平台提供一站式特征注册,样本补录,模型训练,模型评估以及上线试验的能力,极大提升了开发者效率。

训练平台:目前模型训练支持 CPU 和 GPU 两种训练模式,利用自研高效算子,混合精度训练,3D 并行等技术,训练速度和业界开源系统相比提升 1 个量级。推理框架:太极自研的 HCF(Heterogeneous Computing Framework) 异构计算框架,通过硬件层,编译层和软件层联合优化,提供极致性能优化。

3、成本优化具体实现

(1)整体方案介绍 

随着太极平台的不断发展,任务数和任务类型日益增多,资源需求也随之增多。为了降本增效,太极平台一方面提升平台性能,提升训练速度;另一方面,我们也寻找更加廉价的资源,以满足不断增长的资源需求。

峰峦——腾讯公司内部云原生大数据平台,利用云原生技术,对公司整个大数据架构进行升级。为满足大数据业务持续增长的资源需求,峰峦引入混部资源,在满足资源需求的同时,又可极大降低资源成本。峰峦针对不同场景下的混部资源,提供了一系列的解决方案,把不稳定的混部资源变成对业务透明的稳定资源。峰峦混部能力支持3类混部资源:

复用在线空闲资源。在线资源因波峰波谷现象、资源使用预估过高和集群资源碎片等原因,导致集群资源利用率不高,有大量的空闲资源。峰峦挖掘这部分临时空闲资源,来运行大数据任务,目前已在在线广告、存储、社交娱乐和游戏等场景混部。离线资源弹性借出。大数据平台有些任务也具有潮汐现象,在白天大数据集群资源使用率低的时候,峰峦支持把部分资源临时弹性借出,待大数据集群高峰到来之前,再拿回这部分资源。这种场景非常适合解决节假日和大促期间在线任务临时需要大量资源问题,峰峦当前已支持春节和 618 等重大节假日。复用算力资源。算力资源是以低优 CVM 方式挖掘云母机的空闲资源,所谓低优 CVM 是指在云母机上启动具有更低 CPU 优先级的 CVM 虚拟机,该虚拟机可实时被其他的虚拟机抢占资源。峰峦基于底层算力提供的资源信息,在调度、过载保护、算力迁移等方面做了大量的优化,目前已有百万核的大数据任务在算力资源上稳定运行。

同时,峰峦引入云原生虚拟集群技术,屏蔽底层混部资源来自不同的城市和地域导致的分散性特点。太极平台直接对接峰峦租户集群,该租户集群对应底层多种混部资源,而且租户集群拥有独立和完整的集群视角,太极平台也可无缝对接。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

图片

(2)资源混部方案

在线空闲资源

峰峦自研了 Caelus 全场景在离线混部方案,通过将在线作业和离线作业混部的方式,充分挖掘在线机器的空闲资源,提升在线机器资源利用率,同时降低离线作业的资源成本。

如下图所示,是 Caelus 的基本架构,各个组件和模块相互配合,从多方面保证了混部的质量。

首先,Caelus 全方位保证了在线作业的服务质量,这也是混部的重要前提之一,比如:通过快速的干扰检测与处理机制,主动感知在线服务质量,及时进行处理,并且支持插件化的扩展方式支持业务的特定干扰检测需求;通过全维度的资源隔离、灵活的资源管理策略等,保证在线服务的高优先级。

其次,Caelus 从多方面保证了离线作业的 SLO,比如:通过混部资源与离线作业画像,为作业匹配合适的资源,避免资源竞争;优化离线作业驱逐策略,优先排序驱逐,支持优雅退出,策略灵活可控。与大数据离线作业大多是短作业(分钟级甚至秒级)的特点不同的是,太极作业的运行时间大多较长(小时级甚至天级)。通过长周期的资源预测与作业画像更好地指导调度,为不同运行时长、不同资源需求的作业找到合适的资源,避免作业运行几小时甚至几天后被驱逐,导致作业状态丢失,浪费资源与时间。当出现需要驱逐离线作业的情况时,会优先通过运行时热迁移,将作业实例从一个机器迁移到另一个机器,并且保持内存状态和IP等不变,作业几乎无影响,极大地提升了作业的 SLO。为了更好地把混部资源利用好,Caelus 还具备其他更多的能力,详见 Caelus 全场景在离线混部方案(​​https://www.php.cn/link/caaeb10544b465034f389991efc90877​​)。

图片

潮汐资源

大数据任务一般是白天任务量相对少,晚上任务量多,峰峦把白天部分空闲的大数据资源出让给太极平台,夜间再回收这部分资源,我们把这种资源称为潮汐资源。潮汐资源的特点是节点上的大数据任务几乎是完全退出的,但节点上还保留着大数据的存储服务 HDFS,运行太极作业时不能影响到 HDFS 服务。太极平台使用潮汐资源时需要和峰峦平台协商一致,峰峦平台在固定时间点提前根据历史数据筛选一批节点,待大数据任务优雅退出后,通知太极平台有新的节点加入,太极平台开始在峰峦租户集群提交更多的任务。借用时间到达前,峰峦通知太极平台部分节点要回收,太极平台有序归还节点。

如下图所示,潮汐资源的挖掘、管理和使用涉及到多个系统的分工配合:

图片

腾讯混元文生视频 腾讯混元文生视频

腾讯发布的AI视频生成大模型技术

腾讯混元文生视频 137 查看详情 腾讯混元文生视频 大数据资源出让系统:该系统会根据各个机器上不同的作业运行情况以及集群过去一段时间的运行数据,基于机器学习算法,找到最合适的待下线的机器节点,以满足特定的资源需求并且对正在运行的作业影响最小,然后禁止调度新的作业到这些节点上,等待节点上正在运行的作业运行完毕,最大限度地降低对大数据作业的影响。Caelus 混部系统:虽然出让系统腾挪出来的机器资源上没有运行大数据作业了,但上面还运行着 HDFS 服务,还提供着数据读写服务。为了保护 HDFS 服务,引入Caelus混部系统,将 HDFS 作为在线服务,通过 Caelus 一系列的在线服务保证手段(如:通过 HDFS 关键指标检测其是否受到影响)保证 HDFS 服务质量不受影响。通过虚拟集群的方式使用潮汐资源:这些出让的机器资源会由峰峦统一管理和调度,并以虚拟集群的方式提供给太极平台使用,提供 K8S 原生接口,这样做到了对上层平台屏蔽底层资源的差异性,保证应用使通过相同的使用方式使用资源。与应用层断点续训打通:潮汐资源在晚上会被回收以用于运行大数据作业,为了减少回收的影响,峰峦和应用层的断点续训功能进行了打通,实现资源切换不中断训练,切换后不影响业务的继续运行。

算力资源

算力资源的特点是给业务呈现的是一个独占的 CVM,对业务方使用来说比较友好。然而,使用算力资源的挑战在于云母机层面低优 CVM 的 CPU 资源会随时被在线 CVM 压制,导致算力资源非常不稳定:

算力机器不稳定:算力机器会因为碎片资源盘整、机房电力不足等原因下线。算力资源优先级低:为了保证正常 CVM 机器的服务质量不受影响,算力资源上的作业优先级最低,会无条件为高优资源上的作业让步,导致性能极不稳定。驱逐频率高:多种原因(算力资源性能不足、磁盘空间不足、磁盘卡住等)会触发主动驱逐 pod,增加了 pod 的失败概率。

为了解决算力资源的不稳定性问题,通过峰峦主控层扩展各项能力,从多方面对算力资源优化,提升算力稳定性:

图片

① 资源画像与预测:探索和搜集各种机器性能指标,生成聚合指标,预测低优 CVM 未来一段时间的可用资源情况,这些信息用于调度器调度 pod 和驱逐组件驱逐 pod,满足 pod 的资源要求。

② 调度优化:为保证太极作业的服务质量,针对作业的需求和资源的特点,在调度策略上有较多的优化,将作业性能提升了 2 倍以上。

同城调度:将 PST 和训练作业调度到同城同机房,将作业实例之间的网络延时降到最低,并且同城内的网络带宽成本也更低,起到了降低成本的作用。单机调度优化:结合资源预测的结果以及 CPU stealtime 等指标,为作业选择性能更佳的 CPU 进行绑核,更好地提升作业性能。分级调度:对所有管理的资源做自动打标和分级,把 Job Manager 等对容灾要求比较高的作业自动调度到相对稳定的资源上。调优调度参数:根据资源资源画像和预测数据,调度器为作业优先挑选性能更优和更稳定的节点。另外为了解决步调不一致导致的梯队过期问题,将同一个作业的实例调度到性能接近的机器

③ 运行时服务质量保证

主动驱逐阶段引入运行时热迁移,做到业务基本无感知:为了应对资源不稳定以及 pod 被驱逐导致应用被 kill 的问题,实现了运行时热迁移,并且提供了多种热迁移策略满足不同场景的需求。目前从线上数据看,使用迁移优先策略时,对于大内存的容器来说,热迁移的中断时间是 10 多秒。我们还实现了与内存大小无关的常数中断时间(恢复优先的策略)。当前每天成功主动迁移 pod 数 2 万多次,且支持跨集群热迁移,极大地降低了驱逐的影响。优化驱逐策略,将驱逐造成的影响降到最低:每台机器每次驱逐时,优先驱逐后启动的 pod,避免影响已启动任;每个任务每次只驱逐一个节点,避免单任务上下游一起被驱逐,造成任务级重启;pod 被驱逐时,和上层 Flink 框架联动,主动告知 Flink,快速单点恢复。

④ 自反馈优化:通过资源画像,周期性的替换掉性能差的机器,并且与底层平台打通,实现对 CVM 的平滑抽离,让峰峦有机会以对业务无影响的方式逐个迁移应用实例,降低对实例的影响。

⑤ 提升 Flink 层的容灾能力,支持单点重启和层级式调度

TM(Task Manager)单点重启能力避免 Task 失败导致整个 DAG 失败,可以更好适配算力抢占式特性;分层调度避免 gang scheduling 造成过长的作业等待,并且可以避免 TM Pod 过度申请的浪费。

(3)应用层优化方案

业务容错

离线训练任务要使用廉价资源一个大前提就是不能影响资源上原有任务的正常运行,所以混部资源有以下几个关键挑战:

混部资源大多是临时资源,会频繁下线;混部资源会无条件为高优资源让步,导致机器性能极不稳定;混部资源的自动驱逐机制也极大加大了节点和 pod 的失败概率。

图片

为了保证在混部资源上任务可以稳定运行,平台使用三级容错策略,具体解决方案如下:

热迁移技术:在 Task Manager 将要发生驱逐前,提前感知,把相应的 Task Manager 迁移到另外一个 pod 上;同时利用内存压缩,流式并发,跨集群热迁移等能力持续优化热迁移成功率。Task Manager 重启:当任务当中一个 Task Manager 由于异常或者驱逐等原因导致运行失败之后,整个任务不会直接失败退出,而是先保存该 Task Manager 的状态,然后重新启动该 Task Manager,从而降低整个任务失败的概率。任务 Full Recovery: 当一个任务的由于 Flink 状态异常,处于无法恢复状态时,会触发 Job Manager 的重启,为了保证 Job Manager 的稳定性,平台把 Job Manager 部署在稳定性较好的独立资源上,保证任务状态正常。断点续训:如果前面几个容错策略都失败了,平台会基于历史的某一个 ckpt 重新启动任务。

通过业务层的容错,运行在混部资源上的任务稳定性从最初的不到 90% 提升到最终的 99.5%,基本和普通独占资源上任务稳定性持平。

任务潮汐调度

针对潮汐资源要求离线训练任务只能白天使用,晚上需要提供给在线业务使用,所以太极平台需要在白天时根据资源到位情况,自动启动训练任务;在晚上对任务做冷备,同时停止对应的训练任务。同时通过任务管理队列来管理每个任务调度的优先级,对于晚上新启动的任务会自动进入排队状态,等第二天早上再启动新的任务。

图片

核心挑战:

潮汐现象:资源白天的时候可以提供给离线任务使用,晚上的时候需要回收。资源动态变化:在白天时,资源也是不稳定的,资源会随时发生变化,一般是早上的时候资源比较少,然后资源逐渐增加,到晚上的时候资源到达高峰值。

解决方案:

资源感知的调度策略:早上在资源逐步增加的过程中,潮汐调度服务需要感知资源变化,同时跟进资源情况来启动待继续训练的任务。模型自动备份能力:在晚上资源回收前,需要把当前平台上运行的所有任务逐步做备份,这对于平台的存储和带宽压力非常大,因为平台上有几百个任务,每个任务冷备大小从几百 G 到数 T 大小不等,如果在同一时间做冷备的话需要在短时间传输和存储数百 T的数据,对于存储和网络 都是巨大的挑战;所以我们需要有一套合理的调度策略,逐步做模型的存储。智能资源调度能力:潮汐调度和传统训练相比,每个任务在晚上资源回收时的模型备份和每天早上任务新启动的时候的开销是额外开销,为了降低这部分额外开销,我们调度时需要评估哪些任务在当天就能跑完,哪些任务需要跑多天,对于当天能跑完的任务,我们优先给它分配更多资源,保证当天任务运行完成。

通过这些优化能够保证任务能稳定在潮汐资源上运行,对于业务层基本无感知。同时任务的运行速度不会受太大影响,由于任务启停调度带来的额外开销控制在 10% 以内。

4、在线效果和未来展望

太极在离线混布优化方案在腾讯广告场景落地,每天为腾讯广告离线模型调研训练提供30W 核全天候的混合部署资源,20W 核潮汐资源,支持广告召回,粗排,精排多场景模型训练。在资源成本上,相同计算量任务上,混合部署资源成本是普通资源的 70%。经过优化系统稳定性和物理集群任务成功率基本持平。

后续一方面我们会继续加大混合算力资源的使用,尤其会加大混合算力资源的应用;另一方面,公司在线业务在 GPU 化,所以在混合资源应用上,除了传统的 CPU 资源之外,也会尝试对在线 GPU 资源在离线训练时使用。

今天的分享就到这里,谢谢大家。

以上就是腾讯广告模型基于”太极”的训练成本优化实践的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/558889.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
PHP 对象关系映射与数据库抽象层对 ORM 和 SQL 的权衡
上一篇 2025年11月10日 00:03:01
iPhone17Pro和iPhone16Pro区别在哪?性能提升与新功能深度解析
下一篇 2025年11月10日 00:03:15

相关推荐

  • C++怎么使用C++17的并行算法库_C++ std::execution与多核性能优化

    c++kquote>C++17通过std::execution策略引入并行算法支持,需编译器(如GCC 8+)和线程库(如TBB)配合;提供seq、par、par_unseq三种策略控制执行模式;可用于sort、for_each等算法提升大数据性能,但需避免数据竞争,推荐使用reduce等安全…

    2026年5月10日
    000
  • PHP动态网页数据库备份恢复_PHP动态网页MySQL数据库备份教程

    答案:PHP动态网页的MySQL数据库备份与恢复需通过定期导出SQL文件并安全存储来保障数据安全,核心方法包括使用mysqldump命令行工具实现高效灵活的自动化备份,利用phpMyAdmin图形化工具进行手动导出导入以降低操作门槛,以及通过PHP脚本调用系统命令将备份过程集成到应用中;恢复时可采用…

    2026年5月10日
    000
  • Python Pandas:高效合并多工作簿多工作表 Excel 数据

    本教程详细指导如何使用 Python Pandas 库高效合并来自多个 Excel 文件中指定工作表的数据。文章将解释如何遍历文件目录、正确加载 Excel 文件、识别并解析特定工作表,并将来自不同文件的同名工作表数据智能地整合到一个 Pandas DataFrame 字典中,同时提供完整的示例代码…

    2026年5月10日
    000
  • 如何优化JavaScript代码的性能以避免运行时瓶颈?

    优化JavaScript性能需减少DOM操作,通过缓存查询、使用DocumentFragment和合并样式修改来降低重排重绘;2. 采用事件委托减少内存占用并提升绑定效率;3. 拆分长任务,利用requestIdleCallback、Web Worker和requestAnimationFrame避…

    2026年5月10日
    000
  • Golang gRPC消息压缩与传输优化

    启用Gzip压缩、配置Keepalive长连接、采用流式传输可显著提升gRPC性能。在Go中通过grpc.RPCCompressor注册Gzip,客户端使用grpc.UseCompressor启用压缩;结合grpc.WithKeepaliveParams保持连接活跃,避免频繁重连;对大数据使用流式R…

    2026年5月10日
    000
  • php数据库数据压缩处理_php数据库存储空间优化方法

    可通过启用MySQL行压缩、PHP层数据压缩、优化字段结构及分表归档策略减少存储占用。具体步骤:1. 使用InnoDB压缩表并设置KEY_BLOCK_SIZE;2. PHP中用gzcompress压缩大数据字段,存为BLOB;3. 选用更小数据类型如TINYINT,避免冗余TEXT;4. 将历史数据…

    2026年5月10日
    000
  • Go语言内存管理深度解析:理解垃圾回收与内存归还机制

    本文深入探讨Go语言的内存管理机制,特别是其基于标记-清除(mark-and-sweep)的垃圾回收器。我们将解析Go运行时如何通过sysmon goroutine周期性触发GC,并介绍forc++egcperiod和scavengelimit等关键参数对内存回收的影响。通过GOGCTRACE环境变…

    2026年5月10日
    000
  • Web Workers:多线程编程在前端的应用

    Web Workers通过后台线程执行耗时任务,避免主线程阻塞,提升页面流畅性;它适用于大数据处理、图像计算等场景,但需注意通信开销与调试复杂度。 Web Workers 是前端领域一个非常重要的概念,它允许你在浏览器后台运行脚本,而不会阻塞主线程。简单来说,它为JavaScript带来了“多线程”…

    2026年5月10日
    000
  • 怎样使用Node.js流处理数据?

    Node.js流处理通过可读、可写、双工和转换流实现高效数据处理,利用pipe()方法连接流并自动管理背压,结合stream.pipeline进行错误处理,适用于大文件、网络通信等场景,提升内存和时间效率。 在Node.js中处理数据,尤其当面对大量信息时,直接把所有内容加载到内存里往往不是一个好主…

    2026年5月10日
    100
  • 优化JavaScript大型数组:高效重构map与filter以获取唯一值

    本文探讨了在处理大型javascript数组时,如何高效地结合`map`和`filter`操作以获取唯一值。针对传统`filter`结合`indexof`或`reduce`结合`includes`在数据量巨大时出现的性能瓶颈,本文推荐使用内置的`set`数据结构,它能以显著提升的效率解决重复值问题,…

    2026年5月10日
    000
  • 如何利用Web Workers提升前端应用的性能与响应能力?

    如何利用Web Workers提升前端应用的性能与响应能力?如何利用Web Workers提升前端应用的性能与响应能力?如何利用Web Workers提升前端应用的性能与响应能力?如何利用Web Workers提升前端应用的性能与响应能力?

    Web Workers通过将耗时任务移至后台线程避免主线程阻塞,提升前端性能。它基于独立上下文运行JavaScript,不访问DOM,通过postMessage通信,适用于大数据处理、加密解压等计算密集型任务。创建Worker实例并加载单独JS文件即可实现异步执行,如数组排序不卡页面。需注意结构化克…

    2026年5月10日 用户投稿
    000
  • 高效计算区间内可整除数值的数量

    本文探讨了如何在指定范围 `[0, max)` 内高效地计算能被给定 `divisor` 整除的数值数量。我们将对比迭代循环和数学公式两种方法,并详细解释数学公式的推导过程,展示其在性能上的显著优势,尤其适用于处理大规模数据,从而提供一个更优的解决方案。 在编程实践中,我们经常需要解决一类问题:统计…

    2026年5月10日
    300
  • 合约交易中的杠杆倍数怎么选?高倍杠杆的收益与爆仓风险

    选择合适杠杆需结合风险承受力与市场状况,高倍杠杆虽放大收益但也显著增加爆仓风险。一、评估个人风险承受能力:投资者应根据财务状况和心理承受力确定杠杆水平,低风险偏好者应避免高杠杆;1、计算可用于交易的闲置资金,确保亏损不影响正常生活;2、设定单笔交易最大亏损比例,如不超过总资金的2%;3、在模拟环境中…

    2026年5月10日
    100
  • typescript用来干嘛_typescript的作用

    TypeScript 是一种用于构建大型复杂应用程序的开源编程语言,它扩展了 JavaScript 的功能,具有以下作用:类型系统:编译时检查类型错误,提高代码可靠性。面向对象编程特性:支持类、接口、抽象类,增强代码组织性和维护性。模块系统:分解程序为可重用模块,提升可维护性和可扩展性。全面的类型推…

    2026年5月10日
    000
  • 什么是数据库的列存储索引?在C#中如何用于分析查询?

    列存储索引按列存储数据,提升分析查询性能。其优势包括高压缩率、快速聚合和批处理模式。在SQL Server中可创建非聚集或聚集列存储索引,如CREATE NONCLUSTERED COLUMNSTORE INDEX IX_ColumnStore ON Sales.OrderDetails(Produ…

    2026年5月10日
    200
  • Golang值类型传递与指针传递比较

    Go语言中函数参数传递分为值传递和指针传递。值传递复制变量副本,函数内修改不影响原值,适用于小型数据类型如int、string等;示例中modifyValue函数对参数x的修改未影响外部变量a。指针传递通过传递地址实现共享内存,可修改原始数据,适合大型结构体或需变更原值场景;示例中modifyPoi…

    2026年5月10日
    000
  • php数据库游标使用教程_php数据库逐行处理数据方法

    使用PDO和MySQLi的游标功能可实现数据库大数据量下的低内存逐行处理。首先通过PDO设置PDO::MYSQL_ATTR_USE_BUFFERED_QUERY为false,结合fetch()方法逐行读取;或使用MySQLi的query()配合MYSQLI_USE_RESULT模式执行未缓冲查询,再…

    2026年5月10日
    000
  • C++STL查找算法find和binary_search使用

    std::find适用于无序数据的线性查找,返回元素位置,时间复杂度O(N);std::binary_search要求数据有序,仅判断存在性,时间复杂度O(log N),效率更高。 在C++ STL中, std::find 和 std::binary_search 是两种核心的查找算法,它们各自适用…

    2026年5月10日
    100
  • 币圈牛市来了怎么操作?最大化收益的逃顶与建仓技巧

    牛市初期信号包括比特币周线站稳20周期均线、链上活跃地址增加、主流币交易量放大且不破前低、美元指数下行;2. 分批建仓策略建议将资金分五份,首仓不超20%,回调5%-8%逐步加仓,优先配置BTC与ETH,山寨币单品种不超总仓位10%;3. 逃顶时机可借助RSI超买、MACD顶背离、成交量萎缩及大户转…

    2026年5月10日
    000
  • JavaScript中的数组去重有哪些高效算法?

    使用Set去重适用于基本类型,代码简洁性能好;Map适合对象数组按属性去重,灵活但内存占用高;双指针法用于已排序数组,空间复杂度低。 JavaScript中数组去重的高效方法取决于数据类型和性能需求。以下是几种常用且高效的实现方式。 使用 Set 去重(推荐) ES6 引入的 Set 数据结构天然支…

    2026年5月10日
    000

发表回复

登录后才能评论
关注微信