GT报告:CPU最高使用率低于CPU平均使用率
版本:3.1.0(使用master分支构建)
data.js:
var frontBackInfo={"backCpuApp":11,"backCpuArray":[0,0,0,0,0,0,0,0,0,0,0],"backCpuTotal":6049,"backFlowDownload":0,"backFlowUpload":0,"backMemoryArray":[15,13,14,14,15,15,15,14,14,14,15],"backTime":33713,"frontCpuApp":27,"frontCpuArray":[1,2],"frontCpuTotal":1091,"frontFlowDownload":0,"frontFlowUpload":0,"frontMemoryArray":[16,17],"frontTime":6048};

图例的值也不对,CPU3.7%但是对应的确实7的值
GT2版本获取CPU使用率

GT3版本获取CPU使用率
if (lastNormalInfo != null) {
//前台统计
if (isFront(lastNormalInfo.time) && isFront(normalInfo.time)) {
long frontTime = normalInfo.time - lastNormalInfo.time;
long frontCpuApp = normalInfo.cpuApp - lastNormalInfo.cpuApp;
long frontCpuTotal = normalInfo.cpuTotal - lastNormalInfo.cpuTotal;
long frontMemory = normalInfo.memory;
long frontFlowUpload = normalInfo.flowUpload - lastNormalInfo.flowUpload;
long frontFlowDownload = normalInfo.flowDownload - lastNormalInfo.flowDownload;
if (frontTime >= 0 //时间需要正向
&& frontCpuApp >= 0 && frontCpuTotal >= 0 //cpu需要正向
&& frontFlowUpload >= 0 && frontFlowDownload >= 0) {//流量需要正向
frontBackInfo.frontTime = frontBackInfo.frontTime + frontTime;
frontBackInfo.frontCpuApp = frontBackInfo.frontCpuApp + frontCpuApp;
frontBackInfo.frontCpuTotal = frontBackInfo.frontCpuTotal + frontCpuTotal;
frontBackInfo.frontCpuArray.add(frontCpuApp * 100L / frontCpuTotal);
frontBackInfo.frontMemoryArray.add(frontMemory);
frontBackInfo.frontFlowUpload = frontBackInfo.frontFlowUpload + frontFlowUpload;
frontBackInfo.frontFlowDownload = frontBackInfo.frontFlowDownload + frontFlowDownload;
}
}
在GT3中 报告读取的前台CPU最高使用率是通过frontCpuArray数组,而值的录入前提判断是要时间、cpu、流量正向,这里会不会影响到报告读取CPU值的准确性
这里的JS方法有bug
function getToolTip_CPU(time){
time = time + appInfo.startTestTime;
var normalBefore = null;
var normalAfter = null;
for(var i=0; i<normalInfos.length;i++){
if(normalInfos[i].time<time){
if(normalBefore==null || normalBefore.time<normalInfos[i].time){
normalBefore = normalInfos[i];
}
}
//此处应该改成normalInfos[i].time>=time
if(normalInfos[i].time>time){
if(normalAfter==null || normalAfter.time>normalInfos[i].time){
normalAfter = normalInfos[i];
}
}
}
if(normalBefore!=null && normalAfter!=null ){
var tip = "CPU:"+((normalAfter.cpuApp-normalBefore.cpuApp)*100/(normalAfter.cpuTotal-normalBefore.cpuTotal)).toFixed(1)+"% <br />"
return tip;
}
return "";
}
这里不应该break
@yxcSini 谢谢你的反馈,我们正在更新这些数据处理的部分,请你期待下次更新
iOS不维护了吗开发者?