画个 pv 图,有每分钟的状态,画一天的,好像用那种 js 的图表工具都会很卡,一般都怎么画的?php 的图表库可以画么。

2014-03-31 07:55:46 +08:00
 wudikua
4826 次点击
所在节点    程序员
17 条回复
dong3580
2014-03-31 09:37:16 +08:00
图图?折线图,柱状图,各种图?
不是有好多图标js插件么,表示才做完一个图图项目.
可以ajax然后从数据查看出数据,拼成json,传到前台然后,然后调用图图插件,你懂滴
yakczh
2014-03-31 09:54:22 +08:00
tomheng
2014-03-31 10:51:19 +08:00
highchart 吧,不要“好像很卡”,自己试试看喽
leopku
2014-03-31 13:18:43 +08:00
不介意使用非js图表不?

rrdtools多大数据都不卡,通用标准
dndx
2014-03-31 13:22:10 +08:00
如果能翻墙的话:

https://developers.google.com/chart/
wudikua
2014-03-31 13:41:42 +08:00
@dong3580 就是折线图,一天就是3600个点,还是挺卡的,多选几天就崩溃了。
wudikua
2014-03-31 13:49:42 +08:00
@leopku good这个是我需要的
dong3580
2014-03-31 15:51:42 +08:00
@wudikua
我前不久写的,各种图,当然也有楼主这个需求的图.
卡的原因找出来发现是存储过程耗时太多了,图还是蛮复杂的,
后来我在存储过程中将sql换成动态语句,存储过程开始用了大约2K多行,换成动态之后实际为1302行.
现在打开基本能在2S内绘制完所有的图,还能接受.
个人觉得瓶颈在sql语句上.js插件实际上不会卡.
F12看看post传回各个阶段耗时多久,瓶颈在哪儿.
PS:推荐三个插件给你jqwidgets,Highcharts,flot 如果是大数据,个人倾向第一个.
passluo
2014-03-31 15:53:28 +08:00
Highcharts +1
jyhmijack
2014-03-31 16:12:31 +08:00
Highcharts +1
wudikua
2014-03-31 19:35:36 +08:00
@dong3580 不错,比4楼那个简单,4楼那个有点麻烦,还得写perl脚本,折腾半天放弃了 =。=
lhj2100
2014-04-01 06:21:32 +08:00
一天3600个点,每个点都挤到一起!根本看不嘛!
zoosucker
2014-04-01 11:09:02 +08:00
chartjs http://www.chartjs.org/ 不过不支持低端浏览器
tywtyw2002
2014-04-01 16:35:59 +08:00
@dong3580 我监控是用python写的
sql只做archive,按天周月去存,用blob存cpickle。

后来就改用blob存gzip压缩过的json。

这样数据表会小很多。查询速度也快。

只是每天晚上需要压缩一下数据。
dong3580
2014-04-01 17:32:07 +08:00
@tywtyw2002
我们是企业项目,自然不能用py.
我做出来第一版,打开页面需要24s左右,如果中途刷新,直接卡死.
考虑到性能页面肯定要能够尽可能迅速显示出来,后来写了个超大的存储过程,传回json,然后所有的字符串处理都用js完成,这样还算行,配点动态的效果,例如努力加载中,loading个温馨提示.2s我能接受,
当然,折线图控件也找了不少,Highcharts大数据不佳,参数难以把握;flot数据多了真的很难看,并且不能很好的展示坐标点.你懂得的,客户要求都很fuck,都会要全能型的页面显示,发现效果好并且数据每一个都能够完整显示的只有jqwidgets了.
至于数据表占用大小不在我考虑范围,个人觉得不是问题,问题是你怎么查出来数据的,这一部分该是决定性能的地方.
tywtyw2002
2014-04-02 04:19:08 +08:00
@dong3580 企业太难搞,我的就是自己用,做的越简洁越好,搞个数据库也麻烦,最后就sqlite。
leopku
2014-07-11 22:58:45 +08:00
@wudikua php官方就rrdtools开发包,用python的开发包读写更爽一些

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/106574

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX