OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 var g_browserBridge; | 5 var g_browserBridge; |
6 var g_mainView; | 6 var g_mainView; |
7 | 7 |
8 // TODO(eroman): The handling of "max" across snapshots is not correct. | 8 // TODO(eroman): The handling of "max" across snapshots is not correct. |
9 // For starters the browser needs to be aware to generate new maximums. | 9 // For starters the browser needs to be aware to generate new maximums. |
10 // Secondly, we need to take into account the "max" of intermediary snapshots, | 10 // Secondly, we need to take into account the "max" of intermediary snapshots, |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
119 | 119 |
120 var BEGIN_KEY = 1; // Start at 1 rather than 0 to simplify sorting code. | 120 var BEGIN_KEY = 1; // Start at 1 rather than 0 to simplify sorting code. |
121 var END_KEY = BEGIN_KEY; | 121 var END_KEY = BEGIN_KEY; |
122 | 122 |
123 var KEY_COUNT = END_KEY++; | 123 var KEY_COUNT = END_KEY++; |
124 var KEY_RUN_TIME = END_KEY++; | 124 var KEY_RUN_TIME = END_KEY++; |
125 var KEY_AVG_RUN_TIME = END_KEY++; | 125 var KEY_AVG_RUN_TIME = END_KEY++; |
126 var KEY_MAX_RUN_TIME = END_KEY++; | 126 var KEY_MAX_RUN_TIME = END_KEY++; |
127 var KEY_QUEUE_TIME = END_KEY++; | 127 var KEY_QUEUE_TIME = END_KEY++; |
128 var KEY_AVG_QUEUE_TIME = END_KEY++; | 128 var KEY_AVG_QUEUE_TIME = END_KEY++; |
| 129 var KEY_ALLOC_OPS = END_KEY++; |
| 130 var KEY_FREE_OPS = END_KEY++; |
| 131 var KEY_ALLOCATED_BYTES = END_KEY++; |
| 132 var KEY_FREED_BYTES = END_KEY++; |
| 133 var KEY_NET_BYTES = END_KEY++; |
| 134 var KEY_ALLOC_OVERHEAD_BYTES = END_KEY++; |
| 135 var KEY_MAX_ALLOCATED_BYTES = END_KEY++; |
129 var KEY_MAX_QUEUE_TIME = END_KEY++; | 136 var KEY_MAX_QUEUE_TIME = END_KEY++; |
130 var KEY_BIRTH_THREAD = END_KEY++; | 137 var KEY_BIRTH_THREAD = END_KEY++; |
131 var KEY_DEATH_THREAD = END_KEY++; | 138 var KEY_DEATH_THREAD = END_KEY++; |
132 var KEY_PROCESS_TYPE = END_KEY++; | 139 var KEY_PROCESS_TYPE = END_KEY++; |
133 var KEY_PROCESS_ID = END_KEY++; | 140 var KEY_PROCESS_ID = END_KEY++; |
134 var KEY_FUNCTION_NAME = END_KEY++; | 141 var KEY_FUNCTION_NAME = END_KEY++; |
135 var KEY_SOURCE_LOCATION = END_KEY++; | 142 var KEY_SOURCE_LOCATION = END_KEY++; |
136 var KEY_FILE_NAME = END_KEY++; | 143 var KEY_FILE_NAME = END_KEY++; |
137 var KEY_LINE_NUMBER = END_KEY++; | 144 var KEY_LINE_NUMBER = END_KEY++; |
138 | 145 |
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
411 KEY_PROPERTIES[KEY_RUN_TIME] = { | 418 KEY_PROPERTIES[KEY_RUN_TIME] = { |
412 name: 'Total run time', | 419 name: 'Total run time', |
413 cellAlignment: 'right', | 420 cellAlignment: 'right', |
414 sortDescending: true, | 421 sortDescending: true, |
415 textPrinter: formatNumberAsText, | 422 textPrinter: formatNumberAsText, |
416 inputJsonKey: 'death_data.run_ms', | 423 inputJsonKey: 'death_data.run_ms', |
417 aggregator: SumAggregator, | 424 aggregator: SumAggregator, |
418 diff: diffFuncForCount, | 425 diff: diffFuncForCount, |
419 }; | 426 }; |
420 | 427 |
| 428 KEY_PROPERTIES[KEY_ALLOC_OPS] = { |
| 429 name: 'Allocation count', |
| 430 cellAlignment: 'right', |
| 431 sortDescending: true, |
| 432 textPrinter: formatNumberAsText, |
| 433 inputJsonKey: 'death_data.alloc_ops', |
| 434 aggregator: SumAggregator, |
| 435 diff: diffFuncForCount, |
| 436 }; |
| 437 |
| 438 KEY_PROPERTIES[KEY_FREE_OPS] = { |
| 439 name: 'Free Count', |
| 440 cellAlignment: 'right', |
| 441 sortDescending: true, |
| 442 textPrinter: formatNumberAsText, |
| 443 inputJsonKey: 'death_data.free_ops', |
| 444 aggregator: SumAggregator, |
| 445 diff: diffFuncForCount, |
| 446 }; |
| 447 |
| 448 KEY_PROPERTIES[KEY_ALLOCATED_BYTES] = { |
| 449 name: 'Allocated bytes', |
| 450 cellAlignment: 'right', |
| 451 sortDescending: true, |
| 452 textPrinter: formatNumberAsText, |
| 453 inputJsonKey: 'death_data.allocated_bytes', |
| 454 aggregator: SumAggregator, |
| 455 diff: diffFuncForCount, |
| 456 }; |
| 457 |
| 458 KEY_PROPERTIES[KEY_FREED_BYTES] = { |
| 459 name: 'Freed bytes', |
| 460 cellAlignment: 'right', |
| 461 sortDescending: true, |
| 462 textPrinter: formatNumberAsText, |
| 463 inputJsonKey: 'death_data.freed_bytes', |
| 464 aggregator: SumAggregator, |
| 465 diff: diffFuncForCount, |
| 466 }; |
| 467 |
| 468 KEY_PROPERTIES[KEY_NET_BYTES] = { |
| 469 name: 'Net allocated bytes', |
| 470 cellAlignment: 'right', |
| 471 sortDescending: true, |
| 472 textPrinter: formatNumberAsText, |
| 473 inputJsonKey: 'death_data.net_allocated_bytes', |
| 474 aggregator: SumAggregator, |
| 475 diff: diffFuncForCount, |
| 476 }; |
| 477 |
| 478 KEY_PROPERTIES[KEY_ALLOC_OVERHEAD_BYTES] = { |
| 479 name: 'Overhead bytes', |
| 480 cellAlignment: 'right', |
| 481 sortDescending: true, |
| 482 textPrinter: formatNumberAsText, |
| 483 inputJsonKey: 'death_data.alloc_overhead_bytes', |
| 484 aggregator: SumAggregator, |
| 485 diff: diffFuncForCount, |
| 486 }; |
| 487 |
| 488 KEY_PROPERTIES[KEY_MAX_ALLOCATED_BYTES] = { |
| 489 name: 'Max allocated (outstanding) bytes', |
| 490 cellAlignment: 'right', |
| 491 sortDescending: true, |
| 492 textPrinter: formatNumberAsText, |
| 493 inputJsonKey: 'death_data.max_allocated_bytes', |
| 494 aggregator: MaxAggregator, |
| 495 diff: diffFuncForMax, |
| 496 }; |
| 497 |
421 KEY_PROPERTIES[KEY_AVG_RUN_TIME] = { | 498 KEY_PROPERTIES[KEY_AVG_RUN_TIME] = { |
422 name: 'Avg run time', | 499 name: 'Avg run time', |
423 cellAlignment: 'right', | 500 cellAlignment: 'right', |
424 sortDescending: true, | 501 sortDescending: true, |
425 textPrinter: formatNumberAsText, | 502 textPrinter: formatNumberAsText, |
426 aggregator: AvgAggregator.create(KEY_RUN_TIME, KEY_COUNT), | 503 aggregator: AvgAggregator.create(KEY_RUN_TIME, KEY_COUNT), |
427 }; | 504 }; |
428 | 505 |
429 KEY_PROPERTIES[KEY_MAX_RUN_TIME] = { | 506 KEY_PROPERTIES[KEY_MAX_RUN_TIME] = { |
430 name: 'Max run time', | 507 name: 'Max run time', |
(...skipping 12 matching lines...) Expand all Loading... |
443 textPrinter: formatNumberAsText, | 520 textPrinter: formatNumberAsText, |
444 aggregator: AvgAggregator.create(KEY_QUEUE_TIME, KEY_COUNT), | 521 aggregator: AvgAggregator.create(KEY_QUEUE_TIME, KEY_COUNT), |
445 }; | 522 }; |
446 | 523 |
447 KEY_PROPERTIES[KEY_SOURCE_LOCATION] = { | 524 KEY_PROPERTIES[KEY_SOURCE_LOCATION] = { |
448 name: 'Source location', | 525 name: 'Source location', |
449 type: 'string', | 526 type: 'string', |
450 aggregator: UniquifyAggregator, | 527 aggregator: UniquifyAggregator, |
451 }; | 528 }; |
452 | 529 |
| 530 |
453 /** | 531 /** |
454 * Returns the string name for |key|. | 532 * Returns the string name for |key|. |
455 */ | 533 */ |
456 function getNameForKey(key) { | 534 function getNameForKey(key) { |
457 var props = KEY_PROPERTIES[key]; | 535 var props = KEY_PROPERTIES[key]; |
458 if (props == undefined) | 536 if (props == undefined) |
459 throw 'Did not define properties for key: ' + key; | 537 throw 'Did not define properties for key: ' + key; |
460 return props.name; | 538 return props.name; |
461 } | 539 } |
462 | 540 |
(...skipping 1740 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2203 groupKey.push(entry); | 2281 groupKey.push(entry); |
2204 } | 2282 } |
2205 | 2283 |
2206 return JSON.stringify(groupKey); | 2284 return JSON.stringify(groupKey); |
2207 }; | 2285 }; |
2208 }, | 2286 }, |
2209 }; | 2287 }; |
2210 | 2288 |
2211 return MainView; | 2289 return MainView; |
2212 })(); | 2290 })(); |
OLD | NEW |