Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(71)

Side by Side Diff: Source/devtools/front_end/HeapSnapshot.js

Issue 23609064: Make "three snapshot technique" work on heap snapshots loaded from files (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2011 Google Inc. All rights reserved. 2 * Copyright (C) 2011 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 654 matching lines...) Expand 10 before | Expand all | Expand 10 after
665 var retainingNodes = this._retainingNodes = new Uint32Array(this._edgeCo unt); 665 var retainingNodes = this._retainingNodes = new Uint32Array(this._edgeCo unt);
666 var retainingEdges = this._retainingEdges = new Uint32Array(this._edgeCo unt); 666 var retainingEdges = this._retainingEdges = new Uint32Array(this._edgeCo unt);
667 // Index of the first retainer in the _retainingNodes and _retainingEdge s 667 // Index of the first retainer in the _retainingNodes and _retainingEdge s
668 // arrays. Addressed by retained node index. 668 // arrays. Addressed by retained node index.
669 var firstRetainerIndex = this._firstRetainerIndex = new Uint32Array(this .nodeCount + 1); 669 var firstRetainerIndex = this._firstRetainerIndex = new Uint32Array(this .nodeCount + 1);
670 670
671 var containmentEdges = this._containmentEdges; 671 var containmentEdges = this._containmentEdges;
672 var edgeFieldsCount = this._edgeFieldsCount; 672 var edgeFieldsCount = this._edgeFieldsCount;
673 var nodeFieldCount = this._nodeFieldCount; 673 var nodeFieldCount = this._nodeFieldCount;
674 var edgeToNodeOffset = this._edgeToNodeOffset; 674 var edgeToNodeOffset = this._edgeToNodeOffset;
675 var nodes = this._nodes;
676 var firstEdgeIndexes = this._firstEdgeIndexes; 675 var firstEdgeIndexes = this._firstEdgeIndexes;
677 var nodeCount = this.nodeCount; 676 var nodeCount = this.nodeCount;
678 677
679 for (var toNodeFieldIndex = edgeToNodeOffset, l = containmentEdges.lengt h; toNodeFieldIndex < l; toNodeFieldIndex += edgeFieldsCount) { 678 for (var toNodeFieldIndex = edgeToNodeOffset, l = containmentEdges.lengt h; toNodeFieldIndex < l; toNodeFieldIndex += edgeFieldsCount) {
680 var toNodeIndex = containmentEdges[toNodeFieldIndex]; 679 var toNodeIndex = containmentEdges[toNodeFieldIndex];
681 if (toNodeIndex % nodeFieldCount) 680 if (toNodeIndex % nodeFieldCount)
682 throw new Error("Invalid toNodeIndex " + toNodeIndex); 681 throw new Error("Invalid toNodeIndex " + toNodeIndex);
683 ++firstRetainerIndex[toNodeIndex / nodeFieldCount]; 682 ++firstRetainerIndex[toNodeIndex / nodeFieldCount];
684 } 683 }
685 for (var i = 0, firstUnusedRetainerSlot = 0; i < nodeCount; i++) { 684 for (var i = 0, firstUnusedRetainerSlot = 0; i < nodeCount; i++) {
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after
917 */ 916 */
918 _bfs: function(nodesToVisit, nodesToVisitLength, distances) 917 _bfs: function(nodesToVisit, nodesToVisitLength, distances)
919 { 918 {
920 // Preload fields into local variables for better performance. 919 // Preload fields into local variables for better performance.
921 var edgeFieldsCount = this._edgeFieldsCount; 920 var edgeFieldsCount = this._edgeFieldsCount;
922 var nodeFieldCount = this._nodeFieldCount; 921 var nodeFieldCount = this._nodeFieldCount;
923 var containmentEdges = this._containmentEdges; 922 var containmentEdges = this._containmentEdges;
924 var firstEdgeIndexes = this._firstEdgeIndexes; 923 var firstEdgeIndexes = this._firstEdgeIndexes;
925 var edgeToNodeOffset = this._edgeToNodeOffset; 924 var edgeToNodeOffset = this._edgeToNodeOffset;
926 var edgeTypeOffset = this._edgeTypeOffset; 925 var edgeTypeOffset = this._edgeTypeOffset;
927 var nodes = this._nodes;
928 var nodeCount = this.nodeCount; 926 var nodeCount = this.nodeCount;
929 var containmentEdgesLength = containmentEdges.length; 927 var containmentEdgesLength = containmentEdges.length;
930 var edgeWeakType = this._edgeWeakType; 928 var edgeWeakType = this._edgeWeakType;
931 var noDistance = this._noDistance; 929 var noDistance = this._noDistance;
932 930
933 var index = 0; 931 var index = 0;
934 while (index < nodesToVisitLength) { 932 while (index < nodesToVisitLength) {
935 var nodeIndex = nodesToVisit[index++]; // shift generates too much g arbage. 933 var nodeIndex = nodesToVisit[index++]; // shift generates too much g arbage.
936 var nodeOrdinal = nodeIndex / nodeFieldCount; 934 var nodeOrdinal = nodeIndex / nodeFieldCount;
937 var distance = distances[nodeOrdinal] + 1; 935 var distance = distances[nodeOrdinal] + 1;
(...skipping 912 matching lines...) Expand 10 before | Expand all | Expand 10 after
1850 return indexA - indexB; 1848 return indexA - indexB;
1851 return result; 1849 return result;
1852 } 1850 }
1853 1851
1854 this._iterationOrder.sortRange(sortByComparator, leftBound, rightBound, windowLeft, windowRight); 1852 this._iterationOrder.sortRange(sortByComparator, leftBound, rightBound, windowLeft, windowRight);
1855 }, 1853 },
1856 1854
1857 __proto__: WebInspector.HeapSnapshotFilteredOrderedIterator.prototype 1855 __proto__: WebInspector.HeapSnapshotFilteredOrderedIterator.prototype
1858 } 1856 }
1859 1857
OLDNEW
« no previous file with comments | « Source/devtools/front_end/CPUProfileView.js ('k') | Source/devtools/front_end/HeapSnapshotProxy.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698