Adrninistrator / java-all-call-graph

Generate all call graph for Java Code.
Apache License 2.0
437 stars 111 forks source link

找到循环调用有10几万,这个是为了找什么 #33

Open weitunghub opened 1 year ago

weitunghub commented 1 year ago

找到循环调用有10几万,这个是为了找什么 我有个代码跑了1个多小时,非常慢

Adrninistrator commented 1 year ago

方便发一下对应的日志看下不,有些代码之间调用很复杂的处理起来是要比较久,如果有不关注的方法调用可以在配置文件里忽略掉

weitunghub commented 1 year ago

具体的不太方便截图,大概就是如下 我们的场景是向上找调用链关系,由于我们也不知道需要过滤哪些,因为有很多代码,无法先枚举,如果我们不进行循环调用会少找吗

找到循环调用-gA981819001758025a01a0--#Gce122] :找到循环调用 x£DeH9=786hlKISPhEQWI==#DbD [21] :<找到循环调用-449=1=1gqnTYmoz3d0ia0==#Dc8 [26] •:找到循环调用 s2tpJvcx-5jcu3fa5gaseA==#口b士 [24] :找到循环调用 3F4FcDIFEuhaD」 TD2 p3HW#==#Dbe [10] :记录数达到 95000 后面是具体的文件路径 有任务执行失败,请检查

Adrninistrator commented 1 year ago

记录数达到,主要看这个相关的日志,当前指定的方法对应的调用数量每达到5000条会打印一次,需要检查一下对应的方法是不是确实存在很多方法调用

weitunghub commented 1 year ago

确实有可能的,我用idea先看看

weitunghub commented 1 year ago

对了,我们在删除数据的时候也很慢 删除表数据有点慢,我们用的mysql,自己加入了taskid ,有没有好办法 2023-05-16 19:14:46.857 INFO 7189 --- [ Thread-344] c.c.c.core.jacg.dboper.DbOperator : [20] delete data sql: [delete from method_call_analysis where task_id = 14] 2023-05-16 19:20:31.252 INFO 7189 --- [ Thread-344] c.c.c.core.jacg.dboper.DbOperator

Adrninistrator commented 1 year ago

在对应的建表语句sql文件中给task_id加一个索引试试,应该会快很多

Adrninistrator commented 1 year ago

增加task_id是用来做什么的呢,如果是要在同一个数据库中记录不同的应用的信息,可以使用不同的app.name参数,会分成不同的表来处理

weitunghub commented 1 year ago

确实是有很多应用,有百来个