利用排列组合法实现TOPN路径计算

天翼云开发者社区
• 阅读 1

本文分享自天翼云开发者社区《利用排列组合法实现TOPN路径计算》.作者:罗****斌

1 背景

在进行TOPN选路性能摸底时,发现其在100*100节点级别以上的两两互相探测情况下的选路性能不太理想,整体压测后分析发现,选路算法部分是整个处理流程的瓶颈点。对此,我分析了下目前计算TOPN路径所使用的深度优先遍历算法,为了收敛计算量,我们添加了路径深度来控制计算量,效果是显著的,这是一期的优化方案。但是在此过程中为了控制路径的深度也产生大量的回溯逻辑,计算量会比理论值多出不少,所以一定程度上产生了性能上的损耗。如果我们继续在深度优先遍历算法上进行优化,其效果不会太明显(深度优先遍历是使用穷举法深入相邻可达点,直到不可达时再回溯上一个访问点)

2 方案

从以上分析得知,在深度优先遍历方向继续优化空间有限,我们需要探寻另一种可用于求解TOPN路径的算法。从路径结构上分析可知,其首尾固定,变动的只是在中间节点上,我们可以通过选取中间节点个数来控制路径深度。因为经过中间节点的顺序不同,产生的路径也不一样,那么我们在选取中间节点的同时也要对其进行全排序。那么这个求解TOPN路径问题就转化为组合排列问题,只要实现排列组合算法就能满足我们的需求,其不存在空跑的回溯计算量,理论计算量与实际一致,损耗更小

此次优化将更换路径计算算法,我们将从以下两方面进行优化:

一 性能优化点

1)TOPN路径计算由之前的深度优先遍历改为通过 组合排列 方式求解

2)路径中各点构成的有向图使用 二维数组 表示可达性(之前是哈希map),提高读写速度

3)组合排列算法优化,清理冗余逻辑,减少遍历次数,减少拷贝次数,并预先分配内存防止自动扩容等(提升2倍以上)

4)迪杰斯特拉和深度遍历底层改造为使用二维数组获取两点之间的权重值(之前是哈希map)

5)使用高性能json库提升速度

二 内存优化点

1)减少不必要的数据冗余拷贝,减少数据的使用空间

2)减少map使用,大量map在gc时情况不太理想

点赞
收藏
评论区
推荐文章
HPC调度基础:slurm集群的部署
本文分享自天翼云开发者社区@《》,作者:才开始学技术的小白0.引言HPC(HighPerformanceComputing,以下简称HPC)是一个领域,试图在任何时间点和技术上对于相关技术、方法和应用等多种方面实现最大的计算能力;换而言之其目的就是求解一类
天翼云CDN全站加速产品对websocket协议的支持
天翼云全站加速产品支持对webscoket协议和http/https协议可同时加速,即同一个域名可以既有http/https协议,又有websocket加速,您无需拆分域名,使用全站加速产品就可以实现对域名下http/https协议的应用和websocket协议的应用同时加速。全站加速节点会自动识别客户端与全站加速边缘节点通信使用的协议,自动切换协议。通常情况下,websocket协议的应用多为动态业务,对实时性要求很高,全站加速的动态探测选路能力可以为websocket应用选择最快的回源路径,提升websocket业务的访问效果。
玩转云端|演唱会一票难求?快用天翼云边缘安全加速平台AccessOne!
天翼云AccessOne基于覆盖全球的海量边缘节点,能够智能分离动静态内容,通过智能负载均衡技术,让静态内容在边缘节点进行缓存,保障用户就近接入边缘节点获取资源;对于动态内容,可通过智能选路、协议优化等技术,选择最/佳链路回源,同时提供协议优化、链路优化等多项优化技术,大大缩短内容传输距离和时间,加速抢购过程中的数据流转,有效降低延迟和抖动,保障用户交易。
ISCSI数据盘的多路径配置
本文分享自天翼云开发者社区《》,作者:wn•多路径出现的背景多路径,就是说,主机到存储可以有多条路径可以选择。主机到存储之间的IO由多条路径可以选择。每个主机到所对应的存储可以经过几条不同的路径,如果是同时使用的话,I/O流量如何分配?其中一条路径坏掉了,
云备份技术解析:云容灾 CT-CDR 关键技术介绍
本文分享自天翼云开发者社区《》,作者:沈军1、CDP存储快照,实现秒级RPO(1)CDP技术:云容灾CTCDR(CloudDisasterRecovery)采用CDP(ContinueDataProtection)技术,能够在IO级别进行复制能极大的提升
OLAP分析数据库适用场景及主流产品对比
本文分享自天翼云开发者社区《》,作者:刘鑫随着企业数字化程度不断提升,数据分析场景越老越丰富,企业在以下几种场景下可能需要使用OLAP(OnlineAnalyticalProcessing,在线分析处理)分析数据库来开展数据分析工作:1.复杂的数据分析:当
京东云开发者 京东云开发者
2个月前
线上机器CPU占用高分析实践
1.线程运行状态1.1total1.2timed\waiting通过上图我们可以发现timed\waiting的topN线程都是查询国补资质的。1.3waiting通过上图我们可以发现waiting的topN线程都是查询国补活动的。1.4线程分析下面我们分
一种CDN动态加速首次访问加速方法
本文分享自天翼云开发者社区《》.作者:蒋辉具体方案如下:1.对于全站加速,节点内部的探测采用的非请求触发式探测(已实现),在首次访问时,使用配置的顶层父方案作为回源节点回源,具体如下:masterparentarea:"area.parent1st.ctc
一种智能调度分布式路径计算解决方案
本文分享自天翼云开发者社区《》.作者:蒋辉背景技术传统的CDN动态加载智能路由系统对用户动态请求,主要通过探测服务器主动发起周期性的探测请求,探测CDN中转节点和源站的可用性及网络性能,根据探测结果选择最优的回源链路;然而,在获取到探测结果后,为了减少探测
动态加速中优化失败路径反馈的方法
本文分享自天翼云开发者社区《》.作者:尹聪1背景动态探测是周期性进行的,全局默认2分钟,支持分频道设置探测频率(最低1s探测频率),这就决定了选路也是周期性的,在两次最优路径更新的时间间隔内,如果回源链路发生波动,则只能依靠失败后重试来解决,如果域名并发量
天翼云开发者社区
天翼云开发者社区
Lv1
天翼云是中国电信倾力打造的云服务品牌,致力于成为领先的云计算服务提供商。提供云主机、CDN、云电脑、大数据及AI等全线产品和场景化解决方案。
文章
952
粉丝
16
获赞
40