问题描述
情况是这样的:加载页面时,会发送一个ajax请求去加载数据,然后根据数据来填充页面,我使用jmeter针对对这个ajax请求做了压力测试,当模拟100个用户并发时,结果是这样的,如图所示:查看了下响应返回的数据,没有丢包,数据还是全部获取到了平均时间是9399ms,请求时间有些长。。这种情况下是不是要优化到平均请求时间是3s左右才行呢?我好想记得一般情况下页面等待时间超过3秒,用户就会不耐烦了,这样用户体验就不好了
解决方案
解决方案二:
当然是越快越好,这要看你具体的数据结构,数据库结构,硬件性能等
解决方案三:
具体看你的软件面相用户数,还有考虑是否有数据库交互的大数据处理。。。100用户操作页面延迟近10秒是够呛的
解决方案四:
这种问题,一般先看你的硬件情况。硬件太拖后腿,程序再怎么优化也没辙
解决方案五:
晕死!死读书、拿脑袋读坏了,挺害人啊。你应该先分析你的数据,然后再纠结什么表面的“优化”问题。所谓“平均时间9399ms”来自于哪些数据?这个“压力”测试它有什么问题没有?如果它有着严重的问题,如果一个平均只占用150ms的查询被你误认为9399ms,那么就扔掉这个坑爹的“工具”吧!
解决方案六:
我很奇怪,如果一个工具告诉你“把车开到沟里”你也宁信工具不信自己吗?你看你的网页,测试时真的有20秒延迟吗?你真的相信自己一丁点速度意识都没有、只能相信这种“工具”吗?唉。
解决方案七:
引用4楼sp1234的回复:
晕死!死读书、拿脑袋读坏了,挺害人啊。你应该先分析你的数据,然后再纠结什么表面的“优化”问题。所谓“平均时间9399ms”来自于哪些数据?这个“压力”测试它有什么问题没有?如果它有着严重的问题,如果一个平均只占用150ms的查询被你误认为9399ms,那么就扔掉这个坑爹的“工具”吧!
我看了下获取到的数据,是正常的,我测试的时候是模拟100个用户发出请求,每个请求之间间隔时间为2s,这样的测试条件也没什什么问题吧?我之前试过,当数据库中表的数据量只有十多万时,速度还是很快的,当加大数据量然后再测试的时候就变慢了
解决方案八:
一次查询几百万数据,不慢是不可能的,不管你用什么方法优化,都没可能让这个速度变快,能做的仅仅是让浏览器看起来没有卡住而已你应该对查询条件进行过滤,不让用户一次性把数据库里的数据都弄出来万一数据库里有几亿条数据,你让用户等到天荒地老啊
解决方案九:
单个请求:直接在客户端执行sql所耗时间能接受吗,如果不能,可以考虑下优化sql语句、升级数据库服务器硬件、升级带宽等;ajax请求获取数据耗时跟上面耗时相差大吗,如果很大,可以看下能不能优化程序。如果单个请求ok的话,多个请求不ok,那就升级硬件、带宽、买多几台服务器等。当然客户端硬件如果很烂也会有影响。用户体验当然是希望越快越好。