2020-12-10 18:57:39 +08:00
2020-12-10 18:54:29 +08:00
2020-12-10 18:54:29 +08:00
2020-12-10 18:54:29 +08:00
2020-12-10 18:57:39 +08:00
2020-12-10 18:54:29 +08:00
2020-12-10 18:54:29 +08:00

koTime

介绍

koTime是一个springboot项目性能分析工具通过追踪方法调用链路以及对应的运行时长快速定位性能瓶颈

优点:

  • 无缝集成springboot使用简单
  • 通过简单配置集成,与业务逻辑无耦合

缺点:

  • 目前仅适用于单机版,不支持分布式和集群

安装教程

  1. 引入依赖 或者 下载发行版本
 <dependency>
    <groupId>cn.langpy</groupId>
    <artifactId>simsearch</artifactId>
    <version>1.2</version>
  </dependency>
  1. 配置信息

在application.yml中配置

sim-search.dir=xxx  //索引位置可不填使用默认位置当前项目下的indexs目录第一次运行需手动创建
sim-search.size.core=10  //创建索引的核心线程数量根据cpu自行决定可不填默认为10
sim-search.size.max=10  //创建索引的最大线程数量根据cpu自行决定可不填默认为200
sim-search.size.queue=1000 //创建索引的线程队列容量自行决定可不填默认为20000
sim-search.index.init=true 重启时是否要对之前的索引进行删除默认为false

使用说明

  1. 在需要创建索引的实体上标注需要创建索引的字段
import cn.langpy.simsearch.annotation.IndexColumn;
import cn.langpy.simsearch.annotation.IndexId;

public class Student {
    /*索引唯一id*/
    @IndexId 
    private String id;
    /*需要创建索引的字段*/
    @IndexColumn
    private String studentName;
    @IndexColumn
    private String schoolName;
    private String age;
}
  1. 在需要创建索引的方法上加上创建索引的注解

  1. 在需要删除索引的方法上加上删除索引的注解

  1. 搜索的时候自定义一个空的方法,加上注解即可

注意:搜索结果仅仅是搜索出加上@IndexId和@IndexColumn的字段具体内容自行往业务数据库查询

版本说明

1.接口列表总览

在列表中会显示该接口的运行耗时,如果为绿色则无需优化,如果为红色,需要详细查看问题所在

输入图片说明

2.调用详情

点开接口时,会显示该接口的调用链路以及运行时长

输入图片说明

版本说明

V1.0-snapshots提供基础索引创建、删除和检索功能

V1.1:增加重启索引初始化功能

V1.2:搜索时,如果未找到搜索,可走默认模式

问题说明

  1. 本项目中使用了aspectjweaver依赖如果引入的项目中没有该依赖自行引入
 <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjweaver</artifactId>
        <version>xxx</version>
  </dependency>
Description
koTime是一个轻量级的springboot项目性能分析工具,通过方法调用链路追踪以及运行时长监控快速定位性能瓶颈,并进行可视化展示,还支持代码热更新与邮件预警! a springboot tool for tracing call graph,which can help you find method's performances easily.
Readme LGPL-2.1 11 MiB
Languages
Java 58.6%
HTML 23.8%
CSS 12.5%
JavaScript 5.1%