最近在做个曲线刷新的程序,数据从网络服务器端读取过来。使用JFreeChart的XYSeries添加点来动态刷新曲线,无奈占用CPU太高,老是90%以上。在JFreeChart官网中找到的是在面板上显示的一屏的点的最后一个才刷新,程序的确有所改善,由于数据量太大,cpu仍旧显过高,刚开始还60、70%,到后来就慢慢就升上来了,各位大牛有什么解决方案没有?

解决方案 »

  1.   

    我以前做过一个 是这样的  
    每秒刷新 数据就行了 CPU基本和静态的差不多
      

  2.   

    你用open-flex-chart吧,flex控件,使用的是客户端的计算能力。
    jfreechart每次都需要在服务器端生成png图片,频率快的时候,你的cpu当然使用率很高
      

  3.   

    现在主要是数据从网络传输过来,数据量太大,保存到缓存的时候,画图程序读取缓存中的数据还是太慢(设置快,比如说睡眠时间少,画图每点刷新,这样耗cpu太高)。我现在考虑到的问题主要是有一下的几个:
    1.是在线程里刷新曲线的,睡眠的时间影响刷新率,sleep长,cpu自然低点,不过画得慢;
    2.曲线点的清除,一个delete,不过每次都要触发曲线刷新事件;一个clear,但是曲线显示上会有问题,刷新的时候前面的部分不完整;
    3.画图面板设置,从画图的轴坐标设置范围,结合画图取点的个数,清除。看能不能综合取得各平衡点。大家讨论下这样思路对不对啊啊 ?囧了好几天了!
      

  4.   

    这个图没画过
    可以看看JFreeChart 1.0.13 Demo 
    上面有一个图Memory Usage图
      

  5.   

    额。谢谢,不过那个Demo的不晓得咋用呢,一个html的啥也木有,要自己用那个class测试一下么?
    我看了好多人都说看Demo,没找着啥。。其实我也想看看,把源码改改看看的!
      

  6.   

    那个文件叫jfreechart-1.0.13-demo.jnlp 可以直接运行的。
      

  7.   

    没有找到你说的文件,只有html和class字节码,categorydata.xml、piedata.xml还有一个wtageinf.txt。我再上网找找!