我正在研究一个简单的文本标记Java库,除了其他要求之外,它应该是快速的.
出于这个目的,我做了一些分析,但结果给了我更糟糕的数字,然后在非配置文件模式下运行时测量.
所以我的问题是 - 分析有多可靠?这仅仅给出了方法花费的时间的信息比率吗?这是否考虑了JIT编译器,还是只解释了分析模式?我使用NetBeans Profiler和Sun JDK 1.6.
谢谢.
在运行性能分析时,您总是会产生性能损失,因为必须测量方法的开始/停止时间,跟踪堆的对象(用于内存分析),因此存在管理开销.
但是,它会为您提供明确的指示,以找出瓶颈所在.我倾向于寻找花费最多累积时间的方法,并检查是否可以进行优化.确定是否不必要地调用方法也很有用.
使用非常小的方法,使用一小撮盐获取轮廓结果,有时测量过程可能比方法调用本身花费更多时间并使结果倾斜(可能看起来一个小的,通常被称为方法的更多绩效影响).
希望有所帮助.