mirror of
https://github.com/servo/servo.git
synced 2025-06-15 11:54:28 +00:00
All anonymous segments are aggregated into a single measurement, as are all segments smaller than 512 KiB. Example output: 142.89: resident-according-to-smaps 97.84: - anonymous (rw-p) 23.98: - /home/njn/moz/servo/components/servo/target/servo (r-xp) 6.58: - [heap] (rw-p) 5.36: - other 3.51: - /usr/lib/x86_64-linux-gnu/dri/i965_dri.so (r-xp) 1.33: - /lib/x86_64-linux-gnu/libc-2.19.so (r-xp) 0.93: - /home/njn/moz/servo/components/servo/target/servo (r--p) 0.76: - /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20 (r-xp) 0.74: - /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0 (r-xp) 0.50: - /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (r-xp) 0.50: - /lib/x86_64-linux-gnu/libglib-2.0.so.0.4200.1 (r-xp) 0.45: - /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2.0 (r-xp) 0.43: - /lib/x86_64-linux-gnu/libm-2.19.so (r-xp)
88 lines
1.9 KiB
Rust
88 lines
1.9 KiB
Rust
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#![feature(alloc)]
|
|
#![feature(box_syntax)]
|
|
#![feature(collections)]
|
|
#![feature(core)]
|
|
#![feature(env)]
|
|
#![feature(hash)]
|
|
#![feature(int_uint)]
|
|
#![feature(io)]
|
|
#![feature(optin_builtin_traits)]
|
|
#![feature(path)]
|
|
#![feature(plugin)]
|
|
#![feature(rustc_private)]
|
|
#![feature(std_misc)]
|
|
#![feature(unicode)]
|
|
#![feature(unsafe_destructor)]
|
|
|
|
#![allow(missing_copy_implementations)]
|
|
|
|
#[macro_use] extern crate log;
|
|
|
|
extern crate alloc;
|
|
#[macro_use] extern crate bitflags;
|
|
extern crate collections;
|
|
extern crate cssparser;
|
|
extern crate geom;
|
|
extern crate getopts;
|
|
extern crate layers;
|
|
extern crate libc;
|
|
#[no_link] #[macro_use] extern crate cssparser;
|
|
extern crate rand;
|
|
#[cfg(target_os="linux")]
|
|
extern crate regex;
|
|
extern crate "rustc-serialize" as rustc_serialize;
|
|
#[cfg(target_os="macos")]
|
|
extern crate task_info;
|
|
extern crate "time" as std_time;
|
|
extern crate text_writer;
|
|
extern crate selectors;
|
|
extern crate string_cache;
|
|
extern crate unicode;
|
|
extern crate url;
|
|
|
|
#[no_link] #[macro_use] #[plugin]
|
|
extern crate string_cache_macros;
|
|
extern crate lazy_static;
|
|
|
|
pub use selectors::smallvec;
|
|
|
|
use std::sync::Arc;
|
|
|
|
pub mod cache;
|
|
pub mod cursor;
|
|
pub mod debug_utils;
|
|
pub mod deque;
|
|
pub mod dlist;
|
|
pub mod fnv;
|
|
pub mod geometry;
|
|
pub mod logical_geometry;
|
|
pub mod memory;
|
|
pub mod namespace;
|
|
pub mod opts;
|
|
pub mod persistent_list;
|
|
pub mod range;
|
|
pub mod resource_files;
|
|
pub mod str;
|
|
pub mod task;
|
|
pub mod tid;
|
|
pub mod time;
|
|
pub mod taskpool;
|
|
pub mod task_state;
|
|
pub mod vec;
|
|
pub mod workqueue;
|
|
|
|
pub fn breakpoint() {
|
|
unsafe { ::std::intrinsics::breakpoint() };
|
|
}
|
|
|
|
// Workaround for lack of `ptr_eq` on Arcs...
|
|
#[inline]
|
|
pub fn arc_ptr_eq<T: 'static + Send + Sync>(a: &Arc<T>, b: &Arc<T>) -> bool {
|
|
let a: &T = &**a;
|
|
let b: &T = &**b;
|
|
(a as *const T) == (b as *const T)
|
|
}
|