Перейти к файлу
Barret Rennie f2d656a851
Cleanup completed resumed requests
The runner now will cleanup resumed requests as they are completed
(either successfully or unsucessfully). Additionally, the
`FsRequestManager` will cleanup any requests that it cannot resume.
2020-07-20 15:11:24 -04:00
fxrecorder Use the RequestManager in the RunnerProto 2020-07-20 15:11:23 -04:00
fxrunner Cleanup completed resumed requests 2020-07-20 15:11:24 -04:00
integration-tests Clean up failed requests 2020-07-20 15:11:24 -04:00
libfxrecord Use the RequestManager in the RunnerProto 2020-07-20 15:11:23 -04:00
test Rewrite integration tests 2020-06-28 21:24:11 -04:00
.gitignore Add a command line interface with structopt 2019-10-08 16:19:45 -04:00
CODE_OF_CONDUCT.md Add code of conduct 2019-08-15 14:20:00 -04:00
Cargo.lock Clean up failed requests 2020-07-20 15:11:24 -04:00
Cargo.toml Add an integration test for the handshake 2020-06-16 00:24:19 -04:00
README.md Document legacy IO counter requirement for fxrunner 2020-06-28 21:14:51 -04:00
fxrecord.example.toml Do not use a temporary directory for request state 2020-07-20 15:11:23 -04:00

README.md

fxrecord

fxrecord is a tool for capturing and analyzing recordings of Firefox desktop startup. It consists of two parts: fxrecorder, which records the output of the reference hardware and does analysis, and fxrunner, which instruments Firefox on the reference hardware.

License

fxrecord is released under the terms of the Mozilla Public License 2.0.

Code of Conduct

This repository follows a code of conduct.

Requirements

Both fxrunner and fxrecorder require Rust 1.39+ for async/await support.

fxrunner

The only supported operating system for fxrunner is Windows 10. It is a statically linked executable with no other dependencies. Additionally, it requires legacy IO counters to be enabled. This can be done by running the following once:

diskperf -Y

fxrecorder

fxrecorder is also a statically linked executable, but it has two additional requirements:

fxrecorder presently requires a Windows 10 device as it assumes that DirectShow will be used for video capture. The capture card used while developing fxrecord only supported Windows 10 and therefore was not able to be tested against any other operating system.

Building

fxrecord is built in Rust and uses Cargo. To build for production use, run

cargo +beta build --release

and the binaries will be located in the target/release/ subdirectory. Copy the fxrunner binary to the reference device and the fxrecorder to the recording device.

Configuration

fxrunner requires a configuration file named fxrecord.toml with [fxrunner] and [fxrecorder.recording] sections:

[fxrecorder]
# The host and port that FxRunner is listening on.
host = "127.0.0.1:8888"

[fxrecorder.recording]
# The path to ffmpeg on the file system.
ffmpeg_path = "C:\ffmpeg\ffmepg.exe"

# The size of the video stream.
video_size = { y = 1920, x = 1080 }

# The desired size. If omitted, video_size will be used instead.
output_size = { y = 1366, x = 768 }

# The frame rate to capture at.
frame_rate = 60

# The name of the device to use for capture.
device = "AVerMedia GC551 Video Capture"

# The size of the buffer to use while streaming frames.
buffer_size = "1000M"

fxrunner requires a configuration file named fxrecord.toml with a [fxrunner] section:

[fxrunner]
# The host and port that FxRecorder will be able to connect to.
host = "0.0.0.0:8888"

An example configuration is provided.