feat: update
This commit is contained in:
@@ -1,22 +1,32 @@
|
|||||||
|
use std::fs;
|
||||||
use std::time::Instant;
|
use std::time::Instant;
|
||||||
|
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
use wasmtime::{Config, Engine, Linker, Module, Store};
|
use wasmtime::{Config, Engine, Linker, Module, Store};
|
||||||
|
|
||||||
|
fn load_file(file: &str) -> Result<Vec<u8>> {
|
||||||
|
Ok(fs::read(file)?)
|
||||||
|
}
|
||||||
|
|
||||||
fn main() -> Result<()> {
|
fn main() -> Result<()> {
|
||||||
let instant = Instant::now();
|
let instant = Instant::now();
|
||||||
let config = Config::default();
|
let config = Config::default();
|
||||||
let engine = Engine::new(&config).unwrap();
|
let engine = Engine::new(&config).unwrap();
|
||||||
|
let linker = Linker::new(&engine);
|
||||||
println!("T1: {}ms", instant.elapsed().as_millis());
|
println!("T1: {}ms", instant.elapsed().as_millis());
|
||||||
|
|
||||||
let wasm_bytes_release = include_bytes!("/Users/hatterjiang/Code/hattergit/secure-javascript-container/javascript-engine/target/wasm32-unknown-unknown/release/javascript_engine.wasm");
|
let wasm_file = std::env::var("WASM")?;
|
||||||
let wasm_bytes_debug = include_bytes!("/Users/hatterjiang/Code/hattergit/secure-javascript-container/javascript-engine/target/wasm32-unknown-unknown/debug/javascript_engine.wasm");
|
let was_bytes = load_file(&wasm_file)?;
|
||||||
let is_release = std::env::var("RELEASE").unwrap_or_else(|_| "no".into()) == "yes";
|
|
||||||
println!("T1.2: {}ms", instant.elapsed().as_millis());
|
println!("T1.2: {}ms", instant.elapsed().as_millis());
|
||||||
let module = Module::new(&engine, if is_release { &wasm_bytes_release[..] } else { &wasm_bytes_debug[..] })?;
|
let module = Module::new(&engine, &was_bytes)?;
|
||||||
println!("T2: {}ms", instant.elapsed().as_millis());
|
println!("T2: {}ms", instant.elapsed().as_millis());
|
||||||
|
|
||||||
let linker = Linker::new(&engine);
|
for _ in 0..3 {
|
||||||
|
println!(">>>>>>>>>>>>>>>>>>>>>>>>");
|
||||||
|
let instant = Instant::now();
|
||||||
|
let linker = linker.clone();
|
||||||
|
let module = module.clone();
|
||||||
|
|
||||||
let mut store = Store::new(&engine, ());
|
let mut store = Store::new(&engine, ());
|
||||||
println!("T3: {}ms", instant.elapsed().as_millis());
|
println!("T3: {}ms", instant.elapsed().as_millis());
|
||||||
|
|
||||||
@@ -62,6 +72,7 @@ fn main() -> Result<()> {
|
|||||||
println!("Result: {}", ss);
|
println!("Result: {}", ss);
|
||||||
free.call(&mut store, eval_result)?;
|
free.call(&mut store, eval_result)?;
|
||||||
println!("T7: {}ms", instant.elapsed().as_millis());
|
println!("T7: {}ms", instant.elapsed().as_millis());
|
||||||
|
}
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user