BasicTimeData.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. Ext.define('PageAnalyzer.models.BasicTimeData', {
  2. extend: 'Ext.data.Model',
  3. fields: [
  4. { name: 'environment', type: 'string' },
  5. { name: 'build', type: 'string' },
  6. { name: 'test', type: 'string' },
  7. { name: 'measure', type: 'string' },
  8. { name: 'path', type: 'string' },
  9. { name: 'avgTime', type: 'float', defaultValue: 0 },
  10. { name: 'avgTimePerCall', type: 'float', defaultValue: 0 },
  11. { name: 'sumAvgTime', type: 'float', defaultValue: 0 },
  12. { name: 'sumAvgTimePerCall', type: 'float', defaultValue: 0 },
  13. { name: 'minCalls', type: 'int', defaultValue: 0 },
  14. { name: 'maxCalls', type: 'int', defaultValue: 0 },
  15. { name: 'numSamples', type: 'int', defaultValue: 0 }
  16. ],
  17. addSample: function (time, numCalls) {
  18. var me = this,
  19. data = me.data;
  20. if (numCalls) {
  21. if (1 == ++data.numSamples) {
  22. data.minCalls = data.maxCalls = numCalls;
  23. } else {
  24. if (data.minCalls > numCalls) {
  25. data.minCalls = numCalls;
  26. }
  27. if (data.maxCalls < numCalls) {
  28. data.maxCalls = numCalls;
  29. }
  30. }
  31. data.sumAvgTime += time;
  32. data.sumAvgTimePerCall += time / numCalls;
  33. data.avgTime = Math.round(data.sumAvgTime / data.numSamples * 100) / 100;
  34. data.avgTimePerCall = Math.round(data.sumAvgTimePerCall / data.numSamples * 100) / 100;
  35. }
  36. }
  37. });