项目.多进程SVG_BUG排除

Posted drmess

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了项目.多进程SVG_BUG排除相关的知识,希望对你有一定的参考价值。

1、现在(20180910) 还是有Bug存在(有一段时间没弄它了),还是会 卡死。

  隔了这么一段时间,现在的思路应该不会 局限在当时的情景里面了,现在记录下 排除Bug的一些思路,供以后 做工作时使用:

 1.1、Log记录 -- 改进:

  (1)、使用文件追加的方式一行一行的保存Log信息 (使用 TStringList时,它是整体保存的,会有TStringList保存不了太多信息的情况)

  (2)、可以 将一整块Log信息 分成 多个小块,每块保存到一个 文件中

  (3)、删掉(去除) 指定行数(或者 第n行~第n+m行) 的Log信息

 1.2、调试 定位 思路

  (1)、判断 程序卡主时,是 死锁 还是 代码异常:

   ①、看有无异常信息打印出来

   ②、杀 Server/Client进程,看留下的 是否活着。程序 卡主时(未杀掉时),也可以看看 Server/Client两边进程 是什么状态(活的 / 卡住 /死了)

  (2)、怀疑的情况:

   ①、各个 Server/Client的标识,有 进程ID 改为使用 线程ID。

    ∵ Qt的QWebView中每一个网页 都会有子线程,使用 进程ID作为 客户端/服务端的标识的话,可能(肯定会有)造成 信息被错误的线程接收的情况--> 发现不是本线程的信息不处理(这个也要做计数)--> 不会再有触发 SetEvent的机会,于是程序 卡住,死锁了...

   ②、检查 各种计数:收 / 发 信息;接收到的信息 不是发给我的(线程标识不对 ; 是我自己发的 ; 不是我发的 但是是同一个进程的 别的线程发的 等等情况);我的请求还未 回复,对方的请求就来了(对方的请求来的计数);...

  (3)

2、

3、

4、

5、

 

以上是关于项目.多进程SVG_BUG排除的主要内容,如果未能解决你的问题,请参考以下文章

项目.多进程SVG

PHP多进程学习__来初步了解一下PHP多进程及简单demo

NodeJs多线程、多进程、定时任务

在服务器上部署Flask代码(从单进程到多进程)

python多进程存数据不改变顺序

Git的使用及网络编程多线程多进程