/// MmapSerializatioSink is faster on macOS and Linux
/// but FileSerializationSink is faster on Windows
-#[cfg(not(windows))]
+#[cfg(all(not(windows),not(target_arch="wasm32")))]
type SerializationSink = measureme::MmapSerializationSink;
-#[cfg(windows)]
+#[cfg(all(windows,not(target_arch="wasm32")))]
type SerializationSink = measureme::FileSerializationSink;
+#[cfg(target_arch="wasm32")]
+type SerializationSink = measureme::ByteVecSink;
type Profiler = measureme::Profiler<SerializationSink>;
}
// Memory reporting
-#[cfg(unix)]
+#[cfg(all(unix,not(target_arch="wasm32")))]
fn get_resident() -> Option<usize> {
let field = 1;
let contents = fs::read("/proc/self/statm").ok()?;
Some(npages * 4096)
}
-#[cfg(windows)]
+#[cfg(all(windows,not(target_arch="wasm32")))]
fn get_resident() -> Option<usize> {
use std::mem::{self, MaybeUninit};
use winapi::shared::minwindef::DWORD;
}
}
}
+
+#[cfg(target_arch="wasm32")]
+fn get_resident() -> Option<usize> {
+ None
+}