Code
Hub
Workspaces
Following
Trending
Connect
MCP
copy
Create free account
hub
/
github.com/Shopify/heap-profiler
/ functions
Functions
958 in github.com/Shopify/heap-profiler
⨍
Functions
958
◇
Types & classes
155
↓ 150 callers
Method
get
ext/heap_profiler/simdjson.h:3564
↓ 150 callers
Function
parse_digit
ext/heap_profiler/simdjson.h:11109
↓ 76 callers
Method
error
ext/heap_profiler/simdjson.h:3571
↓ 71 callers
Function
log_error
ext/heap_profiler/simdjson.h:27722
↓ 66 callers
Method
append
ext/heap_profiler/simdjson.cpp:4631
↓ 63 callers
Method
size
ext/heap_profiler/simdjson.h:3798
↓ 60 callers
Function
log_value
ext/heap_profiler/simdjson.h:27701
↓ 60 callers
Method
next
Return a mask of all string characters plus end quotes. prev_escaped is overflow saying whether the next character is escaped. prev_in_string is over
ext/heap_profiler/simdjson.cpp:3357
↓ 49 callers
Function
is_not_structural_or_whitespace
return non-zero if not a structural or whitespace char zero otherwise
ext/heap_profiler/simdjson.h:10357
↓ 48 callers
Method
log_value
ext/heap_profiler/simdjson.cpp:4490
↓ 45 callers
Method
data
ext/heap_profiler/simdjson.h:3802
↓ 40 callers
Function
str4ncmp
Again in str4ncmp we use a memcpy to avoid undefined behavior. The memcpy may appear expensive. Yet all decent optimizing compilers will compile memcp
ext/heap_profiler/simdjson.h:10482
↓ 36 callers
Method
remaining_len
ext/heap_profiler/simdjson.cpp:4476
↓ 36 callers
Method
reset
ext/heap_profiler/simdjson.h:29719
↓ 35 callers
Method
check_utf8_bytes
Check whether the current bytes are valid UTF-8.
ext/heap_profiler/simdjson.cpp:3092
↓ 35 callers
Method
compare
ext/heap_profiler/simdjson.h:1274
↓ 31 callers
Method
length
ext/heap_profiler/simdjson.h:3800
↓ 31 callers
Function
simd8
Zero constructor
ext/heap_profiler/simdjson.h:10174
↓ 30 callers
Method
advance
ext/heap_profiler/simdjson.cpp:3239
↓ 30 callers
Function
parse_float_fallback
We call a fallback floating-point parser that might be slow. Note it will accept JSON numbers, but the JSON spec. is more restrictive so before you ca
ext/heap_profiler/simdjson.h:11051
↓ 29 callers
Method
saturating_sub
ext/heap_profiler/simdjson.h:10038
↓ 25 callers
Function
trailing_zeroes
We sometimes call trailing_zero on inputs that are zero, but the algorithms do not end up using the returned value. Sadly, sanitizers are not smart en
ext/heap_profiler/simdjson.h:9686
↓ 24 callers
Function
__emulu
_umul128 for x86, arm this is a slow emulation routine for 32-bit
ext/heap_profiler/simdjson.h:10424
↓ 24 callers
Method
any_bits_set
ext/heap_profiler/simdjson.h:10061
↓ 24 callers
Function
compute_float_64
Attempts to compute i * 10^(power) exactly; and if "negative" is true, negate the result. This function will only work in some cases, when it does not
ext/heap_profiler/simdjson.h:10800
↓ 24 callers
Method
increment_count
ext/heap_profiler/simdjson.cpp:4788
↓ 24 callers
Function
log_line
ext/heap_profiler/simdjson.cpp:4188
↓ 23 callers
Function
count_ones
result might be undefined when input_num is zero */
ext/heap_profiler/simdjson.h:9720
↓ 22 callers
Function
log_end_value
ext/heap_profiler/simdjson.h:27717
↓ 22 callers
Function
log_start_value
ext/heap_profiler/simdjson.h:27708
↓ 21 callers
Function
leading_zeroes
result might be undefined when input_num is zero */
ext/heap_profiler/simdjson.h:9705
↓ 21 callers
Method
value
ext/heap_profiler/simdjson.h:8010
↓ 20 callers
Method
block_index
ext/heap_profiler/simdjson.cpp:3218
↓ 20 callers
Method
to_bitmask
ext/heap_profiler/simdjson.h:10300
↓ 18 callers
Method
visit_empty_array
ext/heap_profiler/simdjson.cpp:4755
↓ 18 callers
Method
visit_empty_object
ext/heap_profiler/simdjson.cpp:4752
↓ 17 callers
Method
end
ext/heap_profiler/simdjson.h:6755
↓ 16 callers
Method
eq
ext/heap_profiler/simdjson.h:10320
↓ 16 callers
Method
lookup_16
ext/heap_profiler/simdjson.h:14255
↓ 16 callers
Method
peek
ext/heap_profiler/simdjson.h:28061
↓ 15 callers
Method
check_next_input
ext/heap_profiler/simdjson.cpp:3109
↓ 15 callers
Function
clear_lowest_bit
result might be undefined when input_num is zero */
ext/heap_profiler/simdjson.h:9700
↓ 15 callers
Method
full_block
ext/heap_profiler/simdjson.cpp:3226
↓ 15 callers
Method
get_remainder
ext/heap_profiler/simdjson.cpp:3231
↓ 15 callers
Method
has_full_block
ext/heap_profiler/simdjson.cpp:3221
↓ 15 callers
Function
zero_leading_bit
* Flips bit at index 63 - lz. Thus if you have 'leading_zeroes' leading zeroes, * then this will set to zero the leading bit. It is possible for lead
ext/heap_profiler/simdjson.h:9751
↓ 14 callers
Function
is_structural_or_whitespace
ext/heap_profiler/simdjson.h:10361
↓ 14 callers
Method
max_depth
ext/heap_profiler/simdjson.h:3003
↓ 13 callers
Function
is_streaming
* Returns true if mode == streaming_partial or mode == streaming_final */
ext/heap_profiler/simdjson.h:2832
↓ 13 callers
Function
parse_string
* Unescape a string from src to dst, stopping at a final unescaped quote. E.g., if src points at 'joe"', then * dst needs to have four free bytes. *
ext/heap_profiler/simdjson.h:10659
↓ 13 callers
Method
store
ext/heap_profiler/simdjson.h:10277
↓ 13 callers
Method
tape_ref_type
ext/heap_profiler/simdjson.h:8849
↓ 12 callers
Function
find_next_document_index
* This algorithm is used to quickly identify the last structural position that * makes up a complete document. * * It does this by going backwar
ext/heap_profiler/simdjson.cpp:3686
↓ 12 callers
Function
from_chars
ext/heap_profiler/simdjson.cpp:1521
↓ 12 callers
Function
full_multiplication
ext/heap_profiler/simdjson.h:10441
↓ 12 callers
Function
hex_to_u32_nocheck
returns a value with the high 16 bits set if not valid otherwise returns the conversion of the 4 hex digits at src into the bottom 16 bits of the 32-b
ext/heap_profiler/simdjson.h:10371
↓ 12 callers
Function
is_valid_false_atom
ext/heap_profiler/simdjson.h:10502
↓ 12 callers
Function
is_valid_null_atom
ext/heap_profiler/simdjson.h:10514
↓ 12 callers
Function
is_valid_true_atom
ext/heap_profiler/simdjson.h:10490
↓ 12 callers
Function
printable_char
Helper to turn unprintable or newline characters into spaces
ext/heap_profiler/simdjson.cpp:4162
↓ 12 callers
Method
substr
ext/heap_profiler/simdjson.h:1245
↓ 12 callers
Function
to_double
Convert a mantissa, an exponent and a sign bit into an ieee64 double. The real_exponent needs to be in [0, 2046] (technically real_exponent = 2047 wou
ext/heap_profiler/simdjson.h:10785
↓ 12 callers
Method
visit_key
ext/heap_profiler/simdjson.cpp:4784
↓ 12 callers
Method
visit_primitive
ext/heap_profiler/simdjson.cpp:4525
↓ 11 callers
Method
gt_bits
ext/heap_profiler/simdjson.h:10056
↓ 11 callers
Method
parse
ext/heap_profiler/simdjson.h:8687
↓ 11 callers
Method
write
ext/heap_profiler/simdjson.cpp:4644
↓ 10 callers
Method
abandon
ext/heap_profiler/simdjson.h:28324
↓ 10 callers
Method
build_index
(path)
lib/heap_profiler/parser.rb:62
↓ 10 callers
Method
capacity
ext/heap_profiler/simdjson.h:2999
↓ 10 callers
Method
check_eof
The only problem that can happen at EOF is that a multibyte character is too short or a byte value too large in the last bytes: check_special_cases on
ext/heap_profiler/simdjson.cpp:3103
↓ 10 callers
Method
copy_to_buffer
ext/heap_profiler/simdjson.h:28446
↓ 10 callers
Method
errors
do not forget to call check_eof!
ext/heap_profiler/simdjson.cpp:3134
↓ 10 callers
Method
finish
ext/heap_profiler/simdjson.cpp:3390
↓ 10 callers
Method
return_current_and_advance
ext/heap_profiler/simdjson.h:28057
↓ 10 callers
Method
scalar
ext/heap_profiler/simdjson.cpp:6353
↓ 10 callers
Method
whitespace
ext/heap_profiler/simdjson.cpp:6351
↓ 9 callers
Method
depth
ext/heap_profiler/simdjson.h:28395
↓ 9 callers
Function
is_integer
ext/heap_profiler/simdjson.cpp:1018
↓ 9 callers
Method
position
ext/heap_profiler/simdjson.h:28081
↓ 9 callers
Function
to_json_string
ext/heap_profiler/simdjson.h:31833
↓ 8 callers
Function
array
ext/heap_profiler/simdjson.h:7223
↓ 8 callers
Method
begin
ext/heap_profiler/simdjson.h:6751
↓ 8 callers
Method
bits_not_set
ext/heap_profiler/simdjson.h:14405
↓ 8 callers
Function
log_line
ext/heap_profiler/simdjson.h:27800
↓ 8 callers
Function
parse_decimal
This should always succeed since it follows a call to parse_number.
ext/heap_profiler/simdjson.cpp:1021
↓ 8 callers
Method
top_n
(max)
lib/heap_profiler/analyzer.rb:168
↓ 7 callers
Function
log_event
ext/heap_profiler/simdjson.h:27697
↓ 7 callers
Function
object
ext/heap_profiler/simdjson.h:7224
↓ 7 callers
Method
open
(dir, name)
lib/heap_profiler/dump.rb:41
↓ 7 callers
Function
parse_address
Inspired by https://lemire.me/blog/2019/04/17/parsing-short-hexadecimal-strings-efficiently/ Ruby addresses in heap dump are hexadecimal strings "0x00
ext/heap_profiler/heap_profiler.cpp:63
↓ 7 callers
Method
path
(text)
lib/heap_profiler/polychrome.rb:6
↓ 7 callers
Method
set_capacity
Leaving these here so they can be inlined if so desired
ext/heap_profiler/simdjson.h:9639
↓ 7 callers
Method
set_max_depth
ext/heap_profiler/simdjson.h:9652
↓ 7 callers
Function
to_string
ext/heap_profiler/simdjson.h:665
↓ 6 callers
Function
_umul128
ext/heap_profiler/simdjson.h:10427
↓ 6 callers
Function
allocate_padded_buffer
The allocate_padded_buffer function is a low-level function to allocate memory with padding so we can read past the "length" bytes safely. It is used
ext/heap_profiler/simdjson.h:3715
↓ 6 callers
Method
append_double
ext/heap_profiler/simdjson.h:27654
↓ 6 callers
Method
append_s64
ext/heap_profiler/simdjson.h:27644
↓ 6 callers
Method
at_beginning
ext/heap_profiler/simdjson.cpp:4483
next →
1–100 of 958, ranked by callers