【前端验证】记录将发包量作为传参以加速debug的环境优化记录

简介: 【前端验证】记录将发包量作为传参以加速debug的环境优化记录


前言

这个是好多年前做的一个优化了,最近因为在新的环境里又做了这个操作所以记录一下。先要说明一点,我没有点分离编译的技能点,这个优化也是大概在4年前做的了,所以如果有更好的建议请勿嫌弃。


环境优化

发包量就是仿真中transaction的数量,可能是网络报文数、指令数、像素点数等各种“包”数。这个值一般我们会在tc中进行设置来控制一次仿真的规模和时间。而对发包量做传参是基于以下两个考虑:


  1. 在做大数据量的仿真时,最怕的一件事就是修改环境然后重跑,毕竟这会花费额外的编译时间。因此很多努力包括分离编译和这次写的发包量作为传参都是要消除这个重新编译的时间;
  2. 通过灵活的在同一个seed下改变发包量,可以更加快速的定位到是哪个包触发了error情况,避免大海捞针;

对第二种情况单独说明一下。比如说回归中一条用例error了,seed=0发包量为10000,那么要定位这个case的话很可能要花费很大的功夫,毕竟发包量比较大波形看起来比较困难。那么这个时候可以考虑不改变seed的情况下降低发包量来降低波形定位的难度,或者是精确的找到是哪个包的发出开始有error了,比如num=5000没有error而num=5001有error了那么大概率第5001个包是有些问题的(当然了,不一定)。


基于这个思路,把发包量做成配置项就可以在不重新编译的情况下快速重跑用例,配置不同的发包量来确定有嫌疑的包是哪一个。要实现这个目的,需要在Makefile中加入这一句命令:

export num  ?= 0
#make run的选项,使用$seed_num来传递num值
RUN_OPTIONS += +ntb_random_seed=$(SEED) +tc_name=$(tc) +send_num=$(num) -l $(RUN_LOG)



num的默认值是0,这样便于在环境中识别和调整(毕竟没有发包为0的情况吧?),环境中在需要的位置补充这样的代码:

    if(!$value$plusargs("send_num=%d", send_num)) begin
        `uvm_fatal("configure_phase", "send_num get error")
    end
    else if(send_num == 0)begin
        send_num = 100;
    end

 

之后环境中就可以用send_num作为发包数了,不同的用例里send_num是可以任意的调整。在跑用例时候需要键入的命令行是:

make run seed=1234567 num=4000
相关文章
|
12月前
|
前端开发 JavaScript 索引
前端性能优化:虚拟滚动技术原理与实战
前端性能优化:虚拟滚动技术原理与实战
1562 80
|
缓存 前端开发 UED
如何优化前端性能以提高加载速度
前端性能优化对提升网站加载速度至关重要,直接影响用户体验、SEO排名和转化率。本文介绍了优化前端加载速度的关键技巧,包括最小化HTTP请求、使用CDN、优化图片、利用浏览器缓存、压缩文件和实现懒加载。通过这些方法,可以显著减少页面加载时间,提高网站的整体性能和用户满意度。
|
缓存 监控 前端开发
前端性能优化:现代框架的关键策略
前端性能优化:现代框架的关键策略
530 74
|
9月前
|
存储 前端开发 安全
实现“永久登录”:针对蜻蜓Q系统的用户体验优化方案(前端uni-app+后端Laravel详解)-优雅草卓伊凡
实现“永久登录”:针对蜻蜓Q系统的用户体验优化方案(前端uni-app+后端Laravel详解)-优雅草卓伊凡
377 5
|
缓存 前端开发 JavaScript
前端性能优化:打造流畅的用户体验
前端性能优化:打造流畅的用户体验
|
前端开发 JavaScript 开发者
前端 CSS 优化:提升页面美学与性能
前端CSS优化旨在提升页面美学与性能。通过简化选择器(如避免复杂后代选择器、减少通用选择器使用)、合并样式表、合理组织媒体查询,可减少浏览器计算成本和HTTP请求。利用硬件加速和优化动画帧率,确保动画流畅。定期清理冗余代码并使用缩写属性,进一步精简代码。这些策略不仅加快页面加载和渲染速度,还提升了视觉效果,为用户带来更优质的浏览体验。
|
缓存 前端开发 JavaScript
利用代码分割优化前端性能:策略与实践
在现代Web开发中,代码分割是提升页面加载性能的有效手段。本文介绍代码分割的概念、重要性及其实现策略,包括动态导入、路由分割等方法,并探讨在React、Vue、Angular等前端框架中的具体应用。
|
人工智能 JavaScript 前端开发
Vue 性能革命:揭秘前端优化的终极技巧;Vue优化技巧,解决Vue项目卡顿问题
Vue在处理少量数据和有限dom的情况下技术已经非常成熟了,但现在随着AI时代的到来,海量数据场景会越来越多,Vue优化技巧也是必备技能。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
Dart 前端开发 架构师
【01】vs-code如何配置flutter环境-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈-供大大的学习提升
【01】vs-code如何配置flutter环境-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈-供大大的学习提升
709 26
|
前端开发 安全 UED
2024年前端性能优化新策略
2024年前端性能优化策略涵盖代码分割与环境变量管理。代码分割通过动态导入和按需加载CSS减少初始加载时间;环境变量管理则确保敏感信息安全,简化多环境配置。结合最新工具和技术,可大幅提升Web应用性能与用户体验。

热门文章

最新文章

  • 1
    前端如何存储数据:Cookie、LocalStorage 与 SessionStorage 全面解析
    1190
  • 2
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
    527
  • 3
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
    410
  • 4
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
    403
  • 5
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
    518
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
    693
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
    1255
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
    288
  • 9
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
    1049
  • 10
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
    482