fish-shell/src
Mahmoud Al-Qudsi 51275525c1 Speed up extract_prefix_and_unescape_yaml
On the completions and history thread, the parent function
HistoryFileContents::decode_item() is responsible for ~60% of the CPU time, and
extract_prefix_and_unescape_yaml() alone comprising 14% (of the total).

This change removes allocations in the event that the history item is either
fully or partially plain yaml with no escapes to begin with, and brings down the
execution time of this function to only 7% of the total execution time.

The bulk of the remaining time is spent in wcs2string(), which is called
unconditionally and is naturally alloc-heavy.
2024-05-15 22:42:19 -05:00
..
bin Fix some more clippies and enable more warnings 2024-05-15 20:05:35 -07:00
builtins Add set --no-event 2024-05-14 17:31:47 +02:00
env Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
fork_exec Remove using statements already imported by preludes 2024-02-28 09:41:51 -06:00
history Speed up extract_prefix_and_unescape_yaml 2024-05-15 22:42:19 -05:00
tests Remove rust test dependency on cmake output 2024-05-04 20:49:49 -05:00
universal_notifier Move from libc read/write to nix read/write 2024-01-21 11:49:40 -08:00
widecharwidth Move fish-rust to project root 2024-01-13 03:58:33 +01:00
wutil Remove possible panic from wperror() 2024-05-09 11:20:09 -05:00
abbrs.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
ast.rs tokenizer: Stop copying the start string 2024-05-07 16:59:35 +02:00
autoload.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
color.rs Convert colors::Flags to a bitflags enum 2024-05-07 14:03:38 -05:00
common.rs is_wsl(): Move .copied() earlier in the iter pipeline 2024-05-09 13:33:50 -05:00
complete.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
curses.rs curses: Remove f13-f20 2024-04-02 21:33:54 +02:00
editable_line.rs Keep undo history across prompts 2024-04-29 09:20:09 +02:00
env_dispatch.rs Set terminal title unconditionally 2024-04-02 14:35:16 +02:00
env_universal_common.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
event.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
exec.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
expand.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
fallback.rs Use File instead of OwnedFd in a few places (#10355) 2024-03-17 11:20:44 -05:00
fd_monitor.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
fd_readable_set.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
fds.rs Clean up and correct O_SEARCH definitions 2024-05-11 13:20:34 -07:00
fish_test_helper.cpp test_helper: Give self-signalling a chance to trigger 2024-03-19 16:41:25 +01:00
flog.rs Replace C++-style \p with Markdown backticks 2024-05-06 14:59:23 -05:00
function.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
future_feature_flags.rs Deprecate builtin test's one- and zero-argument modes (#10365) 2024-04-21 14:25:54 +02:00
future.rs Remove backports for 1.67 2024-04-29 22:00:59 +02:00
global_safety.rs Simplify shared-from-this pattern 2024-03-09 10:09:03 +01:00
highlight.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
history.rs Make history::remove take a &wstr instead of a WString 2024-04-15 09:47:46 -07:00
input_common.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
input.rs input: Remove all_mappings_cache 2024-05-14 16:14:02 +02:00
io.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
job_group.rs Move fish-rust to project root 2024-01-13 03:58:33 +01:00
key.rs Match stdlib strip_prefix return value 2024-04-20 13:34:08 +02:00
kill.rs Remove L! from sprintf calls 2024-01-13 08:52:54 +01:00
lib.rs Extended & human-friendly keys 2024-04-02 14:35:16 +02:00
libc.c Switch to the terminfo crate 2024-02-22 20:10:16 +01:00
libc.rs Clean up src/libc.rs some 2024-05-08 22:34:10 -05:00
locale.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
nix.rs Move fish-rust to project root 2024-01-13 03:58:33 +01:00
null_terminated_array.rs Move fish-rust to project root 2024-01-13 03:58:33 +01:00
operation_context.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
output.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
pager.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
panic.rs Print panic message to stderr, like the stack trace 2024-04-02 07:34:19 +02:00
parse_constants.rs Rename FISH_TSAN_WORKAROUNDS and add feature to Cargo.toml 2024-05-09 13:58:42 -05:00
parse_execution.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
parse_tree.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
parse_util.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
parser_keywords.rs Remove widestring-suffix uses 2024-01-13 08:52:54 +01:00
parser.rs Add set --no-event 2024-05-14 17:31:47 +02:00
path.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
pointer.rs Move fish-rust to project root 2024-01-13 03:58:33 +01:00
print_help.rs Move fish-rust to project root 2024-01-13 03:58:33 +01:00
proc.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
re.rs Move fish-rust to project root 2024-01-13 03:58:33 +01:00
reader_history_search.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
reader.rs Prevent out-of-order execution following repaint 2024-05-13 10:44:12 +02:00
redirection.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
screen.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
signal.rs Rename FISH_TSAN_WORKAROUNDS and add feature to Cargo.toml 2024-05-09 13:58:42 -05:00
termsize.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
threads.rs Address clippy lints 2024-03-09 13:49:25 +01:00
timer.rs Check for unsupported "time &" in the proper place 2024-05-03 09:37:56 +02:00
tinyexpr.rs Remove widestring-suffix uses 2024-01-13 08:52:54 +01:00
tokenizer.rs Fix some clippies 2024-05-12 14:55:35 -07:00
topic_monitor.rs Rename FISH_TSAN_WORKAROUNDS and add feature to Cargo.toml 2024-05-09 13:58:42 -05:00
trace.rs Move fish-rust to project root 2024-01-13 03:58:33 +01:00
util.rs Move fish-rust to project root 2024-01-13 03:58:33 +01:00
wait_handle.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
wchar_ext.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
wchar.rs Remove widestring-suffix uses 2024-01-13 08:52:54 +01:00
wcstringutil.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00
wgetopt.rs Reimplement WGetopter::exchange() using rotate_left 2024-04-17 12:41:16 -07:00
wildcard.rs Replace C++ doc \return with "Return" 2024-05-06 14:59:36 -05:00