Commit Graph

41 Commits

Author SHA1 Message Date
Creddy
bb0975878f [runtime][parser] Use ArrayBoilerplateDescription all the way
* Rename BoilerplateDescription to ObjectBoilerplateDescription
* Add literal_type flag to ObjectBoilerplateDescription,
  which is stored as zeroth element of Fixed array
* Create ArrayBoilerplateDescription with elements_kind and
  constant_elements field
* Replace CompileTimeValue and ConstantElementPair with
  ArrayBoilerplateDescription
* Kill ConstantElementPair and CompileTimeValue

Change-Id: Icb42dcfd575a27e2b64ffd5e2e61f9d703d5e986
Bug: v8:7787, chromium:818642
Reviewed-on: https://chromium-review.googlesource.com/1122411
Commit-Queue: Chandan Reddy <chandanreddy@google.com>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54272}
2018-07-05 19:31:03 +00:00
Leszek Swirski
a0b2ccea6b [object-stats] Track RelocInfo and SourcePositionTable
Change-Id: I98c03061600c1a58e1fde5936c78a877508c2fb4
Reviewed-on: https://chromium-review.googlesource.com/1101695
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53750}
2018-06-15 09:19:35 +00:00
Igor Sheludko
d2234d5a3d [heap-stats] Compute average percentage of ptr compression memory savings.
Bug: v8:7703
Change-Id: Icdeb42690f5a4db1318b51e234405d99275dabb7
Reviewed-on: https://chromium-review.googlesource.com/1068917
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53300}
2018-05-23 12:10:22 +00:00
Igor Sheludko
41e7e17338 [heap-stats] Also collect object field stats.
In particular:
* number of pointer fields
* number embedder fields
* number boxed fields
* number of unboxed double field
* number of raw data fields

Bug: v8:7703
Change-Id: I22a310d941317a0f34f67536e55fbfab5f5354cd
Reviewed-on: https://chromium-review.googlesource.com/1056532
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53188}
2018-05-15 14:59:16 +00:00
Erik Luo
ce06603212 [debug] use flag to decide whether CallHandlerInfo has side effect
Makes CallHandlerInfo its own instance type, with an additional
map to distinguish side-effect-free handlers. In a followup, we
can expose an API flag to set the map.

This CL does not support whitelisting calls to ObjectTemplates
that use SetCallAsFunctionHandler().

Bug: v8:7515
Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: Ie32fe144046a9fae3e3b1ea5602b0da3db8a5616
Reviewed-on: https://chromium-review.googlesource.com/965741
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Erik Luo <luoe@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52328}
2018-04-03 17:14:26 +00:00
Camillo Bruni
bca7242580 [tools] Improve HeapStats category percentages
- Provide sorted instance type contribution per GC
- Visualize percentages per InstanceType based on the selected GC
- Visualize percentags per category
- Use some more arrow functions
- Introduce helper.js file

Bug: v8:7266
Change-Id: I26099cc64d9545b2de9e4574da2faf52d54ad198
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/949222
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51743}
2018-03-05 18:28:51 +00:00
Camillo Bruni
c00764b6c2 [tools] Even more HeapStats improvements
- Add B/KiB/MiB units to histograms
- Auto select fileReader to open dialog when pressing enter

Bug: v8:7266
Change-Id: I6fa56d2fa112f6ddbd541304cd26a1f6bd9322ce
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/946128
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51693}
2018-03-02 12:49:12 +00:00
Camillo Bruni
767c954972 [tools] Improve HeapStats
- Categorize more instance types
- Fix GC selection dropdown labels
- Show GC times in seconds
- Collapse file reader after loading

Bug: v8:7266
Change-Id: If967ebdb887105e808cfc8fb3bc92f9da5c91fd2
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/945908
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51690}
2018-03-02 11:46:01 +00:00
Camillo Bruni
07eab90657 [tools] Improve filtering of top instance types in heap stats
Bug: v8:7266
Change-Id: Ifd3feedb0338fff9f442d6bb44c0dab5c1ac9fc6
R: mlippautz@chromium.orgA
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/943110
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51677}
2018-03-02 08:32:00 +00:00
Camillo Bruni
2ead8034bd [tools] Add loader to heap stats visualizer
- Add busy loader loop
- Drop type attributes as per suggestion
- Hide details view until loading data
- Move instruction below details section

Bug: v8:7266
Change-Id: If37699243e935a4918a4a7f7968553c2ba490c67
No-try: true
Reviewed-on: https://chromium-review.googlesource.com/916006
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51283}
2018-02-14 08:31:10 +00:00
Camillo Bruni
e0fd42770c [tools] Add Isolate model to heap stats visualizer
- Display details in isolate selection dropdown
- Sort isolates by peak live heap memory

Bug: v8:7266
Change-Id: I01dd6cced4a5febd8e58cc4b7e2bb337c30f0812
No-try: true
Reviewed-on: https://chromium-review.googlesource.com/916062
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51282}
2018-02-14 08:22:51 +00:00
Leszek Swirski
184ccebedb [heap-stats] Log on- and off-heap script sources
Special case script logging to also log the source of the script, even
if that source is off-heap in an external string.

Bug: v8:7266
Change-Id: I0d35f94f7b27d0d793d1a1a3fb8d3280960b253d
Reviewed-on: https://chromium-review.googlesource.com/899344
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51076}
2018-02-02 16:14:40 +00:00
Leszek Swirski
02cf73ccbf [object-stats] Record feedback vector slots separately
Record the various types of feedback vector slot separately, to estimate
the relative impact of e.g. load ICs vs call ICs. Also, log the unused
(i.e. uninitialized or premonomorphic) ones separately.

Bug: v8:7266
Change-Id: Ie035cf48969e39f7156dfe523fd9218749b95cfe
Reviewed-on: https://chromium-review.googlesource.com/897813
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51067}
2018-02-02 14:24:24 +00:00
Leszek Swirski
5ccf209b0f [heap-stats] Log uncompiled JSFunctions
Change-Id: I9c64f70585592bb46e993041a275b989ea71489d
Reviewed-on: https://chromium-review.googlesource.com/897529
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51041}
2018-02-01 16:19:18 +00:00
Michael Lippautz
093cfad629 [object-stats] Visualizer: Allow loading trace file format using array
No-try: true
Bug: v8:7266
Change-Id: I65e5cdfcb3d15c4b9ebb1e5da5e69de79032a5d3
Reviewed-on: https://chromium-review.googlesource.com/897609
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51037}
2018-02-01 15:22:29 +00:00
Michael Lippautz
768c41c879 [object-stats] Better accounting
- Add WASM types
- Account for FeedbackMetadata
- Account entries in FunctionTemplateInfo

Bug: v8:7266
Change-Id: I527792768bb11a3540a34e7c00db311609a40b01
Reviewed-on: https://chromium-review.googlesource.com/894524
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50977}
2018-01-31 09:06:31 +00:00
Michael Lippautz
06d8f6fa82 [object-stats] Visualizer: Allow filtering categories by used memory
Tbr: ulan@chromium.org
No-try: true
Bug: v8:7266
Change-Id: Ia0965fa085d8d92b65a9353174e123337dc1ef6b
Reviewed-on: https://chromium-review.googlesource.com/888585
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50908}
2018-01-26 16:33:24 +00:00
Michael Lippautz
5a336a0f92 [object-stats] Differentiate between regular and uncompiled SFI
Bug: v8:7266
Change-Id: I2193d762d0f59b061be79bb3bbd280520728185a
Reviewed-on: https://chromium-review.googlesource.com/888622
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50893}
2018-01-26 12:51:28 +00:00
Michael Lippautz
e47e781521 [object-stats] Visualizer: Add mime type for unzipping
Tbr: ulan@chromium.org
No-try: true
Bug: v8:7266
Change-Id: I84195b61d3f47cf2152cf68c2dc17a391c7ffec7
Reviewed-on: https://chromium-review.googlesource.com/889058
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50892}
2018-01-26 12:46:38 +00:00
Michael Lippautz
c3c53dbbf1 [object-stats] Visualizer: Check histogram sums
No-try: true
Bug: v8:7266
Change-Id: I89f54feafbd4e2a6021c3bd8e339b00ed39fc3b9
Reviewed-on: https://chromium-review.googlesource.com/883883
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50865}
2018-01-25 10:21:58 +00:00
Michael Lippautz
d6daf8b0af [object-stats] Record details for BytecodeArray and Code
FixedArrays hanging off recursively of the constant pool without any
real objects in between can be considered as meta data. They are shared
with optimized code (embedder pointers).

Bug: v8:7266
Change-Id: I4006675e17e8eea3bdc8565254d80e2ffece0ad0
Reviewed-on: https://chromium-review.googlesource.com/883361
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50837}
2018-01-24 14:32:22 +00:00
Michael Lippautz
1f7d86c187 [object-stats] Visualizer: Reset on Isolate change
No-try: true
Bug: v8:7266
Change-Id: Ia3a0142488765d36485287d0bf4ffa1e2cc635b2
Reviewed-on: https://chromium-review.googlesource.com/883141
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50826}
2018-01-24 09:17:23 +00:00
Michael Lippautz
64bf1c4fec [object-stats] Record SFI list on Script
Tbr: ulan@chromium.org
Bug: v8:7266
Change-Id: I3bafffafc662856295fa34de2c77e876e3b2a58e
Reviewed-on: https://chromium-review.googlesource.com/881172
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50819}
2018-01-23 22:25:05 +00:00
Michael Lippautz
40f6a1333f [object-stats] Visualizer: Reset percentages on update
Otherwise stale values are shown in the UI

No-try: true
Bug: v8:7266
Change-Id: I1aaf15d3b54a8d5754ad4eeb72fb9853585c56eb
Reviewed-on: https://chromium-review.googlesource.com/881442
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50808}
2018-01-23 15:32:34 +00:00
Michael Lippautz
546df30bfc [object-stats] Unpack gzipped trace files on the fly
No-try: true
Bug: v8:7266
Change-Id: I9ca2036a54c55c754cc2bb69dcca6157f88ea0fa
Reviewed-on: https://chromium-review.googlesource.com/880960
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50807}
2018-01-23 15:01:02 +00:00
Michael Lippautz
c1c7441180 [object-stats] Fix duplicate entries
bug: v8:7266
Change-Id: I8241301c9652e70c88b35ebd057af107a1c05687
Reviewed-on: https://chromium-review.googlesource.com/880622
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50788}
2018-01-23 09:32:05 +00:00
Michael Lippautz
cddf3e3f07 [object-stats] Add contexts and scope info
Bug: v8:7266
Change-Id: Ibc8df4219ea990c3e1bf7a586356689080ab9eb9
Reviewed-on: https://chromium-review.googlesource.com/879182
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50773}
2018-01-22 18:54:07 +00:00
Michael Lippautz
6f55fdc82f [object-stats] Visualizer: Show percentages in details selection
No-try: true
Bug: v8:7266
Change-Id: I778fcf6b8e1abe5eac6e2f0d2600e4c5ec9fe549
Reviewed-on: https://chromium-review.googlesource.com/878821
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50769}
2018-01-22 16:30:05 +00:00
Michael Lippautz
021f02b579 [object-stats] Add virtual types
- JSObject: Record elements and properties
- JSCollecton: Record table
- Record global caches

Bug: v8:7266
Change-Id: I16b2eb511bed3dc0fb6f7af0e7037c6d42f03885
Reviewed-on: https://chromium-review.googlesource.com/878326
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50766}
2018-01-22 15:37:59 +00:00
Michael Lippautz
8889faec94 [object-stats] Add overall counter to viewer
No-try: true
Bug: v8:7266
Change-Id: If1f67688e46e443f8e9e38f5481ce591213d2228
Reviewed-on: https://chromium-review.googlesource.com/877883
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50745}
2018-01-22 09:28:33 +00:00
Michael Lippautz
7015675a44 [object-stats] Allow zooming in histograms
No-try: true
Tbr: cbruni@chromium.org
Bug: v8:7266
Change-Id: I65ad82a8ae7b2b499ba3f2bf9fbec178edf7616a
Reviewed-on: https://chromium-review.googlesource.com/876202
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50724}
2018-01-19 14:37:27 +00:00
Michael Lippautz
91618802bf [object-stats] Redo recording of non-existing instance types
- Base recording just on the concept of virtual instance types.
- Re-add dropped types incrementally.

Bug: v8:7266
Change-Id: Ic8209ce8c6067e24536a0c62404e1160f86377db
Reviewed-on: https://chromium-review.googlesource.com/873646
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50714}
2018-01-19 12:20:45 +00:00
Camillo Bruni
cf500ac109 [object-stats] Distinguish FeedbackVector entries
Record seperate virtual instance types for entries in FeedbackVectors:
- FEEDBACK_VECTOR_ENTRY_TYPE

 Bug: v8:7266

Change-Id: Ibea0615ecd23099e0107505e5d33cf194aade7c0
Reviewed-on: https://chromium-review.googlesource.com/866878
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50678}
2018-01-18 13:00:25 +00:00
Michael Lippautz
8888d5e48b [object-stats] Add histogram
No-try: true
Bug: v8:7266
Change-Id: I8b8ec94c1909e7404774afd576968cf843c043ff
Reviewed-on: https://chromium-review.googlesource.com/873033
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50673}
2018-01-18 11:57:35 +00:00
Michael Lippautz
b68cdf2594 [object-stats] CSV export and simple fixes
Allow exporting the current selection as CSV.

No-try: true
Bug: v8:7266
Change-Id: Idd275e749506d2a195a132efa5ec08ebb21ca72f
Reviewed-on: https://chromium-review.googlesource.com/870781
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50668}
2018-01-18 08:41:23 +00:00
Michael Lippautz
fa8c68348e [object-stats] Cateogrize a few more instance types
No-try: true
Bug: v8:7266
Change-Id: I3e0d95d7c59577941e1154e21949b2714f56f652
Reviewed-on: https://chromium-review.googlesource.com/868292
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50629}
2018-01-16 20:29:58 +00:00
Michael Lippautz
0dddc6fd46 [object-stats] Add reader for Chrome's trace file format
Allows reading GC object stats data from an unpacked Chrome trace file.

No-try: true
Bug: v8:7266
Change-Id: I1b851a5b9c5937bd80ae08129d3daee8b4397500
Reviewed-on: https://chromium-review.googlesource.com/868211
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50622}
2018-01-16 14:30:59 +00:00
Michael Lippautz
96de054c96 [object-stats] Fix heap visualizer
R: hpayer@chromium.org
No-try: true
Bug: v8:7266
Change-Id: Icc8f254d4f4e7c220cc322b3c98749da5e5ea3e6
Reviewed-on: https://chromium-review.googlesource.com/866831
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50594}
2018-01-15 20:30:07 +00:00
Camillo Bruni
7b9ea02a70 [object-stats] Support boilerplate objects and arrays
Record seperate virtual instance types for boilerplates and their properties
and elements. This CL adds:
- BOILERPLATE_PROPERTY_ARRAY_TYPE
- BOILERPLATE_NAME_DICTIONARY_TYPE
- BOILERPLATE_ELEMENTS_TYPE


Bug: v8:7266
Change-Id: I2e6643d4bf067aa52eb1950a696b6535b020b097
Reviewed-on: https://chromium-review.googlesource.com/867059
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50592}
2018-01-15 18:40:46 +00:00
Michael Lippautz
85c6c8ce46 [object-stats] Enable ungrouping in visualizer
No-try: true
Bug: v8:7266
Change-Id: I981ac5b4be6117bcc46383d033d639cc3b30b617
Reviewed-on: https://chromium-review.googlesource.com/867371
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50591}
2018-01-15 18:15:26 +00:00
Michael Lippautz
b80a698d72 [tools] V8 heap stats visualizer
Visualizes --trace-gc-object-stats output.

No-try: true
Bug: v8:7266
Change-Id: I5beb15d63e645484f07fe5f2341105c4cfe0b550
Reviewed-on: https://chromium-review.googlesource.com/860580
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50587}
2018-01-15 15:27:17 +00:00