mirror of
https://github.com/denoland/deno.git
synced 2025-08-01 17:42:32 +00:00
Optimization: Reuse ArrayBuffer during serialization.
This commit is contained in:
parent
4e2e185de7
commit
213885a9d0
25 changed files with 115 additions and 57 deletions
10
js/files.ts
10
js/files.ts
|
@ -4,7 +4,7 @@ import { Reader, Writer, Closer, ReadResult } from "./io";
|
|||
import * as dispatch from "./dispatch";
|
||||
import * as msg from "gen/msg_generated";
|
||||
import { assert } from "./util";
|
||||
import { flatbuffers } from "flatbuffers";
|
||||
import * as flatbuffers from "./flatbuffers";
|
||||
|
||||
/** The Deno abstraction for reading and writing files. */
|
||||
export class File implements Reader, Writer, Closer {
|
||||
|
@ -51,7 +51,7 @@ export async function open(
|
|||
filename: string,
|
||||
mode: OpenMode = "r"
|
||||
): Promise<File> {
|
||||
const builder = new flatbuffers.Builder();
|
||||
const builder = flatbuffers.createBuilder();
|
||||
const filename_ = builder.createString(filename);
|
||||
msg.Open.startOpen(builder);
|
||||
msg.Open.addFilename(builder, filename_);
|
||||
|
@ -73,7 +73,7 @@ export async function read(
|
|||
rid: number,
|
||||
p: ArrayBufferView
|
||||
): Promise<ReadResult> {
|
||||
const builder = new flatbuffers.Builder();
|
||||
const builder = flatbuffers.createBuilder();
|
||||
msg.Read.startRead(builder);
|
||||
msg.Read.addRid(builder, rid);
|
||||
const inner = msg.Read.endRead(builder);
|
||||
|
@ -90,7 +90,7 @@ export async function read(
|
|||
* Resolves with the number of bytes written.
|
||||
*/
|
||||
export async function write(rid: number, p: ArrayBufferView): Promise<number> {
|
||||
const builder = new flatbuffers.Builder();
|
||||
const builder = flatbuffers.createBuilder();
|
||||
msg.Write.startWrite(builder);
|
||||
msg.Write.addRid(builder, rid);
|
||||
const inner = msg.Write.endWrite(builder);
|
||||
|
@ -104,7 +104,7 @@ export async function write(rid: number, p: ArrayBufferView): Promise<number> {
|
|||
|
||||
/** Close the file ID. */
|
||||
export function close(rid: number): void {
|
||||
const builder = new flatbuffers.Builder();
|
||||
const builder = flatbuffers.createBuilder();
|
||||
msg.Close.startClose(builder);
|
||||
msg.Close.addRid(builder, rid);
|
||||
const inner = msg.Close.endClose(builder);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue