IDEA的火焰图简单使用

这篇具有很好参考价值的文章主要介绍了IDEA的火焰图简单使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 火焰图是什么?

简单来说就是用来查看程序耗时的一张图
如何读懂火焰图?

2. mac上如何生成火焰图

找了一圈,原来idea原本就支持…

3. 测试代码

package org.example;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

public class StepTimeMark {
    private List<Long> times = new ArrayList<>();

    private int type;
    public long getTime() {
        if (type == 1) {
            return System.nanoTime();
        }
        return System.currentTimeMillis();
    }
    public StepTimeMark(int type) {
        times.add(getTime());
    }
    public void mark() {
        times.add(getTime());
    }
    public void end(String msg, long time) {
        times.add(getTime());
        Long aLong = times.get(0);
        Long aLong1 = times.get(times.size() - 1);
        long stepAllTime = aLong1 - aLong;
        if (stepAllTime >= time) {
            List<Long> setTimes = new ArrayList<>();
            for(int i = 1; i < times.size(); ++i) {
                setTimes.add(times.get(i) - times.get(i - 1));
            }
            String str = setTimes.stream().map(String::valueOf).collect(Collectors.joining("\t"));
            System.out.printf("%s:%s cost time: %s%n", msg, str, stepAllTime);
            System.out.print(msg);
        }
    }

    public static void main(String[] args) throws Exception {
        StepTimeMark stepTimeMark = new StepTimeMark(0);
        Thread.sleep(1200);
        stepTimeMark.mark();
        Thread.sleep(30);
        stepTimeMark.mark();

        Thread.sleep(100);
        stepTimeMark.end("sss", 500 );
    }
 }

package org.example;

import groovy.lang.GroovyShell;

public class LGroovyShell {


    public static void main(String[] args) throws Exception {

        StepTimeMark stepTimeMark = new StepTimeMark(0);
        String script = "def add(a, b) {\n" +
                "    return a + b\n" +
                "}\n" +
                "add(a,b)";
        GroovyShell groovyShell = new GroovyShell();

        groovyShell.setVariable("a", 1);
        groovyShell.setVariable("b", 2);
        stepTimeMark.mark();
        ss();
        stepTimeMark.mark();
        Object evaluate = groovyShell.evaluate(script);
        System.out.println(evaluate);
        stepTimeMark.end("step time", 0);
    }

    public static void ss () throws Exception {
        for(int i = 0 ; i < 10000; ++i) {
            for(int j = 0 ; j < 10000; ++j) {
                System.out.println(i * j);
            }
        }
    }
}

IDEA的火焰图简单使用,杂记,intellij-idea,java,ide

4. 结果

step time:230	219726	381 cost time: 220337
step time
Process finished with exit code 0

可以看到 ss函数跑了接近219s
火焰图如下:
IDEA的火焰图简单使用,杂记,intellij-idea,java,ide
没想到还要点击火焰图上的➕
IDEA的火焰图简单使用,杂记,intellij-idea,java,ide
现在可以看到 ss函数的恐怖耗时了吧。也可以看到打印出来这个系统调用的耗时挺大。文章来源地址https://www.toymoban.com/news/detail-564312.html

到了这里,关于IDEA的火焰图简单使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何在Intellij-idea如何编译maven工程

    在 IntelliJ IDEA 中编译 Maven 工程,你需要遵循以下步骤: 打开 IntelliJ IDEA :首先,启动 IntelliJ IDEA。 打开 Maven 项目 :在欢迎界面上,选择 \\\"Get from Version Control\\\",然后选择你的 Maven 项目的仓库地址。或者,如果你已经有了项目文件(如  .idea  和  pom.xml ),你可以直接打开这

    2024年01月18日
    浏览(87)
  • IDEA的火焰图简单使用

    简单来说就是用来查看程序耗时的一张图 如何读懂火焰图? 找了一圈,原来idea原本就支持… 可以看到 ss 函数跑了接近219s 火焰图如下: 没想到还要点击火焰图上的➕ 现在可以看到 ss 函数的恐怖耗时了吧。也可以看到打印出来这个系统调用的耗时挺大。

    2024年02月16日
    浏览(24)
  • HBuilderX和IntelliJ IDEA实现简单登录认证功能

    今天抽空写了一个登录的demo项目,使用HBuilderX和IntelliJ IDEA创建前后端分离的项目,并实现简单的登录功能(简单连接数据库判断),通过Ajax与后端的SpringBoot项目进行交互。 目录 第一步:创建前端项目  第二步:准备数据库 第三步、创建后端项目 1、创建springboot项目 2、修

    2024年02月09日
    浏览(36)
  • IntelliJ IDEA安装教程,三分钟手把手教会,非常简单!

    链接:JDK安装教程 1、进入官网 官网地址:https://www.jetbrains.com/ ​ 2、点击【Developer Tools】开发者工具,选择【IntelliJ IDEA】点击跳转。 ​ 3、来到IntelliJ IDEA界面,点击【Download】跳转到下载页面 ​ 4、然后你会看见旗舰版和社区版两个版本,旗舰版的组件很全面,但是要钱(

    2024年03月14日
    浏览(58)
  • 杂记 | 使用idea构建SpringBoot项目并远程连接docker运行

    使用docker运行SpringBoot项目是一个不错的选择,传统方式需要手动打包并上传到服务器,再使用docker build构建镜像,再使用docker run启动运行,难免有些繁琐,本文介绍如何使用idea帮我们完成这些操作,简化操作流程。 (如上图)一般会默认带一个Docker,如果没有,点击+号创

    2024年02月12日
    浏览(41)
  • 最简单IntelliJ IDEA安装教程(小白也能一次性安装完成)

    📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️ 工欲善其事必先利其器,作为一名Java开发者,手上必须得有趁手的工具。市面上的Java开发IDE有:Eclipse、NetBeans、Lightly、IntelliJ IDEA、JDeve

    2024年01月18日
    浏览(53)
  • IntelliJ IDEA使用学习

    2.1 快捷键操作与设置 设置 Setting——按键映射——选择顺手的系统快捷键 2.2 创建普通工程运行 新建项目——选择项目类型——选择位置 第一种运行方法 右键——运行(shift+ctrl+F10) 第二种运行方法 点击三角图标即可运行 第三种运行方法 右上角三角图标运行 2.3 创建JavaWeb项

    2024年01月18日
    浏览(37)
  • IntelliJ IDEA使用——插件推荐

    官网插件库:https://plugins.jetbrains.com/search 代码规范检测: Alibaba Java Coding Guidelines 码云: Gitee mybatis插件: MyBatisX 多颜色括号: Rainbow Brackets 操作快捷键提示: Key Promoter X 力扣(使用参考): LeetCode Editor 依赖管理: Maven Helper Json转Bean实体类: GsonFormat Bean实体类转Json: Ja

    2024年02月07日
    浏览(52)
  • IntelliJ IDEA Bookmark使用

    右键行号栏 从favorite这里查看 参考IntelliJ IDEA 小技巧:Bookmark(书签)的使用_bookmark idea 使用_大唐冠军侯的博客-CSDN博客  

    2024年02月14日
    浏览(41)
  • Intellij IDEA Git使用记录

    代码管理工具从svn改了git,记录一下使用过程。 1、关于查看提交历史 之前用svn的时候直接项目右键 Team–显示资源历史记录,不需要先更新就可以查看到所有的提交历史了;但是git需要先pull或者fetch之后,才能显示出所有的提交记录。 2、关于git分支 git一般不会在主分支开

    2024年02月12日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包