replayio / chromium-v8 Goto Github PK
View Code? Open in Web Editor NEWThis project forked from v8/v8
The official mirror of the V8 Git repository
Home Page: https://chromium.googlesource.com/v8/v8.git
License: Other
This project forked from v8/v8
The official mirror of the V8 Git repository
Home Page: https://chromium.googlesource.com/v8/v8.git
License: Other
See replayio/node#8
We currently emit record/replay bytecodes for all scripts in the main thread's isolate, including scripts which are ignored during instrumentation. We need to only emit these bytecodes for scripts which participate in instrumentation, to clean up the semantics of the bytecodes and support optimizing them in the JIT (#4).
We need to associate IDs with each generator object in order to support async stepping. Currently we do this by storing an integer in JSGeneratorObject which is accessed when starting/resuming generators, but the modification this makes to js-generator.tq seems to be causing frequent scavenger crashes. We have a separate, slower weak map from objects to IDs which we can use instead and avoid modifying this tq file.
The record/replay bytecodes (RecordReplayIncExecutionProgressCounter and RecordReplayInstrumentation[Generator]) are always compiled into calls into the runtime. On the simple benchmark below this leads to a 20x overhead when recording (30ms) vs. not recording (700ms). On gecko, where we optimize these bytecodes, the overhead is much less (65ms vs 75ms). We need to optimize how these bytecodes are compiled to avoid degrading JS performance excessively.
function foo() {
const arr = [];
for (let i = 0; i < 2000000; i++) {
arr.push(i);
arr.push(i + 1);
arr.push(i + 2);
arr.push(i + 3);
arr.pop();
arr.pop();
arr.pop();
}
}
When unwinding an exception the record/replay driver is notified, and these notifications need to happen at consistent places when recording vs. replaying. Currently we notify the driver on all calls to Runtime_UnwindAndFindExceptionHandler, but we've been seeing problems where the number of calls to this method vary when unwinding a given exception. This is probably due to different JIT behavior. The driver only needs to be notified when the exception is first thrown, so we should be able to deal with this by using the progress counter to detect when the handler is being used to unwind additional frames, and not call the driver in such cases.
Currently we have a way to limit the recordings we're actually interested in remembering based on a filter of the URLs used for sources in the process. This has been awkward for our current use cases, and for now it would be better to allow filtering interesting recordings based on whether the process did any painting.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.