Laurențiu Nicola
|
09468ce370
|
Bump deps
|
2020-10-24 17:10:36 +03:00 |
|
Aleksey Kladov
|
6c7769a2e3
|
update deps
|
2020-10-18 01:53:01 +02:00 |
|
Laurențiu Nicola
|
017a04f424
|
Bump crossbeam-channel and lsp-server in rust-analyzer
|
2020-10-13 18:05:06 +03:00 |
|
kjeremy
|
95d7e3ce49
|
lsp-types 0.82
|
2020-09-23 15:41:55 -04:00 |
|
kjeremy
|
c7243e4a59
|
Support active parameters at the per-signature level
Update crates
|
2020-09-18 11:39:25 -04:00 |
|
kjeremy
|
b527257330
|
Move to vscode-languageclient 7.0.0-next.9
Stabilizes call hierarchy and semantic tokens features.
|
2020-09-02 09:40:59 -04:00 |
|
Aleksey Kladov
|
c692b5d76d
|
⬆️ expect-test
|
2020-08-28 14:47:14 +02:00 |
|
Pavan Kumar Sunkara
|
b2d43daeb4
|
Allow rust-analyzer auto publishing
|
2020-08-24 17:27:17 +02:00 |
|
Pavan Kumar Sunkara
|
a8fa5cd42e
|
Add version to deps in cargo.toml
|
2020-08-24 11:10:41 +02:00 |
|
Aleksey Kladov
|
b0fd3faf36
|
Switch to expect_test from crates.io
|
2020-08-21 13:19:31 +02:00 |
|
Aleksey Kladov
|
1b0c7701cc
|
Rename ra_ide -> ide
|
2020-08-13 17:58:27 +02:00 |
|
Aleksey Kladov
|
ae3abd6e57
|
Rename ra_ssr -> ssr
|
2020-08-13 17:02:44 +02:00 |
|
Aleksey Kladov
|
bb5c189b7d
|
Rename ra_ide_db -> ide_db
|
2020-08-13 16:39:16 +02:00 |
|
Aleksey Kladov
|
ae71a631fd
|
Rename ra_hir -> hir
|
2020-08-13 16:36:55 +02:00 |
|
Aleksey Kladov
|
6a77ec7bbe
|
Rename ra_hir_ty -> hir_ty
|
2020-08-13 16:35:29 +02:00 |
|
Aleksey Kladov
|
b28c54a2c2
|
Rename ra_hir_def -> hir_def
|
2020-08-13 16:29:33 +02:00 |
|
Aleksey Kladov
|
ed20a857f4
|
Rename ra_db -> base_db
|
2020-08-13 16:29:33 +02:00 |
|
Pavan Kumar Sunkara
|
eac24d52e6
|
Rename ra_project_model -> project_model
|
2020-08-13 12:05:30 +02:00 |
|
Aleksey Kladov
|
68c2238725
|
Rename ra_cfg -> cfg
|
2020-08-13 10:36:04 +02:00 |
|
Aleksey Kladov
|
2f45cfc415
|
Rename ra_mbe -> mbe
|
2020-08-13 10:36:04 +02:00 |
|
Pavan Kumar Sunkara
|
349e6c62ad
|
Rename ra_proc_macro_srv -> proc_macro_srv
|
2020-08-13 03:18:19 +02:00 |
|
Aleksey Kladov
|
a1c187eef3
|
Rename ra_syntax -> syntax
|
2020-08-12 18:30:53 +02:00 |
|
Aleksey Kladov
|
6dafc13f5f
|
Rename ra_text_edit -> text_edit
|
2020-08-12 17:03:06 +02:00 |
|
Aleksey Kladov
|
8d34262956
|
Rename ra_toolchain -> toolchain
|
2020-08-12 16:52:28 +02:00 |
|
Aleksey Kladov
|
550d7fbe3c
|
Rename ra_tt -> tt
|
2020-08-12 16:46:54 +02:00 |
|
Aleksey Kladov
|
208b7bd7ba
|
Rename ra_prof -> profile
|
2020-08-12 16:35:29 +02:00 |
|
Laurențiu Nicola
|
fa64817eab
|
Bump perf-event and rustc_lexer
|
2020-07-30 20:36:03 +03:00 |
|
Aleksey Kladov
|
ba585309ec
|
Replace rand with oorandom
|
2020-07-29 19:49:10 +02:00 |
|
Aleksey Kladov
|
be06aaecde
|
Lighter weight tempdir
|
2020-07-23 22:26:25 +02:00 |
|
kjeremy
|
9a9c0e1105
|
Use symbol tags
|
2020-07-22 12:18:48 -04:00 |
|
Aleksey Kladov
|
9ad41eb908
|
Setup global allocator in the correct crate
It worked before, but was roundabout
|
2020-07-22 13:42:53 +02:00 |
|
Aleksey Kladov
|
deed44a472
|
Remove support for jemalloc
We only used it for measuring memory usage, but now we can use glibc's
allocator for that just fine
|
2020-07-22 13:40:45 +02:00 |
|
Aleksey Kladov
|
46ac9ff5e3
|
Simplify exclusion logic
|
2020-07-18 16:40:10 +02:00 |
|
Jeremy Kolb
|
7fba2274d9
|
Update lsp-types for HoverOptions
|
2020-07-15 18:17:46 -04:00 |
|
bors[bot]
|
b8b41c5f41
|
Merge #5354
5354: Add opt-in mimalloc feature r=matklad a=ivan
This adds a `mimalloc` feature to use [mimalloc](https://github.com/microsoft/mimalloc) via [mimalloc_rust](https://github.com/purpleprotocol/mimalloc_rust), and a corresponding `cargo xtask install --server --mimalloc`.
In my tests on Linux, mimalloc seems to run consistently faster than jemalloc and uses only slightly more memory in `analysis-stats` on chalk. Also, builds with mimalloc produce a binary 3MB smaller than builds with jemalloc.
A summary of `env time -v cargo run --release -p rust-analyzer -- analysis-stats ../chalk/` runs on NixOS master on an Intel 4790K in VMware Workstation:
<table>
<tr>
<td></td><td>self-reported time</td><td>elapsed time</td><td>max RSS</td>
</tr>
<tr><td>glibc 2.30 run 1</td><td>225.1 sec</td><td>3:46.91</td><td>1075208</td></tr>
<tr><td>glibc 2.30 run 2</td><td>228.4 sec</td><td>3:50.13</td><td>1074996</td></tr>
<tr><td>jemalloc run 1</td><td>201.8 sec</td><td>3:23.03</td><td>1055960</td></tr>
<tr><td>jemalloc run 2</td><td>199.2 sec</td><td>3:20.41</td><td>1065040</td></tr>
<tr><td>mimalloc run 1</td><td>188.6 sec</td><td>3:09.77</td><td>1105584</td></tr>
<tr><td>mimalloc run 2</td><td>185.0 sec</td><td>3:06.23</td><td>1108132</td></tr>
<tr><td>mimalloc + lto run 1</td><td>160.7 sec</td><td>2:41.80</td><td>1106076</td></tr>
<tr><td>mimalloc + lto run 2</td><td>162.2 sec</td><td>2:43.31</td><td>1104268</td></tr>
</tr>
</table>
I included an `lto = true; codegen-units = 1` run out of curiosity, this PR doesn't enable it.
<details>
<summary>analysis-stats benchmark runs</summary>
## default
```
# env time -v cargo run --release -p rust-analyzer -- analysis-stats ../chalk/
Finished release [optimized] target(s) in 0.10s
Running `target/release/rust-analyzer analysis-stats ../chalk/`
[ERROR ra_project_model] cyclic dependency chalk-integration -> chalk-engine
[ERROR ra_project_model] cyclic dependency chalk-recursive -> chalk-integration
[ERROR ra_project_model] cyclic dependency chalk-solve -> chalk-integration
Database loaded 333.880345ms
Crates in this dir: 11
Total modules found: 159
Total declarations: 2631
Total functions: 1947
Item Collection: 10.176299461s, 0b allocated 0b resident
Total expressions: 57094
Expressions of unknown type: 2938 (5%)
Expressions of partially unknown type: 2427 (4%)
Type mismatches: 232
Inference: 214.968806927s, 0b allocated 0b resident
Total: 225.145114417s, 0b allocated 0b resident
Command being timed: "cargo run --release -p rust-analyzer -- analysis-stats ../chalk/"
User time (seconds): 225.34
System time (seconds): 1.49
Percent of CPU this job got: 99%
Elapsed (wall clock) time (h:mm:ss or m:ss): 3:46.91
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 1075208
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 6
Minor (reclaiming a frame) page faults: 294711
Voluntary context switches: 365
Involuntary context switches: 3273
Swaps: 0
File system inputs: 2904
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
# env time -v cargo run --release -p rust-analyzer -- analysis-stats ../chalk/
Finished release [optimized] target(s) in 0.10s
Running `target/release/rust-analyzer analysis-stats ../chalk/`
[ERROR ra_project_model] cyclic dependency chalk-integration -> chalk-engine
[ERROR ra_project_model] cyclic dependency chalk-recursive -> chalk-integration
[ERROR ra_project_model] cyclic dependency chalk-solve -> chalk-integration
Database loaded 332.711598ms
Crates in this dir: 11
Total modules found: 159
Total declarations: 2631
Total functions: 1947
Item Collection: 9.895020518s, 0b allocated 0b resident
Total expressions: 57094
Expressions of unknown type: 2938 (5%)
Expressions of partially unknown type: 2427 (4%)
Type mismatches: 232
Inference: 218.5001697s, 0b allocated 0b resident
Total: 228.39519833s, 0b allocated 0b resident
Command being timed: "cargo run --release -p rust-analyzer -- analysis-stats ../chalk/"
User time (seconds): 228.26
System time (seconds): 1.75
Percent of CPU this job got: 99%
Elapsed (wall clock) time (h:mm:ss or m:ss): 3:50.13
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 1074996
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 9
Minor (reclaiming a frame) page faults: 294748
Voluntary context switches: 330
Involuntary context switches: 1561
Swaps: 0
File system inputs: 12608
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
```
## jemalloc
```
# env time -v cargo run --release -p rust-analyzer -- analysis-stats ../chalk/
Finished release [optimized] target(s) in 0.11s
Running `target/release/rust-analyzer analysis-stats ../chalk/`
[ERROR ra_project_model] cyclic dependency chalk-integration -> chalk-engine
[ERROR ra_project_model] cyclic dependency chalk-recursive -> chalk-integration
[ERROR ra_project_model] cyclic dependency chalk-solve -> chalk-integration
Database loaded 356.090374ms
Crates in this dir: 11
Total modules found: 159
Total declarations: 2631
Total functions: 1947
Item Collection: 10.176550183s, 439mb allocated 465mb resident
Total expressions: 57094
Expressions of unknown type: 2938 (5%)
Expressions of partially unknown type: 2427 (4%)
Type mismatches: 232
Inference: 191.607201827s, 993mb allocated 1036mb resident
Total: 201.783937913s, 993mb allocated 1036mb resident
Command being timed: "cargo run --release -p rust-analyzer -- analysis-stats ../chalk/"
User time (seconds): 201.07
System time (seconds): 1.89
Percent of CPU this job got: 99%
Elapsed (wall clock) time (h:mm:ss or m:ss): 3:23.03
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 1055960
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 357755
Voluntary context switches: 240
Involuntary context switches: 1889
Swaps: 0
File system inputs: 256
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
# env time -v cargo run --release -p rust-analyzer -- analysis-stats ../chalk/
Finished release [optimized] target(s) in 0.10s
Running `target/release/rust-analyzer analysis-stats ../chalk/`
[ERROR ra_project_model] cyclic dependency chalk-integration -> chalk-engine
[ERROR ra_project_model] cyclic dependency chalk-recursive -> chalk-integration
[ERROR ra_project_model] cyclic dependency chalk-solve -> chalk-integration
Database loaded 317.917622ms
Crates in this dir: 11
Total modules found: 159
Total declarations: 2631
Total functions: 1947
Item Collection: 9.902142185s, 439mb allocated 463mb resident
Total expressions: 57094
Expressions of unknown type: 2938 (5%)
Expressions of partially unknown type: 2427 (4%)
Type mismatches: 232
Inference: 189.295317017s, 993mb allocated 1046mb resident
Total: 199.197555943s, 993mb allocated 1046mb resident
Command being timed: "cargo run --release -p rust-analyzer -- analysis-stats ../chalk/"
User time (seconds): 198.64
System time (seconds): 1.67
Percent of CPU this job got: 99%
Elapsed (wall clock) time (h:mm:ss or m:ss): 3:20.41
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 1065040
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 369013
Voluntary context switches: 243
Involuntary context switches: 2835
Swaps: 0
File system inputs: 0
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
```
## mimalloc
```
# env time -v cargo run --release -p rust-analyzer -- analysis-stats ../chalk/
Finished release [optimized] target(s) in 0.12s
Running `target/release/rust-analyzer analysis-stats ../chalk/`
[ERROR ra_project_model] cyclic dependency chalk-integration -> chalk-engine
[ERROR ra_project_model] cyclic dependency chalk-recursive -> chalk-integration
[ERROR ra_project_model] cyclic dependency chalk-solve -> chalk-integration
Database loaded 332.116806ms
Crates in this dir: 11
Total modules found: 159
Total declarations: 2631
Total functions: 1947
Item Collection: 9.796643695s, 0b allocated 0b resident
Total expressions: 57094
Expressions of unknown type: 2938 (5%)
Expressions of partially unknown type: 2427 (4%)
Type mismatches: 232
Inference: 178.82132362s, 0b allocated 0b resident
Total: 188.617975605s, 0b allocated 0b resident
Command being timed: "cargo run --release -p rust-analyzer -- analysis-stats ../chalk/"
User time (seconds): 187.70
System time (seconds): 1.97
Percent of CPU this job got: 99%
Elapsed (wall clock) time (h:mm:ss or m:ss): 3:09.77
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 1105584
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 296481
Voluntary context switches: 222
Involuntary context switches: 1868
Swaps: 0
File system inputs: 256
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
# env time -v cargo run --release -p rust-analyzer -- analysis-stats ../chalk/
Finished release [optimized] target(s) in 0.13s
Running `target/release/rust-analyzer analysis-stats ../chalk/`
[ERROR ra_project_model] cyclic dependency chalk-integration -> chalk-engine
[ERROR ra_project_model] cyclic dependency chalk-recursive -> chalk-integration
[ERROR ra_project_model] cyclic dependency chalk-solve -> chalk-integration
Database loaded 320.046776ms
Crates in this dir: 11
Total modules found: 159
Total declarations: 2631
Total functions: 1947
Item Collection: 9.287690124s, 0b allocated 0b resident
Total expressions: 57094
Expressions of unknown type: 2938 (5%)
Expressions of partially unknown type: 2427 (4%)
Type mismatches: 232
Inference: 175.710939697s, 0b allocated 0b resident
Total: 184.998640033s, 0b allocated 0b resident
Command being timed: "cargo run --release -p rust-analyzer -- analysis-stats ../chalk/"
User time (seconds): 184.38
System time (seconds): 1.81
Percent of CPU this job got: 99%
Elapsed (wall clock) time (h:mm:ss or m:ss): 3:06.23
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 1108132
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 297055
Voluntary context switches: 374
Involuntary context switches: 2374
Swaps: 0
File system inputs: 0
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
```
## mimalloc + lto
```
# env time -v cargo run --release -p rust-analyzer -- analysis-stats ../chalk/
Finished release [optimized] target(s) in 0.11s
Running `target/release/rust-analyzer analysis-stats ../chalk/`
[ERROR ra_project_model] cyclic dependency chalk-integration -> chalk-engine
[ERROR ra_project_model] cyclic dependency chalk-recursive -> chalk-integration
[ERROR ra_project_model] cyclic dependency chalk-solve -> chalk-integration
Database loaded 369.600196ms
Crates in this dir: 11
Total modules found: 159
Total declarations: 2631
Total functions: 1947
Item Collection: 7.572726834s, 0b allocated 0b resident
Total expressions: 57094
Expressions of unknown type: 2938 (5%)
Expressions of partially unknown type: 2427 (4%)
Type mismatches: 232
Inference: 153.090899101s, 0b allocated 0b resident
Total: 160.663635235s, 0b allocated 0b resident
Command being timed: "cargo run --release -p rust-analyzer -- analysis-stats ../chalk/"
User time (seconds): 160.01
System time (seconds): 1.70
Percent of CPU this job got: 99%
Elapsed (wall clock) time (h:mm:ss or m:ss): 2:41.80
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 1106076
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 1
Minor (reclaiming a frame) page faults: 296610
Voluntary context switches: 209
Involuntary context switches: 2798
Swaps: 0
File system inputs: 8
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
# env time -v cargo run --release -p rust-analyzer -- analysis-stats ../chalk/
Finished release [optimized] target(s) in 0.10s
Running `target/release/rust-analyzer analysis-stats ../chalk/`
[ERROR ra_project_model] cyclic dependency chalk-integration -> chalk-engine
[ERROR ra_project_model] cyclic dependency chalk-recursive -> chalk-integration
[ERROR ra_project_model] cyclic dependency chalk-solve -> chalk-integration
Database loaded 334.630658ms
Crates in this dir: 11
Total modules found: 159
Total declarations: 2631
Total functions: 1947
Item Collection: 7.71699197s, 0b allocated 0b resident
Total expressions: 57094
Expressions of unknown type: 2938 (5%)
Expressions of partially unknown type: 2427 (4%)
Type mismatches: 232
Inference: 154.50351318s, 0b allocated 0b resident
Total: 162.220513775s, 0b allocated 0b resident
Command being timed: "cargo run --release -p rust-analyzer -- analysis-stats ../chalk/"
User time (seconds): 161.52
System time (seconds): 1.74
Percent of CPU this job got: 99%
Elapsed (wall clock) time (h:mm:ss or m:ss): 2:43.31
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 1104268
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 296183
Voluntary context switches: 200
Involuntary context switches: 1666
Swaps: 0
File system inputs: 0
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
```
</details>
Co-authored-by: Ivan Kozik <ivan@ludios.org>
|
2020-07-15 09:43:08 +00:00 |
|
Ivan Kozik
|
6710856c10
|
Add opt-in mimalloc feature
|
2020-07-14 20:57:51 +00:00 |
|
Yuki Okushi
|
6f423466d1
|
Add a license field to all the crates
|
2020-07-14 10:57:26 +09:00 |
|
Jeremy Kolb
|
6a18dbe116
|
Update lsp-types
|
2020-07-12 12:28:00 -04:00 |
|
Jeremy Kolb
|
007812dcae
|
Update lsp-types to account for new CodeActionKind structure
|
2020-07-11 17:29:45 -04:00 |
|
Aleksey Kladov
|
e075e6eef2
|
Move diagnostics tests to expect
|
2020-07-09 16:04:29 +02:00 |
|
Aleksey Kladov
|
b398519011
|
Cleanup diagnostic conversion code
|
2020-07-09 15:34:37 +02:00 |
|
Jonas Schievink
|
4602c2eeaa
|
analysis-stats: allow parallel type inference
|
2020-06-30 17:00:17 +02:00 |
|
David Lattimore
|
867f29559f
|
Moved new deps to CLI-only section
|
2020-06-30 09:31:45 +10:00 |
|
David Lattimore
|
93a91ae9de
|
Add a simple SSR subcommand to the rust-analyzer command line binary
|
2020-06-29 13:34:45 +10:00 |
|
Laurențiu Nicola
|
d036006c95
|
Bump deps
|
2020-06-27 13:56:54 +03:00 |
|
Aleksey Kladov
|
9617bb4f07
|
Try to find rustfmt in more places
|
2020-06-27 01:28:06 +02:00 |
|
Aleksey Kladov
|
0ec5d4f55c
|
Rename ra_flycheck -> flycheck
|
2020-06-25 09:13:46 +02:00 |
|
Aleksey Kladov
|
dad1333b48
|
New VFS
|
2020-06-23 17:51:06 +02:00 |
|
Aleksey Kladov
|
676e82bb83
|
Remove relative-path dependency
|
2020-06-23 17:04:10 +02:00 |
|
Aleksey Kladov
|
f3cf85ab48
|
Move ReqQueue to lsp-server
|
2020-06-20 23:24:16 +02:00 |
|