Age | Commit message (Collapse) | Author |
|
|
|
This PR adds a benchmark intended to measure how the LSP handles larger
repos, as well as its performance on a more realistic workload.
The repo being benchmarked is
[deco-cx/apps](https://github.com/deco-cx/apps) which has been vendored
along with its dependencies. It's included as a git submodule as its
fairly large. The LSP requests used in the benchmark are the actual
requests sent by VSCode as I opened, modified, and navigated around a
file (to simulate an actual user interaction).
The main motivation is to have a more realistic benchmark that measures
how we do with a large number of files and dependencies. The
improvements made from 1.42 to 1.42.3 mostly improved performance with
larger repos, so none of our existing benchmarks showed an improvement.
Here are the results for the changes made from 1.42 to 1.42.3 (the new
benchmark is the last one listed):
**1.42.0**
```test
Starting Deno benchmark
-> Start benchmarking lsp
- Simple Startup/Shutdown
(10 runs, mean: 379ms)
- Big Document/Several Edits
(5 runs, mean: 1142ms)
- Find/Replace
(10 runs, mean: 51ms)
- Code Lens
(10 runs, mean: 443ms)
- deco-cx/apps Multiple Edits + Navigation
(5 runs, mean: 25121ms)
<- End benchmarking lsp
```
**1.42.3**
```text
Starting Deno benchmark
-> Start benchmarking lsp
- Simple Startup/Shutdown
(10 runs, mean: 383ms)
- Big Document/Several Edits
(5 runs, mean: 1135ms)
- Find/Replace
(10 runs, mean: 55ms)
- Code Lens
(10 runs, mean: 440ms)
- deco-cx/apps Multiple Edits + Navigation
(5 runs, mean: 11675ms)
<- End benchmarking lsp
```
|
|
This is a particularly large repo and making it shallow improves
checkout time.
|
|
The `tools/node_compat/node` submodule has been moved to
`tests/node_compat/runner/suite` and the remaining files within
`tools/node_compat` to `tests/node_compat/runner`.
Most of the changes are of the header within `tests/node_compat/test`
files. The `setup` and `test` tasks within `tests/node_comapt` execute
successfully.
Towards #22525
CC @mmastrac
|
|
As discussed with @mmastrac. I'll move `tools/wpt` to `tests/wpt` in a
follow-up PR.
---------
Co-authored-by: Matt Mastracci <matthew@mastracci.com>
|
|
Note: tests are not the only part of the codebase that uses `std`. Other
parts, like `tools/`, do too. So, it could be argued that this is a
little misleading. Either way, I'm doing this as discussed with
@mmastrac.
|
|
removes third_party submodule, tools are installed on-demand.
- removed `load_test` and websocket benchmark (covered by benchy)
- removed node/bun http benchmarks (covered by benchy)
- `dlint` & `dprint` downloaded on-demand.
- `wrk` & `hyperfine` downloaded before CI benchmark run.
Install locally using: `./tools/install_prebuilt.js wrk hyperfine`
#### updating dlint/dprint
update version in `tools/util.js` and place binary in
`denoland/deno_third_party`.
|
|
|
|
|
|
|
|
|
|
This synchronizes our WPT revision with upstream.
|
|
This removes the std folder from the tree.
Various parts of the tests are pretty tightly dependent
on std (47 direct imports and 75 indirect imports, not
counting the cli tests that use them as fixtures) so I've
added std as a submodule for now.
|
|
|
|
|
|
Co-authored-by: Kitson Kelly <me@kitsonkelly.com>
|
|
"third_party/" is a git submodule pointing to "deno_third_party" repository.
The git history of that repo is quite heavy as it historically contained
typescript, node_modules and python_packages directories, but now there
are only 11 binaries in there. Setting this attribute should speed up fresh clones.
|
|
|
|
|
|
This PR is intentionally ugly. It duplicates all of the code in cli/js2/ into
cli/tsc/ ... because it's very important that we all understand that this code
is unnecessarily duplicated in our binary. I hope this ugliness provides the
motivation to clean it up.
The typescript git submodule is removed, because it's a very large repo and
contains all sorts of stuff we don't need. Instead the necessary files are
copied directly into the deno repo. Hence +200k lines.
COMPILER_SNAPSHOT.bin size
```
master 3448139
this branch 3320972
```
Fixes #6812
|
|
|
|
|
|
|
|
js/deps/https/deno.land/std -> js/std
|
|
|
|
Change submodule names to match the name of the corresponding github
repository, which is easier to remember than using the full path where
the submodule is (or used to be) checked out.
|
|
- Fixes cargo publish on deno_typescript, deno_cli_snapshots, and
deno_cli.
- Combines cli_snapshots and js into one directory.
- Extracts TS version at compile time rather than runtime
- Bumps version awkwardly - it was necessary to test end-to-end
publishing. Sorry.
- Adds git submodule deno_typescript/typescript
|
|
|
|
|
|
Also don't format external js/deps
|
|
|
|
|
|
So we can float patches before sending them upstream.
https://github.com/denoland/chromium_build
Remove build_extra/toolchain
|
|
|
|
|