广告
返回顶部
首页 > 资讯 > 前端开发 > VUE >怎么提高Debug效率
  • 858
分享到

怎么提高Debug效率

2024-04-02 19:04:59 858人浏览 泡泡鱼
摘要

本篇内容介绍了“怎么提高Debug效率”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!缩小问题范围缩小问题范

本篇内容介绍了“怎么提高Debug效率”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

缩小问题范围

缩小问题范围的方式有很多,本质上其实是从当时的环境中找到与问题更高相关的变量。最常见的变量主要在以下这些:

  • 运行环境

  • 所操作的数据

  • 浏览器

  • 对应的源码版本

建议你先从这几个变量进行验证。然后再弄清楚上一次正常操作与当前出现bug的操作之间的这段时间发生过什么。大多数情况下,问题的根源就藏在这里面。那种潜藏很久才遇到的疑难问题,毕竟是少数。

提炼并优化每一类bug的标准处理流程

工作中很多流程需要SOP,在修复bug这件事上也可以这么做,如此可以将每一次修复一个疑难bug的过程给沉淀下来。

常见的bug类型主要有4类:

  1. 鸿蒙官方战略合作共建——HarmonyOS技术社区

  2. 输出与预期不符

  3. 程序报错

  4. 程序明显响应慢

  5. 程序crash

每一类都有适合它们的排查方式,如果你总是用同一个套路去排查这4类问题,效率自然不会太高。

01 输出与预期不符

这种bug最头疼,为什么呢?因为它不像那种异常、报错的bug,有堆栈信息,可以快速缩小排查范围,甚至直接定位到产生的地方。

那么怎么办呢?如果这个问题在测试环境,那么最简单,直接单步调试走起,这个时候如果对IDE的调试工具掌握得越深入,效率也会越高,比如条件变量、多线程调试等等。

这里多说一句,强烈建议每个人掌握自己所用IDE的条件变量和多线程调试这两种方法,在当前的大环境下,整个软件开发领域的大型项目和多线程运用都比几年前高得多。

如果没法单步调试的情况,那么只能通过多打一些日志,来达到接近单步调试的效果。不过这点需要你做一些预判,在一些代码分支、可疑位置打上日志即可,毕竟编写记录日志的代码也需要时间不是。

02 程序报错

这种bug对有些经验的程序员来说是最简单了,因为直接告诉了你产生异常的代码位置。

但是对新手就不同了,很多新手会拿着描述异常的一堆文字去搜索引擎搜,比如(NullPointer  Exception),搜出来N多文章,一篇一篇看下来并尝试都发现不能解决自己的问题,其实就是由于自己还没习惯于去看堆栈信息。因为别人的NullPointer  Exception和你的NullPointer Exception产生的原因并不一样。

堆栈信息中记录了整个调用链路,所以通过这里你可以看到完整的方法调用顺序。

不过值得提醒的是,在日常编写的代码的时候,千万不能随意的try catch代码块,然后throw一个new  exception,因为这会导致堆栈信息不完整。

03 程序明显响应慢

这种问题一般是在产生资源竞争,或者资源紧张的时候发生。排查他们的难度也比较高。

如果说前面两类问题中,高水平和低水平的区别只在于解决效率的高低上,那么这个问题对低水平的程序员们来说可能是不管花多少时间都找不到问题的原因。

不过不要紧,我建议你以后遇到这种情况,优先从以下这几个指标入手。

  • tcp连接数

  • 内存占用率

  • 线程数

对于TCP连接,你身边得常备一份netstat命令手册,然后敲入命令,分别查看连接数是否接近到了65535?TIME_WaiT、CLOSE_WAIT状态的连接是不是过多?

大多数情况下,TCP连接相关的问题主要就是两个:

  1. 鸿蒙官方战略合作共建——HarmonyOS技术社区

  2. 连接使用完后未及时释放

  3. 针对高频调用未使用长链接,而使用了短链接。此时一旦下游服务响应慢就会快速打满65535个连接。

对内存问题的分析,主要是就是通过分析GC来进行,主要关注是否有什么类型的对象占用内存过大了。如果存在过大的情况,主要原因是以下两个:

  1. 鸿蒙官方战略合作共建——HarmonyOS技术社区

  2. 某个大对象应该是共享使用的,在代码里不小心写成了每一个实例各自一份。

  3. 某个对象分配的时候不小心带上了static关键字,导致GC一直无法回收为其分配的内存。

不同的编程语音有不同的GC分析工具,需要熟练掌握。

对线程的分析,和TCP连接类似,主要集中在线程的数量和状态上。线程并不是数量越多、性能就越好。数量越多,可能花在线程之间的上下文切换上的时候就比实际执行代码逻辑还要多。

另外,是不是有大量线程blocked或者deadlocked了?随便挑其中一个线程,分析其当前的堆栈信息,就是问题所在。

04 程序crash

导致crash的主要原因有两点。

  1. 鸿蒙官方战略合作共建——HarmonyOS技术社区

  2. 是由于前面提到的原因3未及时察觉,导致程序运行直到资源耗尽,由操作系统干预强行终止运行。

  3. 代码中存在未捕获的exception。

第一点参照原因3的处理方式。

第二点就很简单了,在代码的最外层做一个大大的try  catch,然后打上日志将堆栈信息记录下来,发布到线上,自然就能看到是那里出现的问题,然后转到原因2的处理方式。

最后,提高Debug能力必须要多实践。所以,我是非常建议你在条件允许的情况下,勇敢地去挑起排查线上疑难杂症的任务,甚至并不是你直接负责的功能模块。

可能在外人看来你在帮别人“擦屁股”,但这会让你的Debug能力得到明显的提升,并且容易形成对你的依赖,让你越来越强。

“怎么提高Debug效率”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: 怎么提高Debug效率

本文链接: https://www.lsjlt.com/news/83223.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么提高Debug效率
    本篇内容介绍了“怎么提高Debug效率”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!缩小问题范围缩小问题范...
    99+
    2022-10-19
  • 怎么提高sqlmap爆破效率
    本篇内容介绍了“怎么提高sqlmap爆破效率”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 提高sqlmap爆破效率sqlmap在...
    99+
    2023-06-04
  • 怎么提高 Python 开发效率
    本篇内容介绍了“怎么提高 Python 开发效率”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在Sublime Text中支持Python运...
    99+
    2023-06-15
  • 怎么提高MySQL查询效率
    本篇内容介绍了“怎么提高MySQL查询效率”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!MySQL由于它本...
    99+
    2022-10-18
  • 怎么提高sql查询效率
    怎么提高sql查询效率 ?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!1.对查询进行优化,应尽量避免全表扫描,首先应考虑在...
    99+
    2022-10-18
  • SEO要怎么提高工作效率
    本篇内容介绍了“SEO要怎么提高工作效率”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、SEO靠坚持,执行很重要!   对于SEO,大家都...
    99+
    2023-06-12
  • ElasticSearch中怎么提高查询效率
    ElasticSearch中怎么提高查询效率,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。性能优化的杀手锏——filesystem cache你往 es 里写的...
    99+
    2023-06-02
  • mongodb数组查询效率怎么提高
    要提高MongoDB数组查询的效率,可以考虑以下几个方面:1. 索引优化:为数组字段创建适当的索引,以加快查询速度。在创建索引时,可...
    99+
    2023-09-12
    mongodb
  • mongodb联表查询效率怎么提高
    要提高MongoDB联表查询的效率,可以尝试以下几种方法:1. 使用索引:在关联字段上创建索引,可以加快关联查询的速度。确保在关联字...
    99+
    2023-09-06
    mongodb
  • 怎么增加Distinct提高查询效率
    这篇文章将为大家详细讲解有关怎么增加Distinct提高查询效率,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。  只有增加DISTINCT关键字,Oracle必然需要对后...
    99+
    2022-10-18
  • oracle视图查询效率怎么提高
    要提高Oracle视图的查询效率,可以采取以下几个方法:1. 索引优化:为视图的底层表创建合适的索引,以加快查询速度。通过分析查询语...
    99+
    2023-08-15
    oracle
  • Task怎么提高异步执行效率
    本篇内容介绍了“Task怎么提高异步执行效率”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!async Task 语法糖出来后,异步编程变得非...
    99+
    2023-06-29
  • 怎么使用ABAP提高工作效率
    本篇内容主要讲解“怎么使用ABAP提高工作效率”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用ABAP提高工作效率”吧!(1) 直接批量生成数据到ABAP内表里:* 2017-05-14 ...
    99+
    2023-06-04
  • redis同时读写效率怎么提高
    要提高Redis的同时读写效率,可以采取以下几个方法:1. 使用多个Redis实例:可以将读写操作分散到多个Redis实例上,减轻单...
    99+
    2023-08-24
    redis
  • 怎么使用redis提高缓存效率
    以下是一些使用Redis提高缓存效率的方法:1. 设置合适的过期时间:在将数据存储到Redis缓存中时,可以为每个数据设置一个过期时...
    99+
    2023-09-05
    redis
  • 怎么提高MySQL数据库查询效率
    这篇文章主要讲解了“怎么提高MySQL数据库查询效率”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么提高MySQL数据库查询效率”吧!  使用statem...
    99+
    2022-10-18
  • javascript怎么提高开发速度和效率
    本篇内容主要讲解“javascript怎么提高开发速度和效率”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“javascript怎么提高开发速度和效率”吧! ...
    99+
    2022-10-19
  • 提高效率的Vue指令怎么使用
    这篇文章主要介绍“提高效率的Vue指令怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“提高效率的Vue指令怎么使用”文章能帮助大家解决问题。v-model相信大家对v-model并不陌生,简单...
    99+
    2023-07-05
  • 怎么使用RelProxy提高Java开发效率
    本篇内容介绍了“怎么使用RelProxy提高Java开发效率”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!RelProxy 旨在通过下列两种...
    99+
    2023-06-17
  • 如何提高python效率
    这篇“如何提高python效率”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“如何提高python效率”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢理解,接下来就让我们进入主题吧。...
    99+
    2023-06-06
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作