• 效能分析——词频统计的java实现方法的第一次改进


    java效能分析可以使用JProfiler

    词频统计处理的文件为WarAndPeace,大小3282KB约3.3MB,输出结果到文件

    在程序本身内开始和结束分别加入时间戳,差值平均为480-490ms。

    结果如下:

    1.统计概要

    2.CPU运行曲线:程序运行高峰可以达到21.44%,原因可能的添加不同单词到map中之前对字符处理导致的,第二高峰可能是按词频序排序导致

     

    3.内存占用情况:char数组占用较大,其原因也是读入文件进行处理必须的。String和StringBuffer,StringBuilder等也是创建了比较多的实例,如果可以的话可以尝试减少实例化数量

    4.函数运行时间和调用次数统计。其中isCharacter函数平均运行时间非常短,但是调用次数太多倒数时间占比不小,这个函数会在每个字符读入后调用,是关键函数,暂时没法缩减其调用频率。

    5.详细一些的高占比时间的函数运行统计排序,和之前的分析一样isCharacter函数运行占比较大,其他高占比函数也包括字符串处理函数。

    总结:

    由以上分析可得,isCharacter为使用次数多导致的比较高效的函数变为占比时间高的函数,字符串处理也占用了比较大的运行时间。char数组为内存占比较大的数据类型,后来对字符串的处理也会使用相对较大的内存。

    效率改进方向:提升isCharacter效率和减少字符串创建的次数。

  • 相关阅读:
    JavaScript伪协议
    http-equiv
    js 获取鼠标坐标
    js daily
    Swift中属性Properties
    Swift中类和结构体
    Swift和Java在枚举方面的比较
    Swift特有语法:闭包
    Swift和Java在函数(method/方法)方面的比较
    Swift和Java控制流比较
  • 原文地址:https://www.cnblogs.com/jx8zjs/p/5866623.html
Copyright © 2020-2023  润新知