nushell/crates
Darren Schroeder d64e381085
add some startup performance metrics (#7851)
# Description

This PR changes the old performance logging with `Instant` timers. I'm
not sure if this is the best way to do it but it does help reveal where
time is being spent on startup. This is what it looks like when you
launch nushell with `cargo run -- --log-level info`. I'm using the
`info` log level exclusively for performance monitoring at this point.

![image](https://user-images.githubusercontent.com/343840/214372903-fdfa9c99-b846-47f3-8faf-bd6ed98df3a9.png)
## After Startup

Since you're in the repl, you can continue running commands. Here's the
output of `ls`, for instance.

![image](https://user-images.githubusercontent.com/343840/214373035-4d2f6e2d-5c1d-43d3-b997-51d79d496ba3.png)
Note that the above screenshots are in debug mode, so they're much
slower than release.

# User-Facing Changes



# Tests + Formatting

Don't forget to add tests that cover your changes.

Make sure you've run and fixed any issues with these commands:

- `cargo fmt --all -- --check` to check standard code formatting (`cargo
fmt --all` applies these changes)
- `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A
clippy::needless_collect` to check that you're using the standard code
style
- `cargo test --workspace` to check that all tests pass

# After Submitting

If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
2023-01-24 14:28:59 -06:00
..
nu_plugin_custom_values Reduce again the number of match calls (#7815) 2023-01-24 12:23:42 +01:00
nu_plugin_example Reduce again the number of match calls (#7815) 2023-01-24 12:23:42 +01:00
nu_plugin_gstat Reduce again the number of match calls (#7815) 2023-01-24 12:23:42 +01:00
nu_plugin_inc Reduce again the number of match calls (#7815) 2023-01-24 12:23:42 +01:00
nu_plugin_python Fix typos by codespell (#7600) 2022-12-26 02:31:26 -05:00
nu_plugin_query Reduce again the number of match calls (#7815) 2023-01-24 12:23:42 +01:00
nu-cli add some startup performance metrics (#7851) 2023-01-24 14:28:59 -06:00
nu-color-config Bump to 0.74.1 development version (#7721) 2023-01-11 22:30:41 +01:00
nu-command Reduce again the number of match calls (#7815) 2023-01-24 12:23:42 +01:00
nu-engine Bump sysinfo from 0.26.4 to 0.27.7 (#7839) 2023-01-23 03:09:15 +00:00
nu-explore Reduce again the number of match calls (#7815) 2023-01-24 12:23:42 +01:00
nu-glob Fix typos and use more idiomatic assertions (#7755) 2023-01-15 15:03:32 +13:00
nu-json Bump to 0.74.1 development version (#7721) 2023-01-11 22:30:41 +01:00
nu-parser Incorrect parsing of unbalanced braces based on issue 6914 (#7621) 2023-01-24 10:05:46 +02:00
nu-path Fix typos and use more idiomatic assertions (#7755) 2023-01-15 15:03:32 +13:00
nu-plugin LazyRecord (#7619) 2023-01-18 19:27:26 -08:00
nu-pretty-hex Reduce again the number of match calls (#7815) 2023-01-24 12:23:42 +01:00
nu-protocol Reduce again the number of match calls (#7815) 2023-01-24 12:23:42 +01:00
nu-system Reduce again the number of match calls (#7815) 2023-01-24 12:23:42 +01:00
nu-table Reduce again the number of match calls (#7815) 2023-01-24 12:23:42 +01:00
nu-term-grid Bump to 0.74.1 development version (#7721) 2023-01-11 22:30:41 +01:00
nu-test-support Reduce again the number of match calls (#7815) 2023-01-24 12:23:42 +01:00
nu-utils add some startup performance metrics (#7851) 2023-01-24 14:28:59 -06:00
README.md Remove old nushell/merge engine-q 2022-02-07 14:54:06 -05:00

Nushell core libraries and plugins

These sub-crates form both the foundation for Nu and a set of plugins which extend Nu with additional functionality.

Foundational libraries are split into two kinds of crates:

  • Core crates - those crates that work together to build the Nushell language engine
  • Support crates - a set of crates that support the engine with additional features like JSON support, ANSI support, and more.

Plugins are likewise also split into two types:

  • Core plugins - plugins that provide part of the default experience of Nu, including access to the system properties, processes, and web-connectivity features.
  • Extra plugins - these plugins run a wide range of different capabilities like working with different file types, charting, viewing binary data, and more.