aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Jarred SUmner <jarred@jarredsumner.com> 2021-10-03 02:22:00 -0700
committerGravatar Jarred SUmner <jarred@jarredsumner.com> 2021-10-03 02:22:00 -0700
commitf4a4e793aa964ba2d0883a19205c32ec01eaf8f0 (patch)
treef93dfee8d14c117bfd4077c285deebd0eaec39ba
parentcdabcfd9d09d2f4928ba7a918f654e001bb3c2eb (diff)
downloadbun-f4a4e793aa964ba2d0883a19205c32ec01eaf8f0.tar.gz
bun-f4a4e793aa964ba2d0883a19205c32ec01eaf8f0.tar.zst
bun-f4a4e793aa964ba2d0883a19205c32ec01eaf8f0.zip
Add Three.js benchmark
-rw-r--r--examples/lotta-modules/index.js20
-rw-r--r--examples/lotta-modules/package.json21
-rw-r--r--src/global.zig2
-rw-r--r--src/http.zig3
-rw-r--r--src/main.zig1
5 files changed, 33 insertions, 14 deletions
diff --git a/examples/lotta-modules/index.js b/examples/lotta-modules/index.js
index e86d5e2d8..548acb898 100644
--- a/examples/lotta-modules/index.js
+++ b/examples/lotta-modules/index.js
@@ -1,11 +1,11 @@
-import "three/three1";
-import "three/three2";
-import "three/three3";
-import "three/three4";
-import "three/three5";
-import "three/three6";
-import "three/three7";
-import "three/three8";
-import "three/three9";
-import "three/three10";
+import "three/three1.js";
+import "three/three2.js";
+import "three/three3.js";
+import "three/three4.js";
+import "three/three5.js";
+import "three/three6.js";
+import "three/three7.js";
+import "three/three8.js";
+import "three/three9.js";
+import "three/three10.js";
// import "@babel/standalone/babel";
diff --git a/examples/lotta-modules/package.json b/examples/lotta-modules/package.json
index 3e60aba00..0eb0d4c36 100644
--- a/examples/lotta-modules/package.json
+++ b/examples/lotta-modules/package.json
@@ -6,6 +6,25 @@
"@babel/standalone": "^7.15.3",
"lodash": "^4.17.21",
"three.js": "^0.77.1",
- "underscore": "^1.13.1"
+ "underscore": "^1.13.1",
+ "webpack": "^5.56.0"
+ },
+ "type": "module",
+ "browserslist": [
+ "last 1 version"
+ ],
+ "scripts": {
+ "generate": "cp node_modules/three/three.js node_modules/three/three1.js; cp node_modules/three/three.js node_modules/three/three2.js; cp node_modules/three/three.js node_modules/three/three3.js; cp node_modules/three/three.js node_modules/three/three4.js; cp node_modules/three/three.js node_modules/three/three5.js; cp node_modules/three/three.js node_modules/three/three6.js; cp node_modules/three/three.js node_modules/three/three7.js; cp node_modules/three/three.js node_modules/three/three8.js; cp node_modules/three/three.js node_modules/three/three9.js; cp node_modules/three/three.js node_modules/three/three10.js",
+ "bench": "hyperfine \"bun bun ./index.js\" \"GOMAXPROCS=1 bun bun ./index.js\" \"esbuild --bundle ./index.js --platform=browser --format=esm > /dev/null\" \"swc ./node_modules/three/three1.js ./node_modules/three/three2.js ./node_modules/three/three3.js ./node_modules/three/three4.js ./node_modules/three/three5.js ./node_modules/three/three6.js ./node_modules/three/three7.js ./node_modules/three/three8.js ./node_modules/three/three9.js ./node_modules/three/three10.js -C \"module.type=es6\" --no-swcrc -s false -o /tmp/out.swc.js\" \"node_modules/.bin/parcel build --no-optimize --no-source-maps --no-content-hash --no-cache --no-autoinstall ./index.js\" --prepare=\"rm -rf dist *.bun .parcel-cache;\"",
+ "bench-sync": "hyperfine \"GOMAXPROCS=1 bun bun ./index.js\" \"GOMAXPROCS=1 esbuild --bundle ./index.js --platform=browser --format=esm > /dev/null\" \"swc ./node_modules/three/three1.js ./node_modules/three/three2.js ./node_modules/three/three3.js ./node_modules/three/three4.js ./node_modules/three/three5.js ./node_modules/three/three6.js ./node_modules/three/three7.js ./node_modules/three/three8.js ./node_modules/three/three9.js ./node_modules/three/three10.js -C \"module.type=es6\" --sync --no-swcrc -s false -o /tmp/out.swc.js\" --prepare=\"rm -rf *.bun\" ",
+ "bench-all": "hyperfine \"bun bun ./index.js\" \"esbuild --bundle ./index.js --platform=browser --format=esm > /dev/null\" \"esbuild --bundle ./index.js --platform=browser --format=esm > /dev/null\" \"swc ./node_modules/three/three1.js ./node_modules/three/three2.js ./node_modules/three/three3.js ./node_modules/three/three4.js ./node_modules/three/three5.js ./node_modules/three/three6.js ./node_modules/three/three7.js ./node_modules/three/three8.js ./node_modules/three/three9.js ./node_modules/three/three10.js -C \"module.type=es6\" --no-swcrc -s false -o /tmp/out.swc.js\" \"GOMAXPROCS=1 bun bun ./index.js\" \"GOMAXPROCS=1 esbuild --bundle ./index.js --platform=browser --format=esm > /dev/null\" \"swc ./node_modules/three/three1.js ./node_modules/three/three2.js ./node_modules/three/three3.js ./node_modules/three/three4.js ./node_modules/three/three5.js ./node_modules/three/three6.js ./node_modules/three/three7.js ./node_modules/three/three8.js ./node_modules/three/three9.js ./node_modules/three/three10.js -C \"module.type=es6\" --sync --no-swcrc -s false -o /tmp/out.swc.js\" --prepare=\"rm -rf *.bun\""
+ },
+ "devDependencies": {
+ "@babel/core": "^7.15.5",
+ "@babel/preset-env": "^7.15.6",
+ "@parcel/core": "^2.0.0-rc.0",
+ "babel-loader": "^8.2.2",
+ "parcel": "^2.0.0-rc.0",
+ "webpack-cli": "^4.8.0"
}
}
diff --git a/src/global.zig b/src/global.zig
index 64d5f1a82..b3f648850 100644
--- a/src/global.zig
+++ b/src/global.zig
@@ -3,7 +3,7 @@ pub usingnamespace @import("strings.zig");
pub const Environment = @import("env.zig");
-pub const default_allocator: *std.mem.Allocator = if (isTest or Environment.isLinux)
+pub const default_allocator: *std.mem.Allocator = if (isTest)
std.heap.c_allocator
else
@import("./memory_allocator.zig").c_allocator;
diff --git a/src/http.zig b/src/http.zig
index 72a452327..5b43cd9f7 100644
--- a/src/http.zig
+++ b/src/http.zig
@@ -1119,13 +1119,14 @@ pub const RequestContext = struct {
javascript_disabled = true;
}
var start_timer = std.time.Timer.start() catch unreachable;
-
+
var stdout = std.io.getStdOut();
var stderr = std.io.getStdErr();
var output_source = Output.Source.init(stdout, stderr);
defer Output.flush();
Output.Source.set(&output_source);
+ @import("javascript/jsc/JavascriptCore.zig").JSCInitialize();
js_ast.Stmt.Data.Store.create(std.heap.c_allocator);
diff --git a/src/main.zig b/src/main.zig
index f73f9c292..7b86f7360 100644
--- a/src/main.zig
+++ b/src/main.zig
@@ -22,7 +22,6 @@ pub fn panic(msg: []const u8, error_return_trace: ?*std.builtin.StackTrace) nore
}
pub var start_time: i128 = 0;
pub fn main() anyerror!void {
- @import("javascript/jsc/JavascriptCore.zig").JSCInitialize();
start_time = std.time.nanoTimestamp();
// The memory allocator makes a massive difference.