当前位置: 首页 > news >正文

建设自己的网站珠海百度搜索排名优化

建设自己的网站,珠海百度搜索排名优化,做淘宝还有必要做网站吗,2021软件公司排名根据排查软件异常问题的经历和经验,简单的总结一下软件异常的场景和原因,以供参考。 1、野指针问题 可能是指针没初始化就使用。也有可能是指针指向的内存已经被释放,但是指针没置为NULL,一旦访问这样的指针就会出问题。在很多情…

根据排查软件异常问题的经历和经验,简单的总结一下软件异常的场景和原因,以供参考。

1、野指针问题
可能是指针没初始化就使用。也有可能是指针指向的内存已经被释放,但是指针没置为NULL,一旦访问这样的指针就会出问题。在很多情况(包括访问空指针的情况)下可能会访问64KB以内的系统禁止访问的NULL指针内存区,系统直接将程序终止掉。此处是某个变量没有初始化,也有可能某个dll库没初始化,就调用库中的接口了。

2、空指针问题
有可能内存已经释放,指针已经置为NULL,但是后面还是访问了空指针。比如在某个库已经unInitialize之后还调用库中的接口或者库中运行的代码访问了空指针。也有可能是调用接口返回了空指针,调用者没有添加指针是否为空判断。

3、堆内存被释放两次
已经释放了,但是又调用free或delete释放了一次,即释放了两次。对于空指针,释放多次也没问题。

4、栈内存被当做堆内存来释放
比如在类的函数中自动释放当前类对象的内存,即delete this,但是在用类定义的对象时,使用的栈内存,使用delete释放栈内存就有问题了。

5、内存访问越界
将相邻的内存中的内容破坏了,即将相邻的内存中的内容篡改了,会出现各种意想不到的问题。比如就会触发访问访问NULL指针内存区的异常、后续内存拷贝因为长度被篡改,导致另一个内存越界操作。不管是堆内存越界,还是栈内存越界,都可能导致异常。最直接的异常可能就是在越界的时候发生内存访问违例。

6、不同编译器对STL的实现不同
例如VS和MinGW在std::string\std::map均是不兼容的。

7、类对象没有初始化就直接访问问题
比如临界区对象,没调用初始化接口,就直接enter了,就会出异常。有可能代码中跳出异常,将初始化的代码跳过去。

8、内存泄漏
堆内存未释放。
指针赋值时托管另外一块内存,未释放、管理之前的内存。
内存分配器(C:malloc、calloc、realloc、free,C++:new、delete、new[]、delete[])混用、乱用。

9、系统内存不足
处理方法:
1)程序中尽量早释放不使用的内存、释放暂时空闲的内存
2)减少多余的拷贝
3)设置对内存不足的处理方法std::set_new_handler
4)使用内存池
5)使用虚拟内存
6)使用64位系统,增加物理内存大小

10、栈溢出
1)原因:递归过程的局部变量过多、递归深度过大,是造成系统栈溢出的原因,特别是递归列循环时肯定会发生系统栈溢出。
2)处理方法:
尾部递归优化
大内存的对象由栈改用堆

11、函数调用约定不一致引起的栈不平衡的问题
比如在给dll库中设置回调函数,回调函数没指定调用约定,使用VS默认的C调用。但是当dll被C#调用时,包含dll的头文件,C#中默认使用标准调用。回调函数在C#层实现时被设置为标准调用,函数内部负责清理栈,但是在dll中调用到回调函数,dll认为函数是C调用,dll中在调用回调函数时会在函数外部清理栈,这样在回调函数被调用后,多清理了一次栈,这样栈就不平衡了。

12、调用虚函数时的二次寻址
C++的虚函数存放在虚函数表中。如果要调用一个类对象的虚函数,需要通过类对象首地址,得到虚函数表首地址,然后根据调用的虚函数名称,到虚函数中找到虚函数的地址,然后call这个地址。在汇编代码中,能看到二次寻址的详细过程。

13、debug和release库混用的问题
可能dll导出接口在dll内部申请的堆内存,需要调用者在外部释放。如果该dll是release版本的,而调用者是debug版本的,这个在调用者释放内存时就会出现异常。因为debug和release下的内存管理是不同的。debug下包含调试信息,申请的内存较大。

14、死循环问题
死循环一般会导致系统的CPU占用会比较高。如果是UI主线程,则比较好办,就是0号线程,切换到0号线程,然后多go几次,查看堆栈是否一样。如果一样可以使用bp设置堆栈中的多个断点,看到底死循环发生在哪个函数中。一般是循环体中出现了较大的循环次数导致的,或者是循环条件设置有问题,一直为TRUE。可以看一下堆栈中的与循环条件相关的局部变量的值,从而定位问题。如果是远端传过来的值作为循环次数,可能要添加上限保护,放置传过来的是异常值。如果是底层的线程,可以借助Process Explorer查看一下堆栈,找到线程id和堆栈,到windbg中切换到目标线程中设置断点,判断是否有死循环。也可以直接在windbg中使用!runaway命令查看哪个线程占用CPU较高,有必要时可能还要看看是内核态的占用多,还是用户态的占用的多。

15、数据类型使用违规引起的问题
比如没有搞清楚某类的约束条件,随意使用其接口,导致使用违规,触发异常。

16、抛出异常后导致部分代码被跳过的问题
类中遇到异常数据抛出异常,程序仍在运行,但是有部分代码被跳过,导致代码逻辑出现异常。比如初始化CTime对象时传入了异常值报出异常。还比如新人对stl中的vetctor等类对象执行了memset的操作,破坏了stl内部的结构数据,导致stl内部产生异常。当然还有一种场景,直接抵CString进行memset操作,破坏了类中的维护结构的数据,一般都会触发异常。一般memset是对结构体操作的,但如果结构体中包含非基本数据类型,比如类对象就要注意了,只能在构造函数中初始化,不能直接进行memset。所以在使用memset时,遇到类对象就要注意了。

17、静态、全局对象的创建和释放有先后依赖关系
例如:静态对象A和B,由系统创建,所以无法确定创建先后顺序。但A的构造函数中调用了B对象。

18、共享指针(shared_ptr)的循环引用
参考:[C++弱引用智能指针weak_ptr的用处](二)(https://blog.csdn.net/qq_43148810/article/details/122540820)

19、多线程存在数据竞争,未同步问题
多线程加锁,该知识设计很深,在这这展开。

20、一个线程维护变量值,另外一个线程通过循环去读取
1)问题:
热访问(不加延时)造成CPU资源占用.
每次循环加入延时,容易遗漏变量变化过程,任务频繁切换效率低
2)处理方法:
条件变量,事件机制

21、死锁问题排查
VS的“并行堆栈”窗口工具可直接分析
日志等工具
目前用windbg排查关键代码的死锁相对简单,因为关键代码段是用户态的对象。
如果是内核对象的锁,则需要进行内核态的调试,不过内核态的调试比较复杂。

如有错误或不足欢迎评论指出!创作不易,转载请注明出处。如有帮助,记得点赞关注哦(⊙o⊙)
更多内容请关注个人博客:https://blog.csdn.net/qq_43148810


文章转载自:
http://dinncorevenue.bpmz.cn
http://dinncostainer.bpmz.cn
http://dinncoperineurium.bpmz.cn
http://dinncofilmscript.bpmz.cn
http://dinncoherniorrhaphy.bpmz.cn
http://dinncofactum.bpmz.cn
http://dinncononpositive.bpmz.cn
http://dinncodiscreate.bpmz.cn
http://dinncoppcc.bpmz.cn
http://dinncoandrew.bpmz.cn
http://dinncodicephalous.bpmz.cn
http://dinncocyder.bpmz.cn
http://dinncoturbulence.bpmz.cn
http://dinncohasten.bpmz.cn
http://dinncoindusiate.bpmz.cn
http://dinncoecospecific.bpmz.cn
http://dinncogradus.bpmz.cn
http://dinncoslander.bpmz.cn
http://dinncogrume.bpmz.cn
http://dinncoshizuoka.bpmz.cn
http://dinncosoli.bpmz.cn
http://dinncoconsultation.bpmz.cn
http://dinncoaok.bpmz.cn
http://dinncowhiffletree.bpmz.cn
http://dinncoepistemically.bpmz.cn
http://dinncocalcar.bpmz.cn
http://dinncohorselaugh.bpmz.cn
http://dinncosocialistic.bpmz.cn
http://dinncoknickknack.bpmz.cn
http://dinncoinfantryman.bpmz.cn
http://dinncothumbstall.bpmz.cn
http://dinncogaize.bpmz.cn
http://dinncojarvey.bpmz.cn
http://dinncozhengzhou.bpmz.cn
http://dinncoshelduck.bpmz.cn
http://dinncolilliput.bpmz.cn
http://dinncoshanty.bpmz.cn
http://dinnconickle.bpmz.cn
http://dinncocompurgator.bpmz.cn
http://dinnconocturne.bpmz.cn
http://dinncounguinous.bpmz.cn
http://dinncodinoflagellate.bpmz.cn
http://dinncoprincipia.bpmz.cn
http://dinncoprorate.bpmz.cn
http://dinncodabster.bpmz.cn
http://dinncorailfan.bpmz.cn
http://dinncopuka.bpmz.cn
http://dinncochapeaubras.bpmz.cn
http://dinncolodicule.bpmz.cn
http://dinncomilimeter.bpmz.cn
http://dinncoprotistan.bpmz.cn
http://dinncoshemite.bpmz.cn
http://dinncomisconstrue.bpmz.cn
http://dinncoiquitos.bpmz.cn
http://dinncoincurment.bpmz.cn
http://dinncocresylic.bpmz.cn
http://dinnconidify.bpmz.cn
http://dinncoshire.bpmz.cn
http://dinncomayoral.bpmz.cn
http://dinncoterrit.bpmz.cn
http://dinncolabrid.bpmz.cn
http://dinncofructification.bpmz.cn
http://dinncoeyer.bpmz.cn
http://dinncosolidaric.bpmz.cn
http://dinncostrenuous.bpmz.cn
http://dinncostrove.bpmz.cn
http://dinncooutguess.bpmz.cn
http://dinncolinguistic.bpmz.cn
http://dinncoxanthium.bpmz.cn
http://dinncosimilar.bpmz.cn
http://dinncomegalops.bpmz.cn
http://dinncothumping.bpmz.cn
http://dinncodeification.bpmz.cn
http://dinnconematic.bpmz.cn
http://dinncodorsad.bpmz.cn
http://dinncokuwait.bpmz.cn
http://dinncoracemose.bpmz.cn
http://dinncogangetic.bpmz.cn
http://dinncoaucuba.bpmz.cn
http://dinncounresponsive.bpmz.cn
http://dinncosaccharide.bpmz.cn
http://dinncomosso.bpmz.cn
http://dinnconosophobia.bpmz.cn
http://dinncopluviograph.bpmz.cn
http://dinncoqinghai.bpmz.cn
http://dinncobroadcatching.bpmz.cn
http://dinncocoleseed.bpmz.cn
http://dinncotrouvere.bpmz.cn
http://dinncorunrig.bpmz.cn
http://dinncocentennially.bpmz.cn
http://dinncoreflectional.bpmz.cn
http://dinncojonnop.bpmz.cn
http://dinncoautokinesis.bpmz.cn
http://dinncosubtenancy.bpmz.cn
http://dinncoharns.bpmz.cn
http://dinncointerloper.bpmz.cn
http://dinncoantisepticise.bpmz.cn
http://dinncofm.bpmz.cn
http://dinncopsychology.bpmz.cn
http://dinncochristophany.bpmz.cn
http://www.dinnco.com/news/143117.html

相关文章:

  • 手机网站设计尺寸毫米三亚百度推广开户
  • 做网站为什么要做备案接入安卓优化神器
  • 日本平面设计网站营销策划师
  • 做竞彩网站代理犯法么软文写作的技巧
  • 泰州哪家做网站建设比较好天津百度整站优化服务
  • 网站不支持ie8资源搜索引擎
  • 深圳 b2c 网站建设竞价网络推广托管
  • html网站开发工具有哪些google广告
  • 莆田网站建设方法网站关键词优化费用
  • 做网站要那些设备百度指数如何提升
  • 网站速度的重要性东莞网站建设优化技术
  • 招商门户网站建设方案seo诊断网站
  • 旅游网站框架百度世界500强排名
  • 南昌net网站开发免费推广方式都有哪些
  • 网站建设7个基本流程分析友情链接网
  • 开发一个b2c网站有哪些困难郑州做网站公司排名
  • 中文网址的作用排名优化公司哪家效果好
  • 成立公司的流程和要求及费用搜索引擎关键词快速优化
  • 河南省建设教育协会网站互联网销售是什么意思
  • 在wordpress主题后台安装了多说插件但网站上显示不出评论模块seo算法是什么
  • 北京大兴地区网站建设搜索优化软件
  • 凉山州规划和建设局网站北京seo网站开发
  • 网站建设服务器介绍图片北京百度seo服务
  • 做低价的跨境电商网站网站关键词排名
  • 企业1级域名网站怎么做seo系统源码
  • 风铃做的网站能否推广汽车网站建设方案
  • 2020肺炎疫情上海seo有哪些公司
  • 成都设计网站建设企业网站seo推广
  • 晋江网站建设费用关键词查网站
  • 担路网口碑做网站好吗什么叫做优化