MCPcopy Create free account

hub / github.com/Shopify/heap-profiler / functions

Functions958 in github.com/Shopify/heap-profiler

↓ 150 callersMethodget
ext/heap_profiler/simdjson.h:3564
↓ 150 callersFunctionparse_digit
ext/heap_profiler/simdjson.h:11109
↓ 76 callersMethoderror
ext/heap_profiler/simdjson.h:3571
↓ 71 callersFunctionlog_error
ext/heap_profiler/simdjson.h:27722
↓ 66 callersMethodappend
ext/heap_profiler/simdjson.cpp:4631
↓ 63 callersMethodsize
ext/heap_profiler/simdjson.h:3798
↓ 60 callersFunctionlog_value
ext/heap_profiler/simdjson.h:27701
↓ 60 callersMethodnext
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 callersFunctionis_not_structural_or_whitespace
return non-zero if not a structural or whitespace char zero otherwise
ext/heap_profiler/simdjson.h:10357
↓ 48 callersMethodlog_value
ext/heap_profiler/simdjson.cpp:4490
↓ 45 callersMethoddata
ext/heap_profiler/simdjson.h:3802
↓ 40 callersFunctionstr4ncmp
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 callersMethodremaining_len
ext/heap_profiler/simdjson.cpp:4476
↓ 36 callersMethodreset
ext/heap_profiler/simdjson.h:29719
↓ 35 callersMethodcheck_utf8_bytes
Check whether the current bytes are valid UTF-8.
ext/heap_profiler/simdjson.cpp:3092
↓ 35 callersMethodcompare
ext/heap_profiler/simdjson.h:1274
↓ 31 callersMethodlength
ext/heap_profiler/simdjson.h:3800
↓ 31 callersFunctionsimd8
Zero constructor
ext/heap_profiler/simdjson.h:10174
↓ 30 callersMethodadvance
ext/heap_profiler/simdjson.cpp:3239
↓ 30 callersFunctionparse_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 callersMethodsaturating_sub
ext/heap_profiler/simdjson.h:10038
↓ 25 callersFunctiontrailing_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 callersFunction__emulu
_umul128 for x86, arm this is a slow emulation routine for 32-bit
ext/heap_profiler/simdjson.h:10424
↓ 24 callersMethodany_bits_set
ext/heap_profiler/simdjson.h:10061
↓ 24 callersFunctioncompute_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 callersMethodincrement_count
ext/heap_profiler/simdjson.cpp:4788
↓ 24 callersFunctionlog_line
ext/heap_profiler/simdjson.cpp:4188
↓ 23 callersFunctioncount_ones
result might be undefined when input_num is zero */
ext/heap_profiler/simdjson.h:9720
↓ 22 callersFunctionlog_end_value
ext/heap_profiler/simdjson.h:27717
↓ 22 callersFunctionlog_start_value
ext/heap_profiler/simdjson.h:27708
↓ 21 callersFunctionleading_zeroes
result might be undefined when input_num is zero */
ext/heap_profiler/simdjson.h:9705
↓ 21 callersMethodvalue
ext/heap_profiler/simdjson.h:8010
↓ 20 callersMethodblock_index
ext/heap_profiler/simdjson.cpp:3218
↓ 20 callersMethodto_bitmask
ext/heap_profiler/simdjson.h:10300
↓ 18 callersMethodvisit_empty_array
ext/heap_profiler/simdjson.cpp:4755
↓ 18 callersMethodvisit_empty_object
ext/heap_profiler/simdjson.cpp:4752
↓ 17 callersMethodend
ext/heap_profiler/simdjson.h:6755
↓ 16 callersMethodeq
ext/heap_profiler/simdjson.h:10320
↓ 16 callersMethodlookup_16
ext/heap_profiler/simdjson.h:14255
↓ 16 callersMethodpeek
ext/heap_profiler/simdjson.h:28061
↓ 15 callersMethodcheck_next_input
ext/heap_profiler/simdjson.cpp:3109
↓ 15 callersFunctionclear_lowest_bit
result might be undefined when input_num is zero */
ext/heap_profiler/simdjson.h:9700
↓ 15 callersMethodfull_block
ext/heap_profiler/simdjson.cpp:3226
↓ 15 callersMethodget_remainder
ext/heap_profiler/simdjson.cpp:3231
↓ 15 callersMethodhas_full_block
ext/heap_profiler/simdjson.cpp:3221
↓ 15 callersFunctionzero_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 callersFunctionis_structural_or_whitespace
ext/heap_profiler/simdjson.h:10361
↓ 14 callersMethodmax_depth
ext/heap_profiler/simdjson.h:3003
↓ 13 callersFunctionis_streaming
* Returns true if mode == streaming_partial or mode == streaming_final */
ext/heap_profiler/simdjson.h:2832
↓ 13 callersFunctionparse_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 callersMethodstore
ext/heap_profiler/simdjson.h:10277
↓ 13 callersMethodtape_ref_type
ext/heap_profiler/simdjson.h:8849
↓ 12 callersFunctionfind_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 callersFunctionfrom_chars
ext/heap_profiler/simdjson.cpp:1521
↓ 12 callersFunctionfull_multiplication
ext/heap_profiler/simdjson.h:10441
↓ 12 callersFunctionhex_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 callersFunctionis_valid_false_atom
ext/heap_profiler/simdjson.h:10502
↓ 12 callersFunctionis_valid_null_atom
ext/heap_profiler/simdjson.h:10514
↓ 12 callersFunctionis_valid_true_atom
ext/heap_profiler/simdjson.h:10490
↓ 12 callersFunctionprintable_char
Helper to turn unprintable or newline characters into spaces
ext/heap_profiler/simdjson.cpp:4162
↓ 12 callersMethodsubstr
ext/heap_profiler/simdjson.h:1245
↓ 12 callersFunctionto_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 callersMethodvisit_key
ext/heap_profiler/simdjson.cpp:4784
↓ 12 callersMethodvisit_primitive
ext/heap_profiler/simdjson.cpp:4525
↓ 11 callersMethodgt_bits
ext/heap_profiler/simdjson.h:10056
↓ 11 callersMethodparse
ext/heap_profiler/simdjson.h:8687
↓ 11 callersMethodwrite
ext/heap_profiler/simdjson.cpp:4644
↓ 10 callersMethodabandon
ext/heap_profiler/simdjson.h:28324
↓ 10 callersMethodbuild_index
(path)
lib/heap_profiler/parser.rb:62
↓ 10 callersMethodcapacity
ext/heap_profiler/simdjson.h:2999
↓ 10 callersMethodcheck_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 callersMethodcopy_to_buffer
ext/heap_profiler/simdjson.h:28446
↓ 10 callersMethoderrors
do not forget to call check_eof!
ext/heap_profiler/simdjson.cpp:3134
↓ 10 callersMethodfinish
ext/heap_profiler/simdjson.cpp:3390
↓ 10 callersMethodreturn_current_and_advance
ext/heap_profiler/simdjson.h:28057
↓ 10 callersMethodscalar
ext/heap_profiler/simdjson.cpp:6353
↓ 10 callersMethodwhitespace
ext/heap_profiler/simdjson.cpp:6351
↓ 9 callersMethoddepth
ext/heap_profiler/simdjson.h:28395
↓ 9 callersFunctionis_integer
ext/heap_profiler/simdjson.cpp:1018
↓ 9 callersMethodposition
ext/heap_profiler/simdjson.h:28081
↓ 9 callersFunctionto_json_string
ext/heap_profiler/simdjson.h:31833
↓ 8 callersFunctionarray
ext/heap_profiler/simdjson.h:7223
↓ 8 callersMethodbegin
ext/heap_profiler/simdjson.h:6751
↓ 8 callersMethodbits_not_set
ext/heap_profiler/simdjson.h:14405
↓ 8 callersFunctionlog_line
ext/heap_profiler/simdjson.h:27800
↓ 8 callersFunctionparse_decimal
This should always succeed since it follows a call to parse_number.
ext/heap_profiler/simdjson.cpp:1021
↓ 8 callersMethodtop_n
(max)
lib/heap_profiler/analyzer.rb:168
↓ 7 callersFunctionlog_event
ext/heap_profiler/simdjson.h:27697
↓ 7 callersFunctionobject
ext/heap_profiler/simdjson.h:7224
↓ 7 callersMethodopen
(dir, name)
lib/heap_profiler/dump.rb:41
↓ 7 callersFunctionparse_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 callersMethodpath
(text)
lib/heap_profiler/polychrome.rb:6
↓ 7 callersMethodset_capacity
Leaving these here so they can be inlined if so desired
ext/heap_profiler/simdjson.h:9639
↓ 7 callersMethodset_max_depth
ext/heap_profiler/simdjson.h:9652
↓ 7 callersFunctionto_string
ext/heap_profiler/simdjson.h:665
↓ 6 callersFunction_umul128
ext/heap_profiler/simdjson.h:10427
↓ 6 callersFunctionallocate_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 callersMethodappend_double
ext/heap_profiler/simdjson.h:27654
↓ 6 callersMethodappend_s64
ext/heap_profiler/simdjson.h:27644
↓ 6 callersMethodat_beginning
ext/heap_profiler/simdjson.cpp:4483
next →1–100 of 958, ranked by callers