// most of this file is copy pasted from other files in misctools const std = @import("std"); const bun = @import("bun"); const string = bun.string; const Output = bun.Output; const Global = bun.Global; const Environment = bun.Environment; const strings = bun.strings; const MutableString = bun.MutableString; const stringZ = bun.stringZ; const default_allocator = bun.default_allocator; const C = bun.C; const clap = @import("../src/deps/zig-clap/clap.zig"); const AsyncIO = @import("bun").AsyncIO; const URL = @import("../src/url.zig").URL; const Headers = @import("bun").HTTP.Headers; const Method = @import("../src/http/method.zig").Method; const ColonListType = @import("../src/cli/colon_list_type.zig").ColonListType; const HeadersTuple = ColonListType(string, noop_resolver); const path_handler = @import("../src/resolver/resolve_path.zig"); const NetworkThread = @import("bun").HTTP.NetworkThread; const HTTP = @import("bun").HTTP; fn noop_resolver(in: string) !string { return in; } var waker: AsyncIO.Waker = undefined; fn spamMe(count: usize) void { Output.Source.configureNamedThread("1"); defer Output.flush(); var timer = std.time.Timer.start() catch unreachable; var i: usize = 0; while (i < count) : (i += 1) { waker.wake() catch unreachable; } Output.prettyErrorln("[EVFILT_MACHPORT] Sent {any}", .{bun.fmt.fmtDuration(timer.read())}); } const thread_count = 1; pub fn machMain(runs: usize) anyerror!void { defer Output.flush(); waker = try AsyncIO.Waker.init(bun.default_allocator); var args = try std.process.argsAlloc(bun.default_allocator); const count = std.fmt.parseInt(usize, args[args.len - 1], 10) catch 1024; var elapsed: u64 = 0; var remaining_runs: usize = runs; while (remaining_runs > 0) : (remaining_runs -= 1) { var threads: [thread_count]std.Thread = undefined; var j: usize = 0; while (j < thread_count) : (j += 1) { threads[j] = try std.Thread.spawn(.{}, spamMe, .{count}); } var timer = try std.time.Timer.start(); var i: usize = 0; while (i < count * thread_count) : (i += 1) { i += try waker.wait(); } j = 0; while (j < thread_count) : (j += 1) { threads[j].join(); } elapsed += timer.read(); } Output.prettyErrorln("[EVFILT_MACHPORT] Recv {any}", .{bun.fmt.fmtDuration(elapsed)}); } var user_waker: AsyncIO.UserFilterWaker = undefined; fn spamMeUserFilter(count: usize) void { Output.Source.configureNamedThread("2"); defer Output.flush(); var timer = std.time.Timer.start() catch unreachable; var i: usize = 0; while (i < count * thread_count) : (i += 1) { user_waker.wake() catch unreachable; } Output.prettyErrorln("[EVFILT_USER] Sent {any}", .{bun.fmt.fmtDuration(timer.read())}); } pub fn userMain(runs: usize) anyerror!void { defer Output.flush(); user_waker = try AsyncIO.UserFilterWaker.init(bun.default_allocator); var args = try std.process.argsAlloc(bun.default_allocator); const count = std.fmt.parseInt(usize, args[args.len - 1], 10) catch 1024; var remaining_runs = runs; var elapsed: u64 = 0; while (remaining_runs > 0) : (remaining_runs -= 1) { var threads: [thread_count]std.Thread = undefined; var j: usize = 0; while (j < thread_count) : (j += 1) { threads[j] = try std.Thread.spawn(.{}, spamMeUserFilter, .{count}); } var timer = try std.time.Timer.start(); var i: usize = 0; while (i < count) { i += try user_waker.wait(); } j = 0; while (j < thread_count) : (j += 1) { threads[j].join(); } elapsed += timer.read(); } Output.prettyErrorln("[EVFILT_USER] Recv {any}", .{bun.fmt.fmtDuration(elapsed)}); Output.flush(); } pub fn main() anyerror!void { var stdout_ = std.io.getStdOut(); var stderr_ = std.io.getStdErr(); var output_source = Output.Source.init(stdout_, stderr_); Output.Source.set(&output_source); var args = try std.process.argsAlloc(bun.default_allocator); const count = std.fmt.parseInt(usize, args[args.len - 1], 10) catch 1024; Output.prettyErrorln("For {d} messages and {d} threads:", .{ count, thread_count }); Output.flush(); defer Output.flush(); const runs = if (std.os.getenv("RUNS")) |run_count| try std.fmt.parseInt(usize, run_count, 10) else 1; if (std.os.getenv("NO_MACH") == null) try machMain(runs); if (std.os.getenv("NO_USER") == null) try userMain(runs); } property'>dylan/source-map-names-property Unnamed repository; edit this file 'description' to name the repository.
aboutsummaryrefslogtreecommitdiff
path: root/src/http/websocket_http_client.zig (unfollow)
AgeCommit message (Expand)AuthorFilesLines
2023-10-18Adds macOS Keychain certs to default CA storeGravatar Anshul Gupta 2-2/+175
2023-10-18fix(node:buffer): fix the behavior of `totalLength` in `Buffer.concat` (#6574)Gravatar Ai Hoshino 2-3/+23
2023-10-18fix: change `--no-scripts` to `--ignore-scripts` (#6587)Gravatar Dawid Sowa 1-2/+2
2023-10-18fix: online docs moved (#6579)Gravatar Mountain/\Ash 1-1/+1
2023-10-18Fix minimum kernel version in docs (#6153)Gravatar Kevin Latka 1-1/+1
2023-10-18build-id++Gravatar Dylan Conway 1-1/+1
2023-10-18fix(web): stub `performance.getEntriesByName` (#6542)Gravatar Liz 1-0/+18
2023-10-17update root package variableGravatar Dylan Conway 1-8/+3
2023-10-17Fix missing `{port: 0}` causing flaky testGravatar Ashcon Partovi 1-0/+2
2023-10-17test changes in usockets in ciGravatar Dylan Conway 5-0/+9
2023-10-17fix #4766 (#6563)Gravatar Pierre CM 1-4/+4
2023-10-17Update ZigGeneratedClasses.cppGravatar Dylan Conway 1-2/+0
2023-10-17use npm alias in dependencies (#6545)Gravatar Dylan Conway 7-29/+271
2023-10-17fix(node:http): fix `server.address()` (#6442)Gravatar Ai Hoshino 12-12/+453
2023-10-17docs: fix ws.publish (#6558)Gravatar Aral Roca Gomez 1-1/+1
2023-10-17perf(bun-types): remove needless some call (#6550)Gravatar Mikhail 1-1/+1
2023-10-16fix(runtime): make some things more stable (partial jsc debug build) (#5881)Gravatar dave caruso 116-1446/+1830
2023-10-16fix(runtime): improve IPC reliability + organization pass on that code (#6475)Gravatar dave caruso 15-98/+266
2023-10-16Simplify getting Set of extentions (#4975)Gravatar Mikhail 1-3/+3
2023-10-16Fix formattingGravatar Ashcon Partovi 1-3/+1
2023-10-16fix(test): when tests run with --only the nested describe blocks `.on… (#5616)Gravatar Igor Shapiro 2-13/+45
2023-10-16perf(node:events): optimize `emit(...)` function (#5485)Gravatar Yannik Schröder 3-11/+132
2023-10-16fix: don't remove content-encoding header from header table (#5743)Gravatar Liz 2-2/+25
2023-10-16fix(sqlite) Insert .all() does not return an array #5872 (#5946)Gravatar Hugo Galan 2-7/+11
2023-10-16Fix formattingGravatar Ashcon Partovi 2-5/+4
2023-10-16Fix `Response.statusText` (#6151)Gravatar Chris Toshok 10-238/+269
2023-10-16fix-subprocess-argument-missing (#6407)Gravatar Nicolae-Rares Ailincai 4-2/+40
2023-10-16Add type parameter to `expect` (#6128)Gravatar Voldemat 1-3/+3
2023-10-16fix(node:worker_threads): ensure threadId property is exposed on worker_threa...Gravatar Jérôme Benoit 6-15/+75
2023-10-16Fix use before define bug in sqliteGravatar Ashcon Partovi 2-5/+5
2023-10-16fix(jest): fix toStrictEqual on same URLs (#6528)Gravatar João Alisson 2-13/+16
2023-10-16Fix `toHaveBeenCalled` having wrong error signatureGravatar Ashcon Partovi 1-2/+2
2023-10-16Fix formattingGravatar Ashcon Partovi 1-2/+1
2023-10-16Add `reusePort` to `Bun.serve` typesGravatar Ashcon Partovi 1-0/+9
2023-10-16Fix `request.url` having incorrect portGravatar Ashcon Partovi 4-1/+92
2023-10-16Remove uWebSockets header from Bun.serve responsesGravatar Ashcon Partovi 1-6/+6
2023-10-16Rename some testsGravatar Ashcon Partovi 3-0/+0
2023-10-16Fix #6467Gravatar Ashcon Partovi 2-3/+10
2023-10-16Update InternalModuleRegistryConstants.hGravatar Dylan Conway 1-3/+3
2023-10-16Development -> Contributing (#6538)Gravatar Colin McDonnell 2-1/+1
2023-10-14fix(net/tls) fix pg hang on end + hanging on query (#6487)Gravatar Ciro Spaciari 3-8/+36
2023-10-13fix installing dependencies that match workspace versions (#6494)Gravatar Dylan Conway 4-2/+64
2023-10-13fix lockfile struct padding (#6495)Gravatar Dylan Conway 3-3/+18