Ms2ger
ba71eb21b0
Initialize info directly in get_system_heap_allocated.
2015-07-15 10:08:45 +02:00
Ms2ger
73a7e92bfd
Update to rustc 2d0cbf3e3e25e092bd9e4c94d08e446b680869f0.
2015-06-25 20:02:36 +02:00
Nicholas Nethercote
48a0725c01
Measure LocalLayoutContexts in LayoutTask and LayoutWorkers.
...
The FreeType instances in layout workers are reasonably large and worth
measuring. The one in LayoutTask is smaller but it's easy to measure at the
same time. Sample output:
```
| 8.33 MiB -- pages
| 8.33 MiB -- url(file:///home/njn/moz/servo/../servo-static-suite/wikipedia/Guardians%20of%20the%20Galaxy%20(film)%20-%20Wikipedia,%20the%20free%20encyclopedia.html)
| 1.32 MiB -- layout-worker-0-local-context
| 1.31 MiB -- layout-worker-1-local-context
| 1.24 MiB -- layout-worker-3-local-context
| 1.17 MiB -- layout-worker-4-local-context
| 1.08 MiB -- layout-worker-2-local-context
| 1.06 MiB -- layout-worker-5-local-context
| 0.78 MiB -- paint-task
| 0.78 MiB -- buffer-map
| 0.38 MiB -- layout-task
| 0.30 MiB -- display-list
| 0.07 MiB -- local-context
```
This required adding a mechanism to WorkQueue to measure worker TLSes.
2015-06-10 21:06:59 -07:00
Manish Goregaokar
89d4ee88f4
Audit and reduce unstable usage in profile
...
Reasons behind existing unstable features:
collections:
- `[T].tail()` (naming)
- Could use iterators instead
2015-06-10 00:20:12 +05:30
Eduard Burtescu
00e8e5f77d
Use the correct log crate and setup env_logger in main.
2015-06-06 23:20:40 +03:00
Jack Moffitt
29fcdce5e0
Switch task_info to use modern Cargo tools.
2015-05-29 17:40:15 -06:00
Nicholas Nethercote
640e68bbbd
Recursively sort memory report sub-trees.
...
This puts the larger sub-trees first. E.g. this:
```
| 1.04 MiB -- url(http://en.wikipedia.org/wiki/Main_Page )
| 0.26 MiB -- display-list
| 0.78 MiB -- paint-task # new output line
| 0.78 MiB -- buffer-map # new output line
```
becomes this:
```
| 1.04 MiB -- url(http://en.wikipedia.org/wiki/Main_Page )
| 0.78 MiB -- paint-task # new output line
| 0.78 MiB -- buffer-map # new output line
| 0.26 MiB -- display-list
```
This matches how Firefox's about:memory works.
Now that this is done for all sub-trees, the ad hoc sorting done for
Linux segments is no longer necessary, and has been removed.
2015-05-27 18:57:13 -07:00
Simon Sapin
ef8edd4e87
Upgrade to rustc 551a74dddd84cf01440ee84148ebd18bc68bd7c8.
2015-05-05 10:07:34 -04:00
Nicholas Nethercote
092507d23c
Add a profile_traits
crate to reduce compile times.
...
A rebuild after touching components/profile/mem.rs now takes 48 seconds (and
only rebuilds `profile` and `servo`) which is much lower than it used to be.
In comparison, a rebuild after touching components/profile_traits/mem.rs takes
294 seconds and rebuilds many more crates.
This change also removes some unnecessary crate dependencies in `net` and
`net_traits`.
2015-04-30 17:58:47 -07:00
Ms2ger
6a55ae06d7
Remove some as_slice calls.
2015-04-24 17:44:47 +02:00
Ms2ger
4d41f1c991
Stop using the deprecated range function.
2015-04-22 20:26:40 +02:00
Nicholas Nethercote
66902d2c90
Use usize rather than u64 in MemoryReport.
...
I should have used usize in the first place.
2015-03-31 15:37:15 +02:00
Brandon DeRosier
ccc55d658f
Use box syntax instead of Box::new()
...
Closes #5417
2015-03-29 13:41:14 -04:00
Nicholas Nethercote
ce36e574f4
Rename lots of profiling-related things.
...
------------------------------------------------------------------------
BEFORE AFTER
------------------------------------------------------------------------
util::memory util::mem
- heap_size_of - heap_size_of (unchanged)
- SizeOf - HeapSizeOf
- size_of_excluding_self - heap_size_of_children
prof::mem prof::mem
- MemoryProfilerChan - ProfilerChan
- MemoryReport - Report
- MemoryReportsChan - ReportsChan
- MemoryReporter - Reporter
- MemoryProfilerMsg - ProfilerMsg
- {R,UnR}egisterMemoryReporter - {R,UnR}egisterReporter
- MemoryProfiler - Prof
- ReportsForest - ReportsForest (unchanged)
- ReportsTree - ReportsTree (unchanged)
- SystemMemoryReporter - SystemReporter
prof::time prof::time
- TimeProfilerChan - ProfilerChan
- TimerMetadata - TimerMetadata (unchanged)
- Formatable - Formattable [spelling!]
- TimeProfilerMsg - ProfilerMsg
- TimeProfilerCategory - ProfilerCategory
- TimeProfilerBuckets - ProfilerBuckets
- TimeProfiler - Profiler
- TimerMetadataFrameType - TimerMetadataFrameType (unchanged)
- TimerMetadataReflowType - TimerMetadataReflowType (unchanged)
- ProfilerMetadata - ProfilerMetadata (unchanged)
In a few places both prof::time and prof::mem are used, and so
module-qualification is needed to avoid overlap, e.g. time::Profiler and
mem::Profiler. Likewise with std::mem and prof::mem. This is not a big
deal.
2015-03-25 16:00:23 -07:00
Nicholas Nethercote
52447ccd9b
Move profiler code from util
into a new crate profile
.
...
- Most of util::memory has been moved into profile::mem, though the
`SizeOf` trait and related things remain in util::memory. The
`SystemMemoryReporter` code is now in a submodule
profile::mem::system_reporter.
- util::time has been moved entirely into profile::time.
2015-03-24 02:09:31 -07:00