偶然在其他人的 README 里看到了 gource 与 codecity ,思考:
刚好我们正在做静态解析工具(真的是刚好),想着把这两个东西结合起来。
在 release 页面 下载对应二进制包,用一行命令行:
./sibyl history --src . --output hello.html --full
就可以得到(发现主页视频播不了,我放评论里或者直接点链接跳)
可以看到动画会标识出每个 diff 影响到的相关方法,并逐步演进,看到你的仓库逐渐成长。
因为这个项目一开始不是为了干这个事情的(果然走着走着就歪了),主要是用来从代码里提取元信息(方法、类等),所以仓里还有很多不相关的内容。
另外,这个视频里所有的原始信息( diff 影响哪些方法、方法又额外调用了哪些方法、每个 commit 完整的快照信息)都是可以拿到并且被 dump 出来的。
这个发出来首先是因为好玩,其次是为了给主功能做一些测试吧~ 感兴趣可戳:
https://github.com/opensibyl/sibyl2
中文文档在这,但貌似一直被提示有访问风险,想弃了,还是看 README 就好吧:
1
williamfzc OP |
2
Tanf 2022-12-13 13:52:47 +08:00
看起来不错,👍
|
3
williamfzc OP @williamfzc 当前支持 golang 、java 、python
|
4
wfhtqp 2022-12-13 14:07:17 +08:00
docker compose 启动
upload 成功 但是接口查询 repo 没有 |
5
wfhtqp 2022-12-13 14:10:48 +08:00
> ./sibyl history --src . --output hello.html --full
运行一会儿卡住了,top 查看 100% cpu. 但是毫无反应. |
6
williamfzc OP |
7
wfhtqp 2022-12-13 14:21:48 +08:00
没有多协程吗?仓库 230M ,使用 upload 很快
|
8
wfhtqp 2022-12-13 14:24:45 +08:00
用到 kafka ? docker-compose.yaml 里并没有这个的配置
|
9
williamfzc OP @wfhtqp
https://github.com/alibaba/jvm-sandbox history 这个功能我用这个仓测的,貌似没什么问题,也算比较传统大厂仓了。比较怀疑是仓里面有些大文件使得解析直接走到里面去把 cpu 打满了,使得没法继续往下了 后续考虑把过大的源码文件忽略掉,目前只是忽略掉 binary |
10
williamfzc OP @wfhtqp
暂时不带 kafka ,因为这类中间件一般由公司里的基建来承接,就不进 compose 了; 默认情况下请求会打到 server 里的 in-memory 队列,然后有一批 worker 来处理并写进 db ; 没入库目测是 neo4j 还在写,db 是目前最大的问题,太慢了; 试用的话可以先不用 compose 玩玩看,看看流程能走通不: https://opensibyl.github.io/doc/docs/usage/usage-prod#%E5%BF%AB%E9%80%9F%E8%AF%95%E7%94%A8 |
11
wfhtqp 2022-12-13 14:57:16 +08:00
不用 compose 也不行 看日志有 kafka 报错
|
12
williamfzc OP @wfhtqp
知道了.. 因为默认配置被不小心提交上去了,这次只是想来 share 下衍生 idea ,没有仔细测 server 这块,感谢! 用 0.7.4 亲测 ok ,compose 也可以,可尝试 |