热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

java–生成线程利用率的摘要

我有一个应用程序,每次发出请求时都会写出日志.日期和时间信息指的是功能的结束时间.通过使用执行时间,我们计算请求开始的时间.以下是日志目前的样子:year|month|day|ho

我有一个应用程序,每次发出请求时都会写出日志.日期和时间信息指的是功能的结束时间.通过使用执行时间,我们计算请求开始的时间.

以下是日志目前的样子:

year | month | day | hour | minute | seconds | Thread | UserName | ExecTime
2014 | 3 | 26 | 8 | 57 | 300 | 1 | file_download | 33.86
2014 | 3 | 26 | 8 | 57 | 45 | 1 | file_upload | 0.359
2014 | 3 | 26 | 8 | 57 | 55 | 1 | folder_browse | 0.234
2014 | 3 | 26 | 8 | 58 | 11 | 1 | sending_email | 0.14
2014 | 3 | 26 | 8 | 58 | 20 | 1 | browsing_favorites | 0.985
2014 | 3 | 26 | 8 | 58 | 29 | 1 | file_download | 0.266
2014 | 3 | 26 | 8 | 58 | 33 | 1 | file_upload | 0.296
2014 | 3 | 26 | 8 | 58 | 37 | 1 | file_zip | 0.25
2014 | 3 | 26 | 8 | 58 | 41 | 1 | view_properties | 0.0
2014 | 3 | 26 | 8 | 58 | 46 | 1 | file_download | 0.187

仅用于说明目的

由于请求可能会持续几分钟甚至几小时,因此很难按分钟计算每个线程的利用率.以下输出说明了我之后的输出:

Thread | month | day | hour | minute | % Busy
1 | 3 | 26 | 8 | 57 | 0.5
2 | 3 | 26 | 8 | 57 | 0.1
3 | 3 | 26 | 8 | 57 | 0.9

仅用于说明目的

例如,如果请求在12:30:30开始执行并在12:32:30结束,则上表将如下所示:

Thread | month | day | hour | minute | % Busy
1 | 3 | 26 | 12 | 29 | 0
1 | 3 | 26 | 12 | 30 | 0.5
1 | 3 | 26 | 12 | 31 | 1
1 | 3 | 26 | 12 | 32 | 0.5
1 | 3 | 26 | 12 | 33 | 0

仅用于说明目的

输出中的分钟数是第一个请求和最后一个请求之间可以在日志中找到的分钟数.

UPDATE

以下是@TessellatingHeckler要求澄清的摘要:

>计算开始时间
>对于开始/结束部分分钟计算利用率分数.
>计算中间的分钟为100%忙
>在每分钟内添加多个请求/起始端重叠.
>填写缺少的分钟为0%忙.
>显示每个线程的列表,从计算的第一个条目的开始到最后一个条目,显示日期时间到分钟和%繁忙

我知道这很难,但我只需要一种能很好地转化为代码的方法.我很高兴使用perl,powershell或java.

谢谢

解决方法:

以下内容将为您完成大部分工作.你必须弄清楚Busy实际上意味着什么:

use List::Util qw(sum);
use strict;
use warnings;
; # Skip Header
my %thread;
while () {
chomp;
my @data = split /\s*\|\s*/;
push @{$thread{$data[6]}}, \@data;
}
print "Thread | month | day | hour | minute | ExecTime\n";
for my $id (sort {$a <=> $b} keys %thread) {
my $time = sum map {$_->[7]} @{$thread{$id}};
printf "%-6s | %-5s | %-3s | %-4s | %-6s | %.03f\n", $id, @{$thread{$id}[0]}[1,2,3,4], $time;
}
__DATA__
year | month | day | hour | minute | seconds | Thread | ExecTime ( seconds )
2014 | 3 | 26 | 8 | 57 | 32 | 1 | 33.86
2014 | 3 | 26 | 8 | 57 | 45 | 2 | 0.359
2014 | 3 | 26 | 8 | 57 | 55 | 3 | 0.234
2014 | 3 | 26 | 8 | 58 | 11 | 1 | 0.14
2014 | 3 | 26 | 8 | 58 | 20 | 2 | 0.985
2014 | 3 | 26 | 8 | 58 | 29 | 3 | 0.266
2014 | 3 | 26 | 8 | 58 | 33 | 3 | 0.296
2014 | 3 | 26 | 8 | 58 | 37 | 1 | 0.25
2014 | 3 | 26 | 8 | 58 | 41 | 2 | 0.0
2014 | 3 | 26 | 8 | 58 | 46 | 1 | 0.187

输出:

Thread | month | day | hour | minute | ExecTime
1 | 3 | 26 | 8 | 57 | 34.437
2 | 3 | 26 | 8 | 57 | 1.344
3 | 3 | 26 | 8 | 57 | 0.796


推荐阅读
  • 使用eclipse创建一个Java项目的步骤
    本文介绍了使用eclipse创建一个Java项目的步骤,包括启动eclipse、选择New Project命令、在对话框中输入项目名称等。同时还介绍了Java Settings对话框中的一些选项,以及如何修改Java程序的输出目录。 ... [详细]
  • fileuploadJS@sectionscripts{<scriptsrc~Contentjsfileuploadvendorjquery.ui.widget.js ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 20211101CleverTap参与度和分析工具功能平台学习/实践
    1.应用场景主要用于学习CleverTap的使用,该平台主要用于客户保留与参与平台.为客户提供价值.这里接触到的原因,是目前公司用到该平台的服务~2.学习操作 ... [详细]
  • 本文介绍了在Vue项目中如何结合Element UI解决连续上传多张图片及图片编辑的问题。作者强调了在编码前要明确需求和所需要的结果,并详细描述了自己的代码实现过程。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 本文讨论了在VMWARE5.1的虚拟服务器Windows Server 2008R2上安装oracle 10g客户端时出现的问题,并提供了解决方法。错误日志显示了异常访问违例,通过分析日志中的问题帧,找到了解决问题的线索。文章详细介绍了解决方法,帮助读者顺利安装oracle 10g客户端。 ... [详细]
  • 导读:在编程的世界里,语言纷繁多样,而大部分真正广泛流行的语言并不是那些学术界的产物,而是在通过自由发挥设计出来的。和那些 ... [详细]
  • Imdevelopinganappwhichneedstogetmusicfilebystreamingforplayinglive.我正在开发一个应用程序,需要通过流 ... [详细]
  • php课程Json格式规范需要注意的小细节
    JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgramming ... [详细]
  • 用ESP32与Python实现物联网(IoT)火焰检测报警系统
    下图是本案例除硬件连线外的3步导学开发过程,每个步骤中实现的功能请参考图中的说明。在硬件连线完成之后我们建议您先使用“一分钟上云体验”功能预先体验本案例的实际运行效果 ... [详细]
  • 1、概述首先和大家一起回顾一下Java消息服务,在我之前的博客《Java消息队列-JMS概述》中,我为大家分析了:然后在另一篇博客《Java消息队列-ActiveMq实战》中 ... [详细]
  • 开发笔记:UEditor调用上传图片上传文件等模块
    1、引入ue相关文件,写好初始代码为了更好的封装整一个单独的插件,这里我们要做到示例化ue后隐藏网页中的编辑窗口,并移除焦点。 ... [详细]
author-avatar
风暴工会
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有