Commit Graph

159 Commits

Author SHA1 Message Date
Eric Rahm
07c97a5afe Bug 1423773 - Part 1: Remove usage of nsStringGlue.h. r=glandium
This removes an unnecessary level of indirection by replacing all
nsStringGlue.h instances with just nsString.h.

--HG--
extra : rebase_source : 340989240af4018f3ebfd92826ae11b0cb46d019
2017-12-06 16:52:51 -08:00
Nicholas Nethercote
1aef116268 Bug 1401100 - Remove nsIMemoryReporterCallback. r=erahm.
nsIHandleReportCallback, typedef of nsIMemoryReporterCallback, has been the
preferred name for a long time and is used in most places. This patch removes
nsIMemoryReporterCallback.

--HG--
extra : rebase_source : c675076b4f98d93d96235dad890e31e0b0e6c277
2017-09-22 08:09:29 +10:00
Eric Rahm
197f29015a Bug 1376038 - Part 1: Use a cached ghost window value for the distinguished amount. r=mccr8
We already periodically calculate the ghost window amount after cycle
collection, this just uses a cached value of that for the distinguished amount.
This avoids the overhead of a recalculating the value when reporting telemetry.

--HG--
extra : histedit_source : 4ba3ee62fd2871a87970faca8a70b2284e83981d%2C9246ac39cea50c3bb0d1693d8e831c3b3ad33ad9
2017-07-11 13:58:20 -07:00
Nicholas Nethercote
78adeaf317 Bug 1393384 (attempt 2) - Take advantage of new support for measuring heap blocks via interior pointers. r=erahm.
We now have jemalloc_ptr_info() and moz_malloc_enclosing_size_of(), which can
be used to measure heap blocks via interior pointers. This patch does the
following.

- Adds MOZ_DEFINE_MALLOC_ENCLOSING_SIZE_OF, for defining
  measure-via-interior-pointer functions.

- Uses these functions to replace some horrid pointer arithmetic in functions
  measuring Rust types.

--HG--
extra : rebase_source : 5128408256c128222025153ae3e0f924b2499a2a
2017-09-01 17:25:52 +10:00
Sebastian Hengst
603dd8be37 Backed out changeset 5b30f38210e1 (bug 1393384) 2017-08-31 13:51:37 +02:00
Nicholas Nethercote
509fa0867c Bug 1393384 - Take advantage of new support for measuring heap blocks via interior pointers. r=erahm.
We now have jemalloc_ptr_info() and moz_malloc_enclosing_size_of(), which can
be used to measure heap blocks via interior pointers. This patch does the
following.

- Adds MOZ_DEFINE_MALLOC_ENCLOSING_SIZE_OF, for defining
  measure-via-interior-pointer functions.

- Uses these functions to replace some horrid pointer arithmetic in functions
  measuring Rust types.

--HG--
extra : rebase_source : 81940a72a4b6355b1e99cede4db40db68d4afad3
2017-08-24 19:40:32 +10:00
Ryan VanderMeulen
cc7a4548cc Backed out 3 changesets (bug 1376038) to see if it affects the ghost window numbers in bug 1388111.
Backed out changeset b89df6ea668a (bug 1376038)
Backed out changeset ae6472c17577 (bug 1376038)
Backed out changeset 8c99b4e8e6c1 (bug 1376038)
2017-08-07 21:11:42 -04:00
Eric Rahm
0dc3c70d24 Bug 1376038 - Part 1: Use a cached ghost window value for the distinguished amount. r=mccr8
We already periodically calculate the ghost window amount after cycle
collection, this just uses a cached value of that for the distinguished amount.
This avoids the overhead of a recalculating the value when reporting telemetry.
2017-07-11 13:58:20 -07:00
Cervantes Yu
9b7ab955c8 Bug 1375281 - Part 1: Add getHeapAllocatedAsync() to nsIMemoryReporter.idl. r=erahm
nsIMemoryReporter::getHeapAllocatedAsync() is added to get attribute
'heapAllocated' asynchronously.

MozReview-Commit-ID: 96KyZpCeTG1

--HG--
extra : rebase_source : 5c27b26788a3a96821ce054911dda8ce2932007d
extra : amend_source : fcb923dac2dfa9d7aa5bf520d38c5bb11f0d60e9
extra : histedit_source : 83ae65c153f7cef6c6529296838a9d9aa367219e
2017-07-06 11:19:32 +08:00
Andrea Marchesini
5e4e74e859 Bug 1310973 - Fixing a comment in nsIMemoryReporter.idl, r=me 2016-10-18 12:37:23 +02:00
Andrew Osmond
31ad519348 Bug 1275464 - Part 1. Unregister from handling image memory reports when shutting down. r=njn 2016-09-19 13:29:59 -04:00
Nicholas Nethercote
c2306345d5 Bug 1297658 - Avoid unnecessary checking in memory reporters. r=erahm.
This patch removes checking of all the callback calls in memory reporter
CollectReport() functions, because it's not useful.

The patch also does some associated clean-up.

- Replaces some uses of nsIMemoryReporterCallback with the preferred
  nsIHandleReportCallback typedef.

- Replaces aCallback/aCb/aClosure with aHandleRepor/aData for CollectReports()
  parameter names, for consistency.

- Adds MOZ_MUST_USE/[must_use] in a few places in nsIMemoryReporter.idl.

- Uses the MOZ_COLLECT_REPORT macro in all suitable places.

Overall the patch reduces code size by ~300 lines and reduces the size of
libxul by about 37 KiB on my Linux64 builds.

--HG--
extra : rebase_source : e94323614bd10463a0c5134a7276238a7ca1cf23
2016-08-24 15:23:45 +10:00
Nicholas Nethercote
9d5a878581 Bug 1291970 (part 1) - Use MOZ_MUST_USE in nsMemoryReporterManager. r=erahm.
--HG--
extra : rebase_source : 11223e1aadb08c2ce71f783d68b37c135fe4bee5
2016-08-04 12:14:14 +10:00
Nicholas Nethercote
6373d8547c Bug 1252375 - Fix up jemalloc stats reporting. r=erahm.
We have some oddities in our jemalloc stats reporting.

- "heap-overhead-ratio" is a strange measurement: overhead / non-overhead,
  expressed as a percentage. And it omits "bin_unused", which appears to be an
  oversight.

- "heap-committed" also omits "bin_unused".

- There are some minor errors in memory report descriptions.

This patch fixes these and improves the heap reporting. It makes the following
reporting changes:

- "heap-allocated": Duplicated as "heap-committed/allocated". (We keep
  "heap-allocated" because that's a special value used in the computation of
  "heap-unclassified".)

- "heap-committed/overhead": Added; it's the same as the sum of the
  "explicit/heap-overhead/*" values. Together with "heap-committed/allocated"
  it shows clearly what fraction of the heap is overhead and what fraction is
  useful.

- "heap-committed": Removed; now implicit as the "heap-committed/" node.

- "heap-overhead-ratio":
  - Removed from memory reports; now shown as the percentage of the new
    "heap-committed/overhead" node.
  - Still available as a distinguished amount (because it's useful in
    isolation) but renamed to heapOverheadFraction, and the telemetry ID is
    renamed as MEMORY_HEAP_OVERHEAD_FRACTION.

- "heap-chunks": Removed; it's not that interesting, and can be manually
  computed as "heap-mapped" / "heap-chunksize" if necessary.

--HG--
extra : rebase_source : 6f238cda780eb17b2de2f8b9a0b04377c93b109c
2016-03-03 12:49:27 +11:00
Eric Rahm
4c23f5cd8d Bug 1251482 - Remove remaining references to MOZILLA_XPCOMRT_API from xpcom. r=froydnj 2016-02-26 18:10:56 -08:00
Wes Kocher
72d9604d91 Backed out 8 changesets (bug 1251482, bug 1251494, bug 1251473, bug 1239870) for gtest failures
Backed out changeset f064a5efbb8c (bug 1251494)
Backed out changeset 9e33adec1aa6 (bug 1251482)
Backed out changeset ab0347657e25 (bug 1251473)
Backed out changeset 1d385d4f195d (bug 1239870)
Backed out changeset ceb3e1ee7dda (bug 1239870)
Backed out changeset 8574075bf42f (bug 1239870)
Backed out changeset ba077a3afbc7 (bug 1239870)
Backed out changeset eb99ab06414d (bug 1239870)

MozReview-Commit-ID: 7r9SEk4VGNU
2016-02-26 17:14:57 -08:00
Eric Rahm
ae72b68e62 Bug 1251482 - Remove remaining references to MOZILLA_XPCOMRT_API from xpcom. r=froydnj 2016-02-26 15:31:19 -08:00
Kyle Huey
91efc5a86c Bug 1241764: Replace nsPIDOMWindow with nsPIDOMWindowInner/Outer. r=mrbkap,smaug 2016-01-30 09:05:36 -08:00
Eric Rahm
80fca20565 Bug 1194555 - Part 6: Run reporters asynchronously. r=njn,jld,ted 2015-10-14 16:52:59 -07:00
Eric Rahm
e93f0f86a3 Bug 1194555 - Part 5: Add option for async memory reporters. r=njn 2015-10-14 16:52:58 -07:00
Eric Rahm
b257c6378a Bug 1194555 - Part 3: Remove |getReportsForThisProcess| from the nsIMemoryReporterManager interface. r=njn
|getReportsForThisProcess| differs from |getReports| in that it is limited to current process and is synchronous. When asynchronous memory reporters are added the function will no longer be able tobe synchronous. There isn't much utility in only measuring the current process, so we can remove the function and switch existing users to |getReports|.
2015-10-14 16:52:55 -07:00
Eric Rahm
acd4358a2a Bug 1194555 - Part 2: Remove |explicit| attribute from nsIMemoryReporterManager. r=njn
The calculation of |explicit| relies on the synchronous |getReportsForThisProcess|, once we have asynchronous reporters this will no longer work. As it is currently referenced in the about::memory tests we can just remove it.
2015-10-14 16:52:54 -07:00
Eric Rahm
61d0f893cd Bug 1194555 - Part 1: Remove RunReportersForThisProcess. r=njn
RunReportersForThisProcess is no longer used and will no longer work once we have async reporters.
2015-10-14 16:52:53 -07:00
Wes Kocher
a69f1f52e7 Backed out 7 changesets (bug 1194555) for xpcshell failures
Backed out changeset e77be333f4fb (bug 1194555)
Backed out changeset 11951462a37c (bug 1194555)
Backed out changeset 99b27aa952c5 (bug 1194555)
Backed out changeset 70a8ed3b6a45 (bug 1194555)
Backed out changeset 748bfebe81e7 (bug 1194555)
Backed out changeset cbaac05a2934 (bug 1194555)
Backed out changeset fcbfd1379fcd (bug 1194555)
2015-10-06 14:40:51 -07:00
Eric Rahm
f2e4cb7dfe Bug 1194555 - Part 6: Run reporters asynchronously. r=njn,jld 2015-10-06 11:23:36 -07:00
Eric Rahm
d3e60f2da6 Bug 1194555 - Part 5: Add option for async memory reporters. r=njn 2015-10-06 11:23:35 -07:00
Eric Rahm
16b67b6d6c Bug 1194555 - Part 3: Remove |getReportsForThisProcess| from the nsIMemoryReporterManager interface. r=njn
|getReportsForThisProcess| differs from |getReports| in that it is limited to current process and is synchronous. When asynchronous memory reporters are added the function will no longer be able tobe synchronous. There isn't much utility in only measuring the current process, so we can remove the function and switch existing users to |getReports|.
2015-10-06 11:23:33 -07:00
Eric Rahm
57bd025868 Bug 1194555 - Part 2: Remove |explicit| attribute from nsIMemoryReporterManager. r=njn
The calculation of |explicit| relies on the synchronous |getReportsForThisProcess|, once we have asynchronous reporters this will no longer work. As it is currently referenced in the about::memory tests we can just remove it.
2015-10-06 11:23:32 -07:00
Eric Rahm
e15a1912e0 Bug 1194555 - Part 1: Remove RunReportersForThisProcess. r=njn
RunReportersForThisProcess is no longer used and will no longer work once we have async reporters.
2015-10-06 11:23:31 -07:00
Nate Hughes
94f8966c4b Bug 986302 - Add memory reporting for HPACK tables r=hurley r=njn 2015-07-17 14:38:10 -07:00
Carsten "Tomcat" Book
f7531b86f7 Backed out changeset 8b90b21e0c64 (bug 986302) for static build failures 2015-07-21 08:53:37 +02:00
Nate Hughes
3f6e8d3da5 Bug 986302 - Add memory reporting for HPACK tables. r=hurley r=njn 2015-07-17 14:38:10 -07:00
Randall Barker
c236b48231 Bug 1093934 - Create a XPCOM library that can be used to support standalone WebRTC. r=nfroyd
--HG--
extra : rebase_source : 93f11457b16b344e148a6fcb924b286ef8a48051
2015-04-03 15:52:00 +02:00
Wes Kocher
e226c762ee Backed out changeset 0f5799df920b (bug 1093934) for various test failures CLOSED TREE
--HG--
extra : amend_source : 047ed43008cea68775c544cdf0df2819cfb24589
2015-04-02 13:42:34 -07:00
Randall Barker
683155c363 Bug 1093934 - Create a XPCOM library that can be used to support standalone WebRTC r=froydnj 2015-04-02 12:12:37 -07:00
Nicholas Nethercote
b5b1a4609e Bug 1145007 (part 2) - Add a "resident-peak" distinguished amount and memory reporter on Unix. r=erahm.
--HG--
extra : rebase_source : 3fb7c2020d3abd29fdbf8042a0932b24d92b234b
2015-03-19 15:16:37 -07:00
Andrew McCreight
7065703fce Bug 1055280 - Move CountingAllocatorBase into its own header file. r=froydnj 2014-08-25 12:34:00 -07:00
Andrew McCreight
61760ede9d Bug 1055322 - The realloc for libnestegg should free with size 0. r=froydnj 2014-08-21 14:43:02 -07:00
Jed Davis
1e4a828cc8 Bug 956961 - Open content processes' DMD log files in the parent process. r=njn
--HG--
extra : rebase_source : 2958f582f43bfac86ec29d784b4fb8825ca17257
extra : histedit_source : 96e39e36cbe506332d761c375b902284a695901a%2C245fc9ec3c6a3bbf4e5e5ce7b0da63f4477f36b9
2014-07-02 15:59:02 -07:00
Wes Kocher
03cdc19fec Backed out 3 changesets (bug 956961) for non-unified build bustage
Backed out changeset f1be89cb58b9 (bug 956961)
Backed out changeset 272b01e4f856 (bug 956961)
Backed out changeset 56907af18c66 (bug 956961)
2014-07-02 15:03:29 -07:00
Jed Davis
adc6a05bd1 Bug 956961 - Open content processes' DMD log files in the parent process. r=njn 2014-07-02 11:27:48 -07:00
Nicholas Nethercote
aaf6fb2124 Bug 1010064 - Allow memory reports to be anonymized. r=bsmedberg.
--HG--
extra : rebase_source : 5eb756b17a97e751deb0f47e909fdb35533cb23b
2014-05-20 23:06:54 -07:00
Jan Keromnes
5afc74ea35 Bug 976024 - Track Unique Set Size in the Developer HUD. r=21, r=njn 2014-06-13 06:38:00 +02:00
Nicholas Nethercote
d71b0cc308 Bug 1014249 - Beef up the "is DMD enabled?" and "is DMD running?" checks. r=mccr8.
--HG--
extra : rebase_source : 868ce1a1e470e45f51447f5126982aaeb51905f1
2014-05-22 19:45:14 -07:00
Jonathan Watt
932496b546 Bug 590790 part 2 - Add memory reporter for VectorImage's SVGDocumentWrapper's document. r=dholbert, r=njn, r=seth 2014-05-08 10:53:00 +01:00
Nathan Froyd
b1033d7f74 Bug 993546 - refactor malloc-wrapping memory reporter implementations; r=njn 2014-04-08 13:51:20 -04:00
Jed Davis
76ab6d796b Bug 946407 - Reimplement DumpMemoryInfoToTempDir in terms of GetReports. r=njn
This winds up exposing things in the nsIMemoryReporterManager interface
that arguably don't belong at that level of abstraction -- "minimize
memory usage first" and DMD -- in order to take advantage of the
infrastructure that GetReports already has for managing the child
processes.
2014-03-04 18:27:13 -08:00
Gabriele Svelto
11bc10edd4 Bug 975434 - Remove the ability to cancel memory minimizations. r=njn 2014-02-25 16:37:30 +01:00
Nicholas Nethercote
91175eb896 Bug 955942 (part 2) - Remove MemoryUniReporter. r=mccr8.
--HG--
extra : rebase_source : 9d70016cb19637ffece6409a184bf41d574cc6b4
2013-12-07 22:09:10 -08:00
Nils Maier
ec65c8410d Bug 950391 - Add nsIMemoryReporterManager.unregisterStrongReporter. r=njn
Also do not allow to register non-native components as weak reporters.
2013-12-18 13:00:03 -05:00