最近做jfreechart时偶然发现用CombinedDomainXYPlot这种多plot混合的动态plot显示时会出现cpu占用超过50%的情况。最初以为是自己写的代码中加了没用的监听,读代码后没发现,然后是找jfreechart的demo,结果发现有同样的问题,一旦这种跟时间有关的动态chart被显示出来时,cpu都会暴涨。
网上搜了一下,没有解决方案,看来的自己动手了。
研究一下那个类的api,发现里面有几个listener, 推测是其中的某个出了问题,然后把里面的方法一个一个重写,就可以找到这个顽固不化的家伙了。
CombinedDomainXYPlot cplot = new CombinedDomainXYPlot(domainAxis){
/**
* TODO 关闭抢占CPU的监听
*/
public void plotChanged(PlotChangeEvent event) {
}
};
由于我画图的时候并不需要动态的数据,只是要这种混合plot的效果,所以只是后面把它重写一下就可以了。
网上搜了一下,没有解决方案,看来的自己动手了。
研究一下那个类的api,发现里面有几个listener, 推测是其中的某个出了问题,然后把里面的方法一个一个重写,就可以找到这个顽固不化的家伙了。







由于我画图的时候并不需要动态的数据,只是要这种混合plot的效果,所以只是后面把它重写一下就可以了。