This is page 26 of 103. Use http://codebase.md/cyfrin/aderyn?lines=true&page={x} to view the full context.
# Directory Structure
```
├── .cargo
│ └── config.toml
├── .git-blame-ignore-revs
├── .gitattributes
├── .github
│ ├── images
│ │ ├── aderyn_logo.png
│ │ ├── poweredbycyfrinblack.png
│ │ └── poweredbycyfrinblue.png
│ ├── ISSUE_TEMPLATE
│ │ ├── bug_report.md
│ │ ├── false_positive_issue.md
│ │ └── feature_request.md
│ └── workflows
│ ├── cargo.yml
│ ├── dependencies.yml
│ ├── release.yml
│ ├── reports.yml
│ └── toml.yml
├── .gitignore
├── .gitmodules
├── .vscode
│ └── settings.json
├── aderyn
│ ├── Cargo.toml
│ ├── oranda.json
│ ├── README.md
│ ├── src
│ │ ├── birdsong.rs
│ │ ├── completions.rs
│ │ ├── lib.rs
│ │ ├── lsp.rs
│ │ ├── main.rs
│ │ ├── mcp.rs
│ │ └── panic.rs
│ └── templates
│ └── aderyn.toml
├── aderyn_core
│ ├── .gitignore
│ ├── Cargo.toml
│ ├── README.md
│ ├── src
│ │ ├── ast
│ │ │ ├── ast_nodes.rs
│ │ │ ├── ast.rs
│ │ │ ├── impls
│ │ │ │ ├── ctx
│ │ │ │ │ ├── utils.rs
│ │ │ │ │ └── workspace.rs
│ │ │ │ ├── ctx.rs
│ │ │ │ ├── disp
│ │ │ │ │ ├── blocks.rs
│ │ │ │ │ ├── contracts.rs
│ │ │ │ │ ├── enumerations.rs
│ │ │ │ │ ├── errors.rs
│ │ │ │ │ ├── events.rs
│ │ │ │ │ ├── expressions.rs
│ │ │ │ │ ├── functions.rs
│ │ │ │ │ ├── identifiers.rs
│ │ │ │ │ ├── literals.rs
│ │ │ │ │ ├── modifiers.rs
│ │ │ │ │ ├── statements.rs
│ │ │ │ │ ├── structures.rs
│ │ │ │ │ ├── types.rs
│ │ │ │ │ ├── user_defined_value_types.rs
│ │ │ │ │ ├── using_for_directives.rs
│ │ │ │ │ └── variables.rs
│ │ │ │ ├── disp.rs
│ │ │ │ ├── node
│ │ │ │ │ ├── blocks.rs
│ │ │ │ │ ├── contracts.rs
│ │ │ │ │ ├── documentation.rs
│ │ │ │ │ ├── enumerations.rs
│ │ │ │ │ ├── errors.rs
│ │ │ │ │ ├── events.rs
│ │ │ │ │ ├── expressions.rs
│ │ │ │ │ ├── functions.rs
│ │ │ │ │ ├── identifiers.rs
│ │ │ │ │ ├── import_directives.rs
│ │ │ │ │ ├── literals.rs
│ │ │ │ │ ├── modifiers.rs
│ │ │ │ │ ├── pragma_directives.rs
│ │ │ │ │ ├── source_units.rs
│ │ │ │ │ ├── statements.rs
│ │ │ │ │ ├── structures.rs
│ │ │ │ │ ├── types.rs
│ │ │ │ │ ├── user_defined_value_types.rs
│ │ │ │ │ ├── using_for_directives.rs
│ │ │ │ │ └── variables.rs
│ │ │ │ ├── node.rs
│ │ │ │ ├── own
│ │ │ │ │ ├── hashing.rs
│ │ │ │ │ ├── node_id.rs
│ │ │ │ │ ├── source_units.rs
│ │ │ │ │ └── utils.rs
│ │ │ │ └── own.rs
│ │ │ ├── impls.rs
│ │ │ ├── macros.rs
│ │ │ ├── magic.rs
│ │ │ ├── node_type.rs
│ │ │ └── yul.rs
│ │ ├── ast.rs
│ │ ├── audit
│ │ │ ├── attack_surface.rs
│ │ │ ├── auditor.rs
│ │ │ ├── entrypoint.rs
│ │ │ └── public_functions_no_sender.rs
│ │ ├── audit.rs
│ │ ├── context
│ │ │ ├── browser
│ │ │ │ ├── ancestral_line.rs
│ │ │ │ ├── closest_ancestor.rs
│ │ │ │ ├── external_calls.rs
│ │ │ │ ├── extractor.rs
│ │ │ │ ├── immediate_children.rs
│ │ │ │ ├── location.rs
│ │ │ │ ├── macros.rs
│ │ │ │ ├── parent.rs
│ │ │ │ ├── peek_over.rs
│ │ │ │ ├── peek_under.rs
│ │ │ │ ├── peek.rs
│ │ │ │ ├── siblings.rs
│ │ │ │ ├── sort_nodes.rs
│ │ │ │ └── storage_vars.rs
│ │ │ ├── browser.rs
│ │ │ ├── capturable.rs
│ │ │ ├── flow
│ │ │ │ ├── display.rs
│ │ │ │ ├── error.rs
│ │ │ │ ├── kind.rs
│ │ │ │ ├── primitives.rs
│ │ │ │ ├── reducibles.rs
│ │ │ │ ├── tests.rs
│ │ │ │ ├── utils.rs
│ │ │ │ ├── visualizer.rs
│ │ │ │ └── voids.rs
│ │ │ ├── flow.rs
│ │ │ ├── graph
│ │ │ │ ├── callgraph
│ │ │ │ │ ├── legacy.rs
│ │ │ │ │ ├── new.rs
│ │ │ │ │ ├── tests.rs
│ │ │ │ │ ├── utils.rs
│ │ │ │ │ └── visit.rs
│ │ │ │ ├── callgraph.rs
│ │ │ │ ├── preprocess
│ │ │ │ │ ├── legacy.rs
│ │ │ │ │ └── new.rs
│ │ │ │ ├── preprocess.rs
│ │ │ │ ├── traits.rs
│ │ │ │ └── utils.rs
│ │ │ ├── graph.rs
│ │ │ ├── macros.rs
│ │ │ ├── mcp
│ │ │ │ ├── callgraph
│ │ │ │ │ ├── render.rs
│ │ │ │ │ ├── tool.rs
│ │ │ │ │ └── utils.rs
│ │ │ │ ├── callgraph.rs
│ │ │ │ ├── contract_surface
│ │ │ │ │ ├── render.rs
│ │ │ │ │ ├── tool.rs
│ │ │ │ │ └── util.rs
│ │ │ │ ├── contract_surface.rs
│ │ │ │ ├── list_contracts
│ │ │ │ │ ├── render.rs
│ │ │ │ │ └── tool.rs
│ │ │ │ ├── list_contracts.rs
│ │ │ │ ├── node_finder
│ │ │ │ │ ├── render.rs
│ │ │ │ │ ├── tool.rs
│ │ │ │ │ └── utils.rs
│ │ │ │ ├── node_finder.rs
│ │ │ │ ├── node_summarizer
│ │ │ │ │ ├── render.rs
│ │ │ │ │ ├── tool.rs
│ │ │ │ │ └── utils.rs
│ │ │ │ ├── node_summarizer.rs
│ │ │ │ ├── project_overview
│ │ │ │ │ ├── render.rs
│ │ │ │ │ └── tool.rs
│ │ │ │ ├── project_overview.rs
│ │ │ │ ├── tool_guide
│ │ │ │ │ └── tool.rs
│ │ │ │ └── tool_guide.rs
│ │ │ ├── mcp.rs
│ │ │ ├── router
│ │ │ │ ├── external_calls.rs
│ │ │ │ ├── internal_calls.rs
│ │ │ │ ├── modifier_calls.rs
│ │ │ │ └── tests.rs
│ │ │ ├── router.rs
│ │ │ └── workspace.rs
│ │ ├── context.rs
│ │ ├── detect
│ │ │ ├── detector.rs
│ │ │ ├── entrypoint.rs
│ │ │ ├── helpers.rs
│ │ │ ├── high
│ │ │ │ ├── _template.rs
│ │ │ │ ├── abi_encode_packed_hash_collision.rs
│ │ │ │ ├── arbitrary_transfer_from.rs
│ │ │ │ ├── const_func_changes_state.rs
│ │ │ │ ├── contract_locks_ether.rs
│ │ │ │ ├── dangerous_unary_operator.rs
│ │ │ │ ├── delegate_call_unchecked_address.rs
│ │ │ │ ├── delete_nested_mapping.rs
│ │ │ │ ├── dynamic_array_length_assignment.rs
│ │ │ │ ├── enumerable_loop_removal.rs
│ │ │ │ ├── eth_send_unchecked_address.rs
│ │ │ │ ├── experimental_encoder.rs
│ │ │ │ ├── function_selector_collision.rs
│ │ │ │ ├── incorrect_caret_operator.rs
│ │ │ │ ├── incorrect_erc20_interface.rs
│ │ │ │ ├── incorrect_erc721_interface.rs
│ │ │ │ ├── incorrect_shift_order.rs
│ │ │ │ ├── misused_boolean.rs
│ │ │ │ ├── msg_value_in_loops.rs
│ │ │ │ ├── multiple_constructors.rs
│ │ │ │ ├── nested_struct_in_mapping.rs
│ │ │ │ ├── out_of_order_retryable.rs
│ │ │ │ ├── pre_declared_variable_usage.rs
│ │ │ │ ├── reentrancy_state_change.rs
│ │ │ │ ├── reused_contract_name.rs
│ │ │ │ ├── rtlo.rs
│ │ │ │ ├── selfdestruct.rs
│ │ │ │ ├── signed_integer_storage_array.rs
│ │ │ │ ├── state_variable_shadowing.rs
│ │ │ │ ├── storage_array_memory_edit.rs
│ │ │ │ ├── strict_equality_contract_balance.rs
│ │ │ │ ├── tautological_compare.rs
│ │ │ │ ├── tautology_or_contradiction.rs
│ │ │ │ ├── tx_origin_used_for_auth.rs
│ │ │ │ ├── unchecked_low_level_call.rs
│ │ │ │ ├── unchecked_send.rs
│ │ │ │ ├── unprotected_initializer.rs
│ │ │ │ ├── unsafe_casting.rs
│ │ │ │ ├── weak_randomness.rs
│ │ │ │ └── yul_return.rs
│ │ │ ├── high.rs
│ │ │ ├── low
│ │ │ │ ├── _template.rs
│ │ │ │ ├── assert_state_change.rs
│ │ │ │ ├── block_timestamp_deadline.rs
│ │ │ │ ├── boolean_equality.rs
│ │ │ │ ├── builtin_symbol_shadowing.rs
│ │ │ │ ├── centralization_risk.rs
│ │ │ │ ├── constant_function_contains_assembly.rs
│ │ │ │ ├── costly_loop.rs
│ │ │ │ ├── dead_code.rs
│ │ │ │ ├── delegatecall_in_loop.rs
│ │ │ │ ├── deprecated_oz_function.rs
│ │ │ │ ├── division_before_multiplication.rs
│ │ │ │ ├── ecrecover.rs
│ │ │ │ ├── empty_block.rs
│ │ │ │ ├── empty_require_revert.rs
│ │ │ │ ├── function_initializing_state.rs
│ │ │ │ ├── function_pointer_in_constructor.rs
│ │ │ │ ├── inconsistent_type_names.rs
│ │ │ │ ├── incorrect_modifier.rs
│ │ │ │ ├── internal_function_used_once.rs
│ │ │ │ ├── large_numeric_literal.rs
│ │ │ │ ├── literal_instead_of_constant.rs
│ │ │ │ ├── local_variable_shadowing.rs
│ │ │ │ ├── missing_inheritance.rs
│ │ │ │ ├── modifier_used_only_once.rs
│ │ │ │ ├── multiple_placeholders.rs
│ │ │ │ ├── non_reentrant_not_first.rs
│ │ │ │ ├── push_0_opcode.rs
│ │ │ │ ├── redundant_statement.rs
│ │ │ │ ├── require_revert_in_loop.rs
│ │ │ │ ├── return_bomb.rs
│ │ │ │ ├── solmate_safe_transfer_lib.rs
│ │ │ │ ├── state_change_without_event.rs
│ │ │ │ ├── state_no_address_check.rs
│ │ │ │ ├── state_variable_could_be_constant.rs
│ │ │ │ ├── state_variable_could_be_immutable.rs
│ │ │ │ ├── state_variable_read_external.rs
│ │ │ │ ├── storage_array_length_not_cached.rs
│ │ │ │ ├── todo.rs
│ │ │ │ ├── unchecked_return.rs
│ │ │ │ ├── uninitialized_local_variable.rs
│ │ │ │ ├── unsafe_erc20_operation.rs
│ │ │ │ ├── unsafe_oz_erc721_mint.rs
│ │ │ │ ├── unspecific_solidity_pragma.rs
│ │ │ │ ├── unused_error.rs
│ │ │ │ ├── unused_import.rs
│ │ │ │ ├── unused_public_function.rs
│ │ │ │ ├── unused_state_variable.rs
│ │ │ │ └── void_constructor.rs
│ │ │ ├── low.rs
│ │ │ └── test_utils.rs
│ │ ├── detect.rs
│ │ ├── lib.rs
│ │ ├── stats
│ │ │ ├── cloc.rs
│ │ │ ├── dbg_tips.txt
│ │ │ ├── ignore.rs
│ │ │ ├── token.rs
│ │ │ └── util.rs
│ │ ├── stats.rs
│ │ ├── test_utils
│ │ │ └── load_source_unit.rs
│ │ ├── test_utils.rs
│ │ ├── visitor
│ │ │ ├── ast_visitor.rs
│ │ │ ├── macros.rs
│ │ │ └── workspace_visitor.rs
│ │ └── visitor.rs
│ ├── templates
│ │ └── mcp-tool-response
│ │ ├── callgraph.md
│ │ ├── contract_surface.md
│ │ ├── list_contracts.md
│ │ ├── node_finder_get_all.md
│ │ ├── node_finder_grep.md
│ │ ├── node_finder_search.md
│ │ ├── node_summarizer.md
│ │ ├── project_overview.md
│ │ └── tool_guide.md
│ └── tests
│ ├── common
│ │ ├── ancestral_line.rs
│ │ ├── closest_ancestor.rs
│ │ ├── immediate_children.rs
│ │ ├── immediate_parent.rs
│ │ ├── mod.rs
│ │ ├── new_ast_nodes.rs
│ │ ├── peek_over.rs
│ │ └── sibling.rs
│ └── traversal.rs
├── aderyn_driver
│ ├── .gitignore
│ ├── benches
│ │ └── detectors.rs
│ ├── Cargo.toml
│ ├── README.md
│ ├── src
│ │ ├── compile.rs
│ │ ├── config.rs
│ │ ├── display.rs
│ │ ├── driver.rs
│ │ ├── interface
│ │ │ ├── json.rs
│ │ │ ├── lsp.rs
│ │ │ ├── markdown.rs
│ │ │ ├── mod.rs
│ │ │ ├── sarif.rs
│ │ │ ├── tables.rs
│ │ │ └── util.rs
│ │ ├── lib.rs
│ │ ├── mcp.rs
│ │ ├── process.rs
│ │ └── runner.rs
│ └── tests
│ └── astgen.rs
├── bacon.toml
├── benchmarks
│ ├── aderyn
│ │ ├── base
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ ├── change
│ │ │ └── estimates.json
│ │ ├── new
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ └── report
│ │ ├── both
│ │ │ ├── iteration_times.svg
│ │ │ └── pdf.svg
│ │ ├── change
│ │ │ ├── mean.svg
│ │ │ ├── median.svg
│ │ │ └── t-test.svg
│ │ ├── index.html
│ │ ├── iteration_times_small.svg
│ │ ├── iteration_times.svg
│ │ ├── MAD.svg
│ │ ├── mean.svg
│ │ ├── median.svg
│ │ ├── pdf_small.svg
│ │ ├── pdf.svg
│ │ ├── relative_iteration_times_small.svg
│ │ ├── relative_pdf_small.svg
│ │ ├── SD.svg
│ │ └── typical.svg
│ ├── arbitrary-transfer-from
│ │ ├── base
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ ├── change
│ │ │ └── estimates.json
│ │ ├── new
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ └── report
│ │ ├── both
│ │ │ ├── pdf.svg
│ │ │ └── regression.svg
│ │ ├── change
│ │ │ ├── mean.svg
│ │ │ ├── median.svg
│ │ │ └── t-test.svg
│ │ ├── index.html
│ │ ├── MAD.svg
│ │ ├── mean.svg
│ │ ├── median.svg
│ │ ├── pdf_small.svg
│ │ ├── pdf.svg
│ │ ├── regression_small.svg
│ │ ├── regression.svg
│ │ ├── relative_pdf_small.svg
│ │ ├── relative_regression_small.svg
│ │ ├── SD.svg
│ │ ├── slope.svg
│ │ └── typical.svg
│ ├── avoid-abi-encode-packed
│ │ ├── base
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ ├── change
│ │ │ └── estimates.json
│ │ ├── new
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ └── report
│ │ ├── both
│ │ │ ├── pdf.svg
│ │ │ └── regression.svg
│ │ ├── change
│ │ │ ├── mean.svg
│ │ │ ├── median.svg
│ │ │ └── t-test.svg
│ │ ├── index.html
│ │ ├── MAD.svg
│ │ ├── mean.svg
│ │ ├── median.svg
│ │ ├── pdf_small.svg
│ │ ├── pdf.svg
│ │ ├── regression_small.svg
│ │ ├── regression.svg
│ │ ├── relative_pdf_small.svg
│ │ ├── relative_regression_small.svg
│ │ ├── SD.svg
│ │ ├── slope.svg
│ │ └── typical.svg
│ ├── block-timestamp-deadline
│ │ ├── base
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ ├── change
│ │ │ └── estimates.json
│ │ ├── new
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ └── report
│ │ ├── both
│ │ │ ├── pdf.svg
│ │ │ └── regression.svg
│ │ ├── change
│ │ │ ├── mean.svg
│ │ │ ├── median.svg
│ │ │ └── t-test.svg
│ │ ├── index.html
│ │ ├── MAD.svg
│ │ ├── mean.svg
│ │ ├── median.svg
│ │ ├── pdf_small.svg
│ │ ├── pdf.svg
│ │ ├── regression_small.svg
│ │ ├── regression.svg
│ │ ├── relative_pdf_small.svg
│ │ ├── relative_regression_small.svg
│ │ ├── SD.svg
│ │ ├── slope.svg
│ │ └── typical.svg
│ ├── centralization-risk
│ │ ├── base
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ ├── change
│ │ │ └── estimates.json
│ │ ├── new
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ └── report
│ │ ├── both
│ │ │ ├── pdf.svg
│ │ │ └── regression.svg
│ │ ├── change
│ │ │ ├── mean.svg
│ │ │ ├── median.svg
│ │ │ └── t-test.svg
│ │ ├── index.html
│ │ ├── MAD.svg
│ │ ├── mean.svg
│ │ ├── median.svg
│ │ ├── pdf_small.svg
│ │ ├── pdf.svg
│ │ ├── regression_small.svg
│ │ ├── regression.svg
│ │ ├── relative_pdf_small.svg
│ │ ├── relative_regression_small.svg
│ │ ├── SD.svg
│ │ ├── slope.svg
│ │ └── typical.svg
│ ├── constants-instead-of-literals
│ │ ├── base
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ ├── change
│ │ │ └── estimates.json
│ │ ├── new
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ └── report
│ │ ├── both
│ │ │ ├── pdf.svg
│ │ │ └── regression.svg
│ │ ├── change
│ │ │ ├── mean.svg
│ │ │ ├── median.svg
│ │ │ └── t-test.svg
│ │ ├── index.html
│ │ ├── MAD.svg
│ │ ├── mean.svg
│ │ ├── median.svg
│ │ ├── pdf_small.svg
│ │ ├── pdf.svg
│ │ ├── regression_small.svg
│ │ ├── regression.svg
│ │ ├── relative_pdf_small.svg
│ │ ├── relative_regression_small.svg
│ │ ├── SD.svg
│ │ ├── slope.svg
│ │ └── typical.svg
│ ├── delegate-call-in-loop
│ │ ├── base
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ ├── change
│ │ │ └── estimates.json
│ │ ├── new
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ └── report
│ │ ├── both
│ │ │ ├── pdf.svg
│ │ │ └── regression.svg
│ │ ├── change
│ │ │ ├── mean.svg
│ │ │ ├── median.svg
│ │ │ └── t-test.svg
│ │ ├── index.html
│ │ ├── MAD.svg
│ │ ├── mean.svg
│ │ ├── median.svg
│ │ ├── pdf_small.svg
│ │ ├── pdf.svg
│ │ ├── regression_small.svg
│ │ ├── regression.svg
│ │ ├── relative_pdf_small.svg
│ │ ├── relative_regression_small.svg
│ │ ├── SD.svg
│ │ ├── slope.svg
│ │ └── typical.svg
│ ├── deprecated-oz-functions
│ │ ├── base
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ ├── change
│ │ │ └── estimates.json
│ │ ├── new
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ └── report
│ │ ├── both
│ │ │ ├── pdf.svg
│ │ │ └── regression.svg
│ │ ├── change
│ │ │ ├── mean.svg
│ │ │ ├── median.svg
│ │ │ └── t-test.svg
│ │ ├── index.html
│ │ ├── MAD.svg
│ │ ├── mean.svg
│ │ ├── median.svg
│ │ ├── pdf_small.svg
│ │ ├── pdf.svg
│ │ ├── regression_small.svg
│ │ ├── regression.svg
│ │ ├── relative_pdf_small.svg
│ │ ├── relative_regression_small.svg
│ │ ├── SD.svg
│ │ ├── slope.svg
│ │ └── typical.svg
│ ├── ecrecover
│ │ ├── base
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ ├── change
│ │ │ └── estimates.json
│ │ ├── new
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ └── report
│ │ ├── both
│ │ │ ├── pdf.svg
│ │ │ └── regression.svg
│ │ ├── change
│ │ │ ├── mean.svg
│ │ │ ├── median.svg
│ │ │ └── t-test.svg
│ │ ├── index.html
│ │ ├── MAD.svg
│ │ ├── mean.svg
│ │ ├── median.svg
│ │ ├── pdf_small.svg
│ │ ├── pdf.svg
│ │ ├── regression_small.svg
│ │ ├── regression.svg
│ │ ├── relative_pdf_small.svg
│ │ ├── relative_regression_small.svg
│ │ ├── SD.svg
│ │ ├── slope.svg
│ │ └── typical.svg
│ ├── empty-block
│ │ ├── base
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ ├── change
│ │ │ └── estimates.json
│ │ ├── new
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ └── report
│ │ ├── both
│ │ │ ├── pdf.svg
│ │ │ └── regression.svg
│ │ ├── change
│ │ │ ├── mean.svg
│ │ │ ├── median.svg
│ │ │ └── t-test.svg
│ │ ├── index.html
│ │ ├── MAD.svg
│ │ ├── mean.svg
│ │ ├── median.svg
│ │ ├── pdf_small.svg
│ │ ├── pdf.svg
│ │ ├── regression_small.svg
│ │ ├── regression.svg
│ │ ├── relative_pdf_small.svg
│ │ ├── relative_regression_small.svg
│ │ ├── SD.svg
│ │ ├── slope.svg
│ │ └── typical.svg
│ ├── hello_world
│ │ ├── base
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ ├── new
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ └── report
│ │ ├── index.html
│ │ ├── MAD.svg
│ │ ├── mean.svg
│ │ ├── median.svg
│ │ ├── pdf_small.svg
│ │ ├── pdf.svg
│ │ ├── regression_small.svg
│ │ ├── regression.svg
│ │ ├── SD.svg
│ │ ├── slope.svg
│ │ └── typical.svg
│ ├── inconsistent-type-names
│ │ ├── base
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ ├── change
│ │ │ └── estimates.json
│ │ ├── new
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ └── report
│ │ ├── both
│ │ │ ├── pdf.svg
│ │ │ └── regression.svg
│ │ ├── change
│ │ │ ├── mean.svg
│ │ │ ├── median.svg
│ │ │ └── t-test.svg
│ │ ├── index.html
│ │ ├── MAD.svg
│ │ ├── mean.svg
│ │ ├── median.svg
│ │ ├── pdf_small.svg
│ │ ├── pdf.svg
│ │ ├── regression_small.svg
│ │ ├── regression.svg
│ │ ├── relative_pdf_small.svg
│ │ ├── relative_regression_small.svg
│ │ ├── SD.svg
│ │ ├── slope.svg
│ │ └── typical.svg
│ ├── large-numeric-literal
│ │ ├── base
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ ├── change
│ │ │ └── estimates.json
│ │ ├── new
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ └── report
│ │ ├── both
│ │ │ ├── pdf.svg
│ │ │ └── regression.svg
│ │ ├── change
│ │ │ ├── mean.svg
│ │ │ ├── median.svg
│ │ │ └── t-test.svg
│ │ ├── index.html
│ │ ├── MAD.svg
│ │ ├── mean.svg
│ │ ├── median.svg
│ │ ├── pdf_small.svg
│ │ ├── pdf.svg
│ │ ├── regression_small.svg
│ │ ├── regression.svg
│ │ ├── relative_pdf_small.svg
│ │ ├── relative_regression_small.svg
│ │ ├── SD.svg
│ │ ├── slope.svg
│ │ └── typical.svg
│ ├── non-reentrant-before-others
│ │ ├── base
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ ├── change
│ │ │ └── estimates.json
│ │ ├── new
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ └── report
│ │ ├── both
│ │ │ ├── pdf.svg
│ │ │ └── regression.svg
│ │ ├── change
│ │ │ ├── mean.svg
│ │ │ ├── median.svg
│ │ │ └── t-test.svg
│ │ ├── index.html
│ │ ├── MAD.svg
│ │ ├── mean.svg
│ │ ├── median.svg
│ │ ├── pdf_small.svg
│ │ ├── pdf.svg
│ │ ├── regression_small.svg
│ │ ├── regression.svg
│ │ ├── relative_pdf_small.svg
│ │ ├── relative_regression_small.svg
│ │ ├── SD.svg
│ │ ├── slope.svg
│ │ └── typical.svg
│ ├── push-zero-opcode
│ │ ├── base
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ ├── change
│ │ │ └── estimates.json
│ │ ├── new
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ └── report
│ │ ├── both
│ │ │ ├── pdf.svg
│ │ │ └── regression.svg
│ │ ├── change
│ │ │ ├── mean.svg
│ │ │ ├── median.svg
│ │ │ └── t-test.svg
│ │ ├── index.html
│ │ ├── MAD.svg
│ │ ├── mean.svg
│ │ ├── median.svg
│ │ ├── pdf_small.svg
│ │ ├── pdf.svg
│ │ ├── regression_small.svg
│ │ ├── regression.svg
│ │ ├── relative_pdf_small.svg
│ │ ├── relative_regression_small.svg
│ │ ├── SD.svg
│ │ ├── slope.svg
│ │ └── typical.svg
│ ├── report
│ │ └── index.html
│ ├── require-with-string
│ │ ├── base
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ ├── change
│ │ │ └── estimates.json
│ │ ├── new
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ └── report
│ │ ├── both
│ │ │ ├── pdf.svg
│ │ │ └── regression.svg
│ │ ├── change
│ │ │ ├── mean.svg
│ │ │ ├── median.svg
│ │ │ └── t-test.svg
│ │ ├── index.html
│ │ ├── MAD.svg
│ │ ├── mean.svg
│ │ ├── median.svg
│ │ ├── pdf_small.svg
│ │ ├── pdf.svg
│ │ ├── regression_small.svg
│ │ ├── regression.svg
│ │ ├── relative_pdf_small.svg
│ │ ├── relative_regression_small.svg
│ │ ├── SD.svg
│ │ ├── slope.svg
│ │ └── typical.svg
│ ├── solmate-safe-transfer-lib
│ │ ├── base
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ ├── change
│ │ │ └── estimates.json
│ │ ├── new
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ └── report
│ │ ├── both
│ │ │ ├── pdf.svg
│ │ │ └── regression.svg
│ │ ├── change
│ │ │ ├── mean.svg
│ │ │ ├── median.svg
│ │ │ └── t-test.svg
│ │ ├── index.html
│ │ ├── MAD.svg
│ │ ├── mean.svg
│ │ ├── median.svg
│ │ ├── pdf_small.svg
│ │ ├── pdf.svg
│ │ ├── regression_small.svg
│ │ ├── regression.svg
│ │ ├── relative_pdf_small.svg
│ │ ├── relative_regression_small.svg
│ │ ├── SD.svg
│ │ ├── slope.svg
│ │ └── typical.svg
│ ├── unindexed-events
│ │ ├── base
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ ├── change
│ │ │ └── estimates.json
│ │ ├── new
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ └── report
│ │ ├── both
│ │ │ ├── pdf.svg
│ │ │ └── regression.svg
│ │ ├── change
│ │ │ ├── mean.svg
│ │ │ ├── median.svg
│ │ │ └── t-test.svg
│ │ ├── index.html
│ │ ├── MAD.svg
│ │ ├── mean.svg
│ │ ├── median.svg
│ │ ├── pdf_small.svg
│ │ ├── pdf.svg
│ │ ├── regression_small.svg
│ │ ├── regression.svg
│ │ ├── relative_pdf_small.svg
│ │ ├── relative_regression_small.svg
│ │ ├── SD.svg
│ │ ├── slope.svg
│ │ └── typical.svg
│ ├── unprotected-initializer
│ │ ├── base
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ ├── change
│ │ │ └── estimates.json
│ │ ├── new
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ └── report
│ │ ├── both
│ │ │ ├── pdf.svg
│ │ │ └── regression.svg
│ │ ├── change
│ │ │ ├── mean.svg
│ │ │ ├── median.svg
│ │ │ └── t-test.svg
│ │ ├── index.html
│ │ ├── MAD.svg
│ │ ├── mean.svg
│ │ ├── median.svg
│ │ ├── pdf_small.svg
│ │ ├── pdf.svg
│ │ ├── regression_small.svg
│ │ ├── regression.svg
│ │ ├── relative_pdf_small.svg
│ │ ├── relative_regression_small.svg
│ │ ├── SD.svg
│ │ ├── slope.svg
│ │ └── typical.svg
│ ├── unsafe-erc20-functions
│ │ ├── base
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ ├── change
│ │ │ └── estimates.json
│ │ ├── new
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ └── report
│ │ ├── both
│ │ │ ├── pdf.svg
│ │ │ └── regression.svg
│ │ ├── change
│ │ │ ├── mean.svg
│ │ │ ├── median.svg
│ │ │ └── t-test.svg
│ │ ├── index.html
│ │ ├── MAD.svg
│ │ ├── mean.svg
│ │ ├── median.svg
│ │ ├── pdf_small.svg
│ │ ├── pdf.svg
│ │ ├── regression_small.svg
│ │ ├── regression.svg
│ │ ├── relative_pdf_small.svg
│ │ ├── relative_regression_small.svg
│ │ ├── SD.svg
│ │ ├── slope.svg
│ │ └── typical.svg
│ ├── unsafe-oz-erc721-mint
│ │ ├── base
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ ├── change
│ │ │ └── estimates.json
│ │ ├── new
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ └── report
│ │ ├── both
│ │ │ ├── pdf.svg
│ │ │ └── regression.svg
│ │ ├── change
│ │ │ ├── mean.svg
│ │ │ ├── median.svg
│ │ │ └── t-test.svg
│ │ ├── index.html
│ │ ├── MAD.svg
│ │ ├── mean.svg
│ │ ├── median.svg
│ │ ├── pdf_small.svg
│ │ ├── pdf.svg
│ │ ├── regression_small.svg
│ │ ├── regression.svg
│ │ ├── relative_pdf_small.svg
│ │ ├── relative_regression_small.svg
│ │ ├── SD.svg
│ │ ├── slope.svg
│ │ └── typical.svg
│ ├── unspecific-solidity-pragma
│ │ ├── base
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ ├── change
│ │ │ └── estimates.json
│ │ ├── new
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ └── report
│ │ ├── both
│ │ │ ├── pdf.svg
│ │ │ └── regression.svg
│ │ ├── change
│ │ │ ├── mean.svg
│ │ │ ├── median.svg
│ │ │ └── t-test.svg
│ │ ├── index.html
│ │ ├── MAD.svg
│ │ ├── mean.svg
│ │ ├── median.svg
│ │ ├── pdf_small.svg
│ │ ├── pdf.svg
│ │ ├── regression_small.svg
│ │ ├── regression.svg
│ │ ├── relative_pdf_small.svg
│ │ ├── relative_regression_small.svg
│ │ ├── SD.svg
│ │ ├── slope.svg
│ │ └── typical.svg
│ ├── useless-internal-function
│ │ ├── base
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ ├── change
│ │ │ └── estimates.json
│ │ ├── new
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ └── report
│ │ ├── both
│ │ │ ├── pdf.svg
│ │ │ └── regression.svg
│ │ ├── change
│ │ │ ├── mean.svg
│ │ │ ├── median.svg
│ │ │ └── t-test.svg
│ │ ├── index.html
│ │ ├── MAD.svg
│ │ ├── mean.svg
│ │ ├── median.svg
│ │ ├── pdf_small.svg
│ │ ├── pdf.svg
│ │ ├── regression_small.svg
│ │ ├── regression.svg
│ │ ├── relative_pdf_small.svg
│ │ ├── relative_regression_small.svg
│ │ ├── SD.svg
│ │ ├── slope.svg
│ │ └── typical.svg
│ ├── useless-modifier
│ │ ├── base
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ ├── change
│ │ │ └── estimates.json
│ │ ├── new
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ └── report
│ │ ├── both
│ │ │ ├── pdf.svg
│ │ │ └── regression.svg
│ │ ├── change
│ │ │ ├── mean.svg
│ │ │ ├── median.svg
│ │ │ └── t-test.svg
│ │ ├── index.html
│ │ ├── MAD.svg
│ │ ├── mean.svg
│ │ ├── median.svg
│ │ ├── pdf_small.svg
│ │ ├── pdf.svg
│ │ ├── regression_small.svg
│ │ ├── regression.svg
│ │ ├── relative_pdf_small.svg
│ │ ├── relative_regression_small.svg
│ │ ├── SD.svg
│ │ ├── slope.svg
│ │ └── typical.svg
│ ├── useless-public-function
│ │ ├── base
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ ├── change
│ │ │ └── estimates.json
│ │ ├── new
│ │ │ ├── benchmark.json
│ │ │ ├── estimates.json
│ │ │ ├── sample.json
│ │ │ └── tukey.json
│ │ └── report
│ │ ├── both
│ │ │ ├── pdf.svg
│ │ │ └── regression.svg
│ │ ├── change
│ │ │ ├── mean.svg
│ │ │ ├── median.svg
│ │ │ └── t-test.svg
│ │ ├── index.html
│ │ ├── MAD.svg
│ │ ├── mean.svg
│ │ ├── median.svg
│ │ ├── pdf_small.svg
│ │ ├── pdf.svg
│ │ ├── regression_small.svg
│ │ ├── regression.svg
│ │ ├── relative_pdf_small.svg
│ │ ├── relative_regression_small.svg
│ │ ├── SD.svg
│ │ ├── slope.svg
│ │ └── typical.svg
│ └── zero-address-check
│ ├── base
│ │ ├── benchmark.json
│ │ ├── estimates.json
│ │ ├── sample.json
│ │ └── tukey.json
│ ├── change
│ │ └── estimates.json
│ ├── new
│ │ ├── benchmark.json
│ │ ├── estimates.json
│ │ ├── sample.json
│ │ └── tukey.json
│ └── report
│ ├── both
│ │ ├── pdf.svg
│ │ └── regression.svg
│ ├── change
│ │ ├── mean.svg
│ │ ├── median.svg
│ │ └── t-test.svg
│ ├── index.html
│ ├── MAD.svg
│ ├── mean.svg
│ ├── median.svg
│ ├── pdf_small.svg
│ ├── pdf.svg
│ ├── regression_small.svg
│ ├── regression.svg
│ ├── relative_pdf_small.svg
│ ├── relative_regression_small.svg
│ ├── SD.svg
│ ├── slope.svg
│ └── typical.svg
├── Cargo.lock
├── Cargo.toml
├── cli
│ ├── benchmarks.sh
│ └── reportgen.sh
├── CODEOWNERS
├── CONTRIBUTING.md
├── cyfrinup
│ ├── dynamic_script
│ └── why.md
├── deny.toml
├── dist-workspace.toml
├── funding.json
├── LICENSE
├── Makefile
├── package-lock.json
├── package.json
├── README.md
├── RELEASE_CHECKLIST.md
├── reports
│ ├── adhoc-sol-files-highs-only-report.json
│ ├── adhoc-sol-files-report.md
│ ├── ccip-functions-report.md
│ ├── empty_report.md
│ ├── hardhat-playground-report.md
│ ├── nft-report-icm.md
│ ├── nft-report.md
│ ├── prb-math-report.md
│ ├── report.json
│ ├── report.md
│ ├── report.sarif
│ ├── sablier-aderyn-toml-nested-root.md
│ ├── templegold-report.md
│ └── uniswap_profile.md
├── rust-toolchain.toml
├── rustfmt.toml
├── tests
│ ├── adhoc-sol-files
│ │ ├── aderyn.toml
│ │ ├── Counter.sol
│ │ ├── DemoASTNodes.sol
│ │ ├── Helper.sol
│ │ ├── InconsistentUints.sol
│ │ ├── inheritance
│ │ │ ├── ExtendedInheritance.sol
│ │ │ ├── IContractInheritance.sol
│ │ │ └── InheritanceBase.sol
│ │ ├── InternalFunctions.sol
│ │ ├── lib
│ │ │ └── ThisShouldBeExcluded.sol
│ │ ├── multiple-versions
│ │ │ ├── 0.4
│ │ │ │ ├── A.sol
│ │ │ │ └── B.sol
│ │ │ ├── 0.5
│ │ │ │ ├── A.sol
│ │ │ │ └── B.sol
│ │ │ ├── 0.6
│ │ │ │ ├── A.sol
│ │ │ │ └── B.sol
│ │ │ ├── 0.7
│ │ │ │ ├── A.sol
│ │ │ │ └── B.sol
│ │ │ └── 0.8
│ │ │ ├── A.sol
│ │ │ └── B.sol
│ │ ├── OnceModifierExample.sol
│ │ └── StateVariables.sol
│ ├── ast
│ │ ├── abstract_contract.json
│ │ ├── address_payable.json
│ │ ├── array_type_name.json
│ │ ├── ast-erc4626.json
│ │ ├── base_constructor_call.json
│ │ ├── bit_not.json
│ │ ├── call.json
│ │ ├── constructor.json
│ │ ├── contract_dep_order.json
│ │ ├── do_while.json
│ │ ├── documentation_1.json
│ │ ├── documentation_2.json
│ │ ├── documentation_3.json
│ │ ├── documentation_local_variable.json
│ │ ├── documentation_on_statements.json
│ │ ├── documentation_triple.json
│ │ ├── empty_block.json
│ │ ├── enum_value_declaration.json
│ │ ├── enum_value.json
│ │ ├── event_definition.json
│ │ ├── experimental_encoder_pragma.json
│ │ ├── fallback_and_reveice_ether.json
│ │ ├── fallback_payable.json
│ │ ├── fallback.json
│ │ ├── function_type.json
│ │ ├── function.json
│ │ ├── global_enum.json
│ │ ├── global_struct.json
│ │ ├── inheritance_specifier.json
│ │ ├── leave.json
│ │ ├── license.json
│ │ ├── long_type_name_binary_operation.json
│ │ ├── long_type_name_identifier.json
│ │ ├── loop.json
│ │ ├── mappings.json
│ │ ├── modifier_definition.json
│ │ ├── modifier_invocation.json
│ │ ├── mutability.json
│ │ ├── nested_functions.json
│ │ ├── non_utf8.json
│ │ ├── override.json
│ │ ├── placeholder_statement.json
│ │ ├── receive_ether.json
│ │ ├── short_type_name_ref.json
│ │ ├── short_type_name.json
│ │ ├── slot_offset.json
│ │ ├── smoke.json
│ │ ├── source_location.json
│ │ ├── string.json
│ │ ├── stringlit.json
│ │ ├── switch_default.json
│ │ ├── switch.json
│ │ ├── try_catch.json
│ │ ├── two_base_functions.json
│ │ ├── unicode.json
│ │ ├── used_errors.json
│ │ ├── userDefinedValueType.json
│ │ ├── using_for_directive.json
│ │ ├── var_access.json
│ │ └── yul_hex_literal.json
│ ├── contract-playground
│ │ ├── .github
│ │ │ └── workflows
│ │ │ └── test.yml
│ │ ├── .gitignore
│ │ ├── dot
│ │ │ └── .gitkeep
│ │ ├── foundry.toml
│ │ ├── README.md
│ │ ├── script
│ │ │ └── Counter.s.sol
│ │ ├── src
│ │ │ ├── AbstractContract.sol
│ │ │ ├── AderynIgnoreCustomDetectors.sol
│ │ │ ├── AdminContract.sol
│ │ │ ├── ArbitraryTransferFrom.sol
│ │ │ ├── AssemblyExample.sol
│ │ │ ├── AssertStateChange.sol
│ │ │ ├── auditor_mode
│ │ │ │ ├── ExternalCalls.sol
│ │ │ │ └── PublicFunctionsWithoutSenderCheck.sol
│ │ │ ├── BooleanEquality.sol
│ │ │ ├── BuiltinSymbolShadow.sol
│ │ │ ├── CacheArrayLength.sol
│ │ │ ├── CallGraphTests.sol
│ │ │ ├── Casting.sol
│ │ │ ├── cloc
│ │ │ │ ├── AnotherHeavilyCommentedContract.sol
│ │ │ │ ├── EmptyContractFile.sol
│ │ │ │ └── HeavilyCommentedContract.sol
│ │ │ ├── CompilerBugStorageSignedIntegerArray.sol
│ │ │ ├── ConstantFuncsAssembly.sol
│ │ │ ├── ConstantsLiterals.sol
│ │ │ ├── ConstFuncChangeState.sol
│ │ │ ├── ContractLocksEther.sol
│ │ │ ├── ContractWithTodo.sol
│ │ │ ├── control_flow
│ │ │ │ └── SimpleProgram.sol
│ │ │ ├── CostlyOperationsInsideLoops.sol
│ │ │ ├── Counter.sol
│ │ │ ├── CrazyPragma.sol
│ │ │ ├── DangerousStrictEquality1.sol
│ │ │ ├── DangerousStrictEquality2.sol
│ │ │ ├── DangerousUnaryOperator.sol
│ │ │ ├── DeadCode.sol
│ │ │ ├── DelegateCallWithoutAddressCheck.sol
│ │ │ ├── DeletionNestedMappingStructureContract.sol
│ │ │ ├── DeprecatedOZFunctions.sol
│ │ │ ├── DivisionBeforeMultiplication.sol
│ │ │ ├── DynamicArrayLengthAssignment.sol
│ │ │ ├── EmitAfterExternalCall.sol
│ │ │ ├── EmptyBlocks.sol
│ │ │ ├── EnumerableSetIteration.sol
│ │ │ ├── eth2
│ │ │ │ └── DepositContract.sol
│ │ │ ├── ExperimentalEncoder.sol
│ │ │ ├── ExternalCalls.sol
│ │ │ ├── FunctionInitializingState.sol
│ │ │ ├── FunctionPointers.sol
│ │ │ ├── FunctionSignatureCollision.sol
│ │ │ ├── HugeConstants.sol
│ │ │ ├── IgnoreEverything.sol
│ │ │ ├── InconsistentUints.sol
│ │ │ ├── IncorrectCaretOperator.sol
│ │ │ ├── IncorrectERC20.sol
│ │ │ ├── IncorrectERC721.sol
│ │ │ ├── IncorrectModifier.sol
│ │ │ ├── IncorrectShift.sol
│ │ │ ├── inheritance
│ │ │ │ ├── ExtendedInheritance.sol
│ │ │ │ ├── IContractInheritance.sol
│ │ │ │ └── InheritanceBase.sol
│ │ │ ├── InternalFunctions.sol
│ │ │ ├── KeccakContract.sol
│ │ │ ├── LocalVariableShadow.sol
│ │ │ ├── MissingInheritance.sol
│ │ │ ├── MisusedBoolean.sol
│ │ │ ├── MsgValueInLoop.sol
│ │ │ ├── MultipleConstructorSchemes.sol
│ │ │ ├── MultiplePlaceholders.sol
│ │ │ ├── nested
│ │ │ │ ├── 1
│ │ │ │ │ └── Nested.sol
│ │ │ │ └── 2
│ │ │ │ └── Nested.sol
│ │ │ ├── nested_mappings
│ │ │ │ ├── LaterVersion.sol
│ │ │ │ └── NestedMappings.sol
│ │ │ ├── OnceModifierExample.sol
│ │ │ ├── OnlyLibrary.sol
│ │ │ ├── OutOfOrderRetryable.sol
│ │ │ ├── parent_chain
│ │ │ │ └── ParentChainContract.sol
│ │ │ ├── PragmaRange.sol
│ │ │ ├── PreDeclaredVarUsage.sol
│ │ │ ├── PublicFunction.sol
│ │ │ ├── PublicVariableReadInExternalContext.sol
│ │ │ ├── RedundantStatements.sol
│ │ │ ├── ReturnBomb.sol
│ │ │ ├── reused_contract_name
│ │ │ │ ├── ContractA.sol
│ │ │ │ └── ContractB.sol
│ │ │ ├── RevertsAndRequriesInLoops.sol
│ │ │ ├── router
│ │ │ │ ├── ExternalCalls.sol
│ │ │ │ ├── FallbackAndReceiveOverrides.sol
│ │ │ │ ├── InternalCalls.sol
│ │ │ │ ├── ModifierCalls.sol
│ │ │ │ └── VarOverridesFunction.sol
│ │ │ ├── RTLO.sol
│ │ │ ├── SendEtherNoChecks.sol
│ │ │ ├── SendEtherNoChecksLibImport.sol
│ │ │ ├── StateChangeAfterExternalCall.sol
│ │ │ ├── StateShadowing.sol
│ │ │ ├── StateVariableCouldBeDeclaredConstant.sol
│ │ │ ├── StateVariableCouldBeDeclaredImmutable.sol
│ │ │ ├── StateVariables.sol
│ │ │ ├── StateVariablesChangesWithoutEvents.sol
│ │ │ ├── StateVariablesManipulation.sol
│ │ │ ├── StorageConditionals.sol
│ │ │ ├── StorageParameters.sol
│ │ │ ├── T11sTranferer.sol
│ │ │ ├── TautologicalCompare.sol
│ │ │ ├── TautologyOrContradiction.sol
│ │ │ ├── TestERC20.sol
│ │ │ ├── TransientKeyword.sol
│ │ │ ├── Trump.sol
│ │ │ ├── TxOriginUsedForAuth.sol
│ │ │ ├── U2.sol
│ │ │ ├── U3.sol
│ │ │ ├── U4.sol
│ │ │ ├── U5.sol
│ │ │ ├── UncheckedCalls.sol
│ │ │ ├── UncheckedReturn.sol
│ │ │ ├── UncheckedSend.sol
│ │ │ ├── UninitializedLocalVariables.sol
│ │ │ ├── UninitializedStateVariable.sol
│ │ │ ├── uniswap
│ │ │ │ ├── UniswapV2Swapper.sol
│ │ │ │ └── UniswapV3Swapper.sol
│ │ │ ├── UnprotectedInitialize.sol
│ │ │ ├── UnsafeERC721Mint.sol
│ │ │ ├── UnusedError.sol
│ │ │ ├── UnusedImport.sol
│ │ │ ├── UnusedStateVariables.sol
│ │ │ ├── UsingSelfdestruct.sol
│ │ │ ├── VoidConstructor.sol
│ │ │ ├── WeakRandomness.sol
│ │ │ ├── WrongOrderOfLayout.sol
│ │ │ ├── YulReturn.sol
│ │ │ └── ZeroAddressCheck.sol
│ │ └── test
│ │ └── Counter.t.sol
│ ├── foundry-nft-f23
│ │ ├── .github
│ │ │ └── workflows
│ │ │ └── test.yml
│ │ ├── .gitignore
│ │ ├── foundry.lock
│ │ ├── foundry.toml
│ │ ├── README.md
│ │ ├── remappings.txt
│ │ └── src
│ │ ├── BasicNft.sol
│ │ ├── F1.sol
│ │ ├── F2.sol
│ │ ├── Initializer.sol
│ │ └── inner-core-modules
│ │ └── ICM.sol
│ ├── foundry-nft-f23-icm
│ │ ├── .github
│ │ │ └── workflows
│ │ │ └── test.yml
│ │ ├── .gitignore
│ │ ├── aderyn.toml
│ │ ├── foundry.toml
│ │ ├── README.md
│ │ ├── remappings.txt
│ │ └── src
│ │ ├── BasicNft.sol
│ │ ├── F1.sol
│ │ ├── F2.sol
│ │ ├── Initializer.sol
│ │ └── inner-core-modules
│ │ └── ICM.sol
│ ├── hardhat-js-playground
│ │ ├── .gitignore
│ │ ├── artifacts
│ │ │ ├── build-info
│ │ │ │ └── cee6fe9a9a2f03f7ff10a27ab2746af6.json
│ │ │ └── contracts
│ │ │ ├── Counter.sol
│ │ │ │ ├── Counter.dbg.json
│ │ │ │ └── Counter.json
│ │ │ ├── ExtendedInheritance.sol
│ │ │ │ ├── ExtendedInheritance.dbg.json
│ │ │ │ └── ExtendedInheritance.json
│ │ │ ├── IContractInheritance.sol
│ │ │ │ ├── IContractInheritance.dbg.json
│ │ │ │ └── IContractInheritance.json
│ │ │ ├── InheritanceBase.sol
│ │ │ │ ├── InheritanceBase.dbg.json
│ │ │ │ └── InheritanceBase.json
│ │ │ ├── KeccakContract.sol
│ │ │ │ ├── KeccakContract.dbg.json
│ │ │ │ └── KeccakContract.json
│ │ │ ├── Lock.sol
│ │ │ │ ├── Lock.dbg.json
│ │ │ │ └── Lock.json
│ │ │ └── StateVariables.sol
│ │ │ ├── StateVariables.dbg.json
│ │ │ └── StateVariables.json
│ │ ├── contracts
│ │ │ ├── Counter.sol
│ │ │ ├── ExtendedInheritance.sol
│ │ │ ├── IContractInheritance.sol
│ │ │ ├── InheritanceBase.sol
│ │ │ ├── KeccakContract.sol
│ │ │ ├── Lock.sol
│ │ │ └── StateVariables.sol
│ │ ├── hardhat.config.js
│ │ ├── package.json
│ │ ├── README.md
│ │ ├── scripts
│ │ │ └── deploy.js
│ │ ├── test
│ │ │ └── Lock.js
│ │ └── yarn.lock
│ ├── no-sol-files
│ │ ├── extra
│ │ │ └── HelloAgain.md
│ │ ├── Hello.txt
│ │ └── Hello.yul
│ └── toml
│ ├── nested_project1
│ │ ├── aderyn.toml
│ │ ├── folder1
│ │ │ └── hardhat.config.ts
│ │ ├── folder2
│ │ │ └── hardhat.config.ts
│ │ └── folder3
│ │ └── file.txt
│ └── nested_project2
│ ├── aderyn.toml
│ ├── folder1
│ │ └── foundry.toml
│ └── folder2
│ └── file1.txt
├── tools
│ └── xtask
│ ├── Cargo.toml
│ └── src
│ ├── blesspr.rs
│ ├── cut_release.rs
│ ├── flags.rs
│ ├── main.rs
│ ├── reportgen.rs
│ └── tomlgen.rs
└── typos.toml
```
# Files
--------------------------------------------------------------------------------
/benchmarks/unsafe-oz-erc721-mint/report/index.html:
--------------------------------------------------------------------------------
```html
1 | <!DOCTYPE html>
2 | <html>
3 |
4 | <head>
5 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
6 | <title>unsafe-oz-erc721-mint - Criterion.rs</title>
7 | <style type="text/css">
8 | body {
9 | font: 14px Helvetica Neue;
10 | text-rendering: optimizelegibility;
11 | }
12 |
13 | .body {
14 | width: 960px;
15 | margin: auto;
16 | }
17 |
18 | th {
19 | font-weight: 200
20 | }
21 |
22 | th,
23 | td {
24 | padding-right: 3px;
25 | padding-bottom: 3px;
26 | }
27 |
28 | a:link {
29 | color: #1F78B4;
30 | text-decoration: none;
31 | }
32 |
33 | th.ci-bound {
34 | opacity: 0.6
35 | }
36 |
37 | td.ci-bound {
38 | opacity: 0.5
39 | }
40 |
41 | .stats {
42 | width: 80%;
43 | margin: auto;
44 | display: flex;
45 | }
46 |
47 | .additional_stats {
48 | flex: 0 0 60%
49 | }
50 |
51 | .additional_plots {
52 | flex: 1
53 | }
54 |
55 | h2 {
56 | font-size: 36px;
57 | font-weight: 300;
58 | }
59 |
60 | h3 {
61 | font-size: 24px;
62 | font-weight: 300;
63 | }
64 |
65 | #footer {
66 | height: 40px;
67 | background: #888;
68 | color: white;
69 | font-size: larger;
70 | font-weight: 300;
71 | }
72 |
73 | #footer a {
74 | color: white;
75 | text-decoration: underline;
76 | }
77 |
78 | #footer p {
79 | text-align: center
80 | }
81 | </style>
82 | </head>
83 |
84 | <body>
85 | <div class="body">
86 | <h2>unsafe-oz-erc721-mint</h2>
87 | <div class="absolute">
88 | <section class="plots">
89 | <table width="100%">
90 | <tbody>
91 | <tr>
92 | <td>
93 | <a href="pdf.svg">
94 | <img src="pdf_small.svg" alt="PDF of Slope" width="450" height="300" />
95 | </a>
96 | </td>
97 | <td>
98 | <a href="regression.svg">
99 | <img src="regression_small.svg" alt="Regression" width="450" height="300" />
100 | </a>
101 | </td>
102 | </tr>
103 | </tbody>
104 | </table>
105 | </section>
106 | <section class="stats">
107 | <div class="additional_stats">
108 | <h4>Additional Statistics:</h4>
109 | <table>
110 | <thead>
111 | <tr>
112 | <th></th>
113 | <th title="0.95 confidence level" class="ci-bound">Lower bound</th>
114 | <th>Estimate</th>
115 | <th title="0.95 confidence level" class="ci-bound">Upper bound</th>
116 | </tr>
117 | </thead>
118 | <tbody>
119 | <tr>
120 | <td>Slope</td>
121 | <td class="ci-bound">273.38 µs</td>
122 | <td>279.29 µs</td>
123 | <td class="ci-bound">286.17 µs</td>
124 | </tr>
125 | <tr>
126 | <td>R²</td>
127 | <td class="ci-bound">0.2986445</td>
128 | <td>0.3096305</td>
129 | <td class="ci-bound">0.2948992</td>
130 | </tr>
131 | <tr>
132 | <td>Mean</td>
133 | <td class="ci-bound">294.90 µs</td>
134 | <td>299.90 µs</td>
135 | <td class="ci-bound">304.70 µs</td>
136 | </tr>
137 | <tr>
138 | <td title="Standard Deviation">Std. Dev.</td>
139 | <td class="ci-bound">21.588 µs</td>
140 | <td>25.072 µs</td>
141 | <td class="ci-bound">27.885 µs</td>
142 | </tr>
143 | <tr>
144 | <td>Median</td>
145 | <td class="ci-bound">302.07 µs</td>
146 | <td>308.51 µs</td>
147 | <td class="ci-bound">315.41 µs</td>
148 | </tr>
149 | <tr>
150 | <td title="Median Absolute Deviation">MAD</td>
151 | <td class="ci-bound">9.0615 µs</td>
152 | <td>16.608 µs</td>
153 | <td class="ci-bound">25.856 µs</td>
154 | </tr>
155 | </tbody>
156 | </table>
157 | </div>
158 | <div class="additional_plots">
159 | <h4>Additional Plots:</h4>
160 | <ul>
161 |
162 | <li>
163 | <a href="typical.svg">Typical</a>
164 | </li>
165 | <li>
166 | <a href="mean.svg">Mean</a>
167 | </li>
168 | <li>
169 | <a href="SD.svg">Std. Dev.</a>
170 | </li>
171 | <li>
172 | <a href="median.svg">Median</a>
173 | </li>
174 | <li>
175 | <a href="MAD.svg">MAD</a>
176 | </li>
177 | <li>
178 | <a href="slope.svg">Slope</a>
179 | </li>
180 | </ul>
181 | </div>
182 | </section>
183 | <section class="explanation">
184 | <h4>Understanding this report:</h4>
185 | <p>The plot on the left displays the average time per iteration for this benchmark. The shaded region
186 | shows the estimated probability of an iteration taking a certain amount of time, while the line
187 | shows the mean. Click on the plot for a larger view showing the outliers.</p>
188 | <p>The plot on the right shows the linear regression calculated from the measurements. Each point
189 | represents a sample, though here it shows the total time for the sample rather than time per
190 | iteration. The line is the line of best fit for these measurements.</p>
191 | <p>See <a href="https://bheisler.github.io/criterion.rs/book/user_guide/command_line_output.html#additional-statistics">the
192 | documentation</a> for more details on the additional statistics.</p>
193 | </section>
194 | </div>
195 | <section class="plots">
196 | <h3>Change Since Previous Benchmark</h3>
197 | <div class="relative">
198 | <table width="100%">
199 | <tbody>
200 | <tr>
201 | <td>
202 | <a href="both/pdf.svg">
203 | <img src="relative_pdf_small.svg" alt="PDF Comparison" width="450"
204 | height="300" />
205 | </a>
206 | </td>
207 | <td>
208 | <a href="both/regression.svg">
209 | <img src="relative_regression_small.svg" alt="Regression Comparison" width="450"
210 | height="300" />
211 | </a>
212 | </td>
213 | </tr>
214 | </tbody>
215 | </table>
216 | </div>
217 | </section>
218 | <section class="stats">
219 | <div class="additional_stats">
220 | <h4>Additional Statistics:</h4>
221 | <table>
222 | <thead>
223 | <tr>
224 | <th></th>
225 | <th title="0.95 confidence level" class="ci-bound">Lower bound</th>
226 | <th>Estimate</th>
227 | <th title="0.95 confidence level" class="ci-bound">Upper bound</th>
228 | <th></th>
229 | </tr>
230 | </thead>
231 | <tbody>
232 | <tr>
233 | <td>Change in time</td>
234 | <td class="ci-bound">+19.155%</td>
235 | <td>+21.382%</td>
236 | <td class="ci-bound">+23.631%</td>
237 | <td>(p = 0.00 <
238 | 0.05)</td>
239 | </tr>
240 | </tbody>
241 | </table>
242 | Performance has regressed.
243 | </div>
244 | <div class="additional_plots">
245 | <h4>Additional Plots:</h4>
246 | <ul>
247 |
248 | <li>
249 | <a href="change/mean.svg">Change in mean</a>
250 | </li>
251 | <li>
252 | <a href="change/median.svg">Change in median</a>
253 | </li>
254 | <li>
255 | <a href="change/t-test.svg">T-Test</a>
256 | </li>
257 | </ul>
258 | </div>
259 | </section>
260 | <section class="explanation">
261 | <h4>Understanding this report:</h4>
262 | <p>The plot on the left shows the probability of the function taking a certain amount of time. The red
263 | curve represents the saved measurements from the last time this benchmark was run, while the blue curve
264 | shows the measurements from this run. The lines represent the mean time per iteration. Click on the
265 | plot for a larger view.</p>
266 | <p>The plot on the right shows the two regressions. Again, the red line represents the previous measurement
267 | while the blue line shows the current measurement.</p>
268 | <p>See <a href="https://bheisler.github.io/criterion.rs/book/user_guide/command_line_output.html#change">the
269 | documentation</a> for more details on the additional statistics.</p>
270 | </section>
271 | </div>
272 | <div id="footer">
273 | <p>This report was generated by
274 | <a href="https://github.com/bheisler/criterion.rs">Criterion.rs</a>, a statistics-driven benchmarking
275 | library in Rust.</p>
276 | </div>
277 | </body>
278 |
279 | </html>
```
--------------------------------------------------------------------------------
/benchmarks/unsafe-erc20-functions/report/index.html:
--------------------------------------------------------------------------------
```html
1 | <!DOCTYPE html>
2 | <html>
3 |
4 | <head>
5 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
6 | <title>unsafe-erc20-functions - Criterion.rs</title>
7 | <style type="text/css">
8 | body {
9 | font: 14px Helvetica Neue;
10 | text-rendering: optimizelegibility;
11 | }
12 |
13 | .body {
14 | width: 960px;
15 | margin: auto;
16 | }
17 |
18 | th {
19 | font-weight: 200
20 | }
21 |
22 | th,
23 | td {
24 | padding-right: 3px;
25 | padding-bottom: 3px;
26 | }
27 |
28 | a:link {
29 | color: #1F78B4;
30 | text-decoration: none;
31 | }
32 |
33 | th.ci-bound {
34 | opacity: 0.6
35 | }
36 |
37 | td.ci-bound {
38 | opacity: 0.5
39 | }
40 |
41 | .stats {
42 | width: 80%;
43 | margin: auto;
44 | display: flex;
45 | }
46 |
47 | .additional_stats {
48 | flex: 0 0 60%
49 | }
50 |
51 | .additional_plots {
52 | flex: 1
53 | }
54 |
55 | h2 {
56 | font-size: 36px;
57 | font-weight: 300;
58 | }
59 |
60 | h3 {
61 | font-size: 24px;
62 | font-weight: 300;
63 | }
64 |
65 | #footer {
66 | height: 40px;
67 | background: #888;
68 | color: white;
69 | font-size: larger;
70 | font-weight: 300;
71 | }
72 |
73 | #footer a {
74 | color: white;
75 | text-decoration: underline;
76 | }
77 |
78 | #footer p {
79 | text-align: center
80 | }
81 | </style>
82 | </head>
83 |
84 | <body>
85 | <div class="body">
86 | <h2>unsafe-erc20-functions</h2>
87 | <div class="absolute">
88 | <section class="plots">
89 | <table width="100%">
90 | <tbody>
91 | <tr>
92 | <td>
93 | <a href="pdf.svg">
94 | <img src="pdf_small.svg" alt="PDF of Slope" width="450" height="300" />
95 | </a>
96 | </td>
97 | <td>
98 | <a href="regression.svg">
99 | <img src="regression_small.svg" alt="Regression" width="450" height="300" />
100 | </a>
101 | </td>
102 | </tr>
103 | </tbody>
104 | </table>
105 | </section>
106 | <section class="stats">
107 | <div class="additional_stats">
108 | <h4>Additional Statistics:</h4>
109 | <table>
110 | <thead>
111 | <tr>
112 | <th></th>
113 | <th title="0.95 confidence level" class="ci-bound">Lower bound</th>
114 | <th>Estimate</th>
115 | <th title="0.95 confidence level" class="ci-bound">Upper bound</th>
116 | </tr>
117 | </thead>
118 | <tbody>
119 | <tr>
120 | <td>Slope</td>
121 | <td class="ci-bound">43.742 µs</td>
122 | <td>44.481 µs</td>
123 | <td class="ci-bound">45.371 µs</td>
124 | </tr>
125 | <tr>
126 | <td>R²</td>
127 | <td class="ci-bound">0.4806069</td>
128 | <td>0.4900773</td>
129 | <td class="ci-bound">0.4764812</td>
130 | </tr>
131 | <tr>
132 | <td>Mean</td>
133 | <td class="ci-bound">43.136 µs</td>
134 | <td>44.036 µs</td>
135 | <td class="ci-bound">45.110 µs</td>
136 | </tr>
137 | <tr>
138 | <td title="Standard Deviation">Std. Dev.</td>
139 | <td class="ci-bound">2.9101 µs</td>
140 | <td>5.0714 µs</td>
141 | <td class="ci-bound">6.9910 µs</td>
142 | </tr>
143 | <tr>
144 | <td>Median</td>
145 | <td class="ci-bound">42.419 µs</td>
146 | <td>42.902 µs</td>
147 | <td class="ci-bound">43.342 µs</td>
148 | </tr>
149 | <tr>
150 | <td title="Median Absolute Deviation">MAD</td>
151 | <td class="ci-bound">1.3267 µs</td>
152 | <td>1.6714 µs</td>
153 | <td class="ci-bound">2.5145 µs</td>
154 | </tr>
155 | </tbody>
156 | </table>
157 | </div>
158 | <div class="additional_plots">
159 | <h4>Additional Plots:</h4>
160 | <ul>
161 |
162 | <li>
163 | <a href="typical.svg">Typical</a>
164 | </li>
165 | <li>
166 | <a href="mean.svg">Mean</a>
167 | </li>
168 | <li>
169 | <a href="SD.svg">Std. Dev.</a>
170 | </li>
171 | <li>
172 | <a href="median.svg">Median</a>
173 | </li>
174 | <li>
175 | <a href="MAD.svg">MAD</a>
176 | </li>
177 | <li>
178 | <a href="slope.svg">Slope</a>
179 | </li>
180 | </ul>
181 | </div>
182 | </section>
183 | <section class="explanation">
184 | <h4>Understanding this report:</h4>
185 | <p>The plot on the left displays the average time per iteration for this benchmark. The shaded region
186 | shows the estimated probability of an iteration taking a certain amount of time, while the line
187 | shows the mean. Click on the plot for a larger view showing the outliers.</p>
188 | <p>The plot on the right shows the linear regression calculated from the measurements. Each point
189 | represents a sample, though here it shows the total time for the sample rather than time per
190 | iteration. The line is the line of best fit for these measurements.</p>
191 | <p>See <a href="https://bheisler.github.io/criterion.rs/book/user_guide/command_line_output.html#additional-statistics">the
192 | documentation</a> for more details on the additional statistics.</p>
193 | </section>
194 | </div>
195 | <section class="plots">
196 | <h3>Change Since Previous Benchmark</h3>
197 | <div class="relative">
198 | <table width="100%">
199 | <tbody>
200 | <tr>
201 | <td>
202 | <a href="both/pdf.svg">
203 | <img src="relative_pdf_small.svg" alt="PDF Comparison" width="450"
204 | height="300" />
205 | </a>
206 | </td>
207 | <td>
208 | <a href="both/regression.svg">
209 | <img src="relative_regression_small.svg" alt="Regression Comparison" width="450"
210 | height="300" />
211 | </a>
212 | </td>
213 | </tr>
214 | </tbody>
215 | </table>
216 | </div>
217 | </section>
218 | <section class="stats">
219 | <div class="additional_stats">
220 | <h4>Additional Statistics:</h4>
221 | <table>
222 | <thead>
223 | <tr>
224 | <th></th>
225 | <th title="0.95 confidence level" class="ci-bound">Lower bound</th>
226 | <th>Estimate</th>
227 | <th title="0.95 confidence level" class="ci-bound">Upper bound</th>
228 | <th></th>
229 | </tr>
230 | </thead>
231 | <tbody>
232 | <tr>
233 | <td>Change in time</td>
234 | <td class="ci-bound">+19.187%</td>
235 | <td>+21.806%</td>
236 | <td class="ci-bound">+24.865%</td>
237 | <td>(p = 0.00 <
238 | 0.05)</td>
239 | </tr>
240 | </tbody>
241 | </table>
242 | Performance has regressed.
243 | </div>
244 | <div class="additional_plots">
245 | <h4>Additional Plots:</h4>
246 | <ul>
247 |
248 | <li>
249 | <a href="change/mean.svg">Change in mean</a>
250 | </li>
251 | <li>
252 | <a href="change/median.svg">Change in median</a>
253 | </li>
254 | <li>
255 | <a href="change/t-test.svg">T-Test</a>
256 | </li>
257 | </ul>
258 | </div>
259 | </section>
260 | <section class="explanation">
261 | <h4>Understanding this report:</h4>
262 | <p>The plot on the left shows the probability of the function taking a certain amount of time. The red
263 | curve represents the saved measurements from the last time this benchmark was run, while the blue curve
264 | shows the measurements from this run. The lines represent the mean time per iteration. Click on the
265 | plot for a larger view.</p>
266 | <p>The plot on the right shows the two regressions. Again, the red line represents the previous measurement
267 | while the blue line shows the current measurement.</p>
268 | <p>See <a href="https://bheisler.github.io/criterion.rs/book/user_guide/command_line_output.html#change">the
269 | documentation</a> for more details on the additional statistics.</p>
270 | </section>
271 | </div>
272 | <div id="footer">
273 | <p>This report was generated by
274 | <a href="https://github.com/bheisler/criterion.rs">Criterion.rs</a>, a statistics-driven benchmarking
275 | library in Rust.</p>
276 | </div>
277 | </body>
278 |
279 | </html>
```
--------------------------------------------------------------------------------
/benchmarks/avoid-abi-encode-packed/report/index.html:
--------------------------------------------------------------------------------
```html
1 | <!DOCTYPE html>
2 | <html>
3 |
4 | <head>
5 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
6 | <title>avoid-abi-encode-packed - Criterion.rs</title>
7 | <style type="text/css">
8 | body {
9 | font: 14px Helvetica Neue;
10 | text-rendering: optimizelegibility;
11 | }
12 |
13 | .body {
14 | width: 960px;
15 | margin: auto;
16 | }
17 |
18 | th {
19 | font-weight: 200
20 | }
21 |
22 | th,
23 | td {
24 | padding-right: 3px;
25 | padding-bottom: 3px;
26 | }
27 |
28 | a:link {
29 | color: #1F78B4;
30 | text-decoration: none;
31 | }
32 |
33 | th.ci-bound {
34 | opacity: 0.6
35 | }
36 |
37 | td.ci-bound {
38 | opacity: 0.5
39 | }
40 |
41 | .stats {
42 | width: 80%;
43 | margin: auto;
44 | display: flex;
45 | }
46 |
47 | .additional_stats {
48 | flex: 0 0 60%
49 | }
50 |
51 | .additional_plots {
52 | flex: 1
53 | }
54 |
55 | h2 {
56 | font-size: 36px;
57 | font-weight: 300;
58 | }
59 |
60 | h3 {
61 | font-size: 24px;
62 | font-weight: 300;
63 | }
64 |
65 | #footer {
66 | height: 40px;
67 | background: #888;
68 | color: white;
69 | font-size: larger;
70 | font-weight: 300;
71 | }
72 |
73 | #footer a {
74 | color: white;
75 | text-decoration: underline;
76 | }
77 |
78 | #footer p {
79 | text-align: center
80 | }
81 | </style>
82 | </head>
83 |
84 | <body>
85 | <div class="body">
86 | <h2>avoid-abi-encode-packed</h2>
87 | <div class="absolute">
88 | <section class="plots">
89 | <table width="100%">
90 | <tbody>
91 | <tr>
92 | <td>
93 | <a href="pdf.svg">
94 | <img src="pdf_small.svg" alt="PDF of Slope" width="450" height="300" />
95 | </a>
96 | </td>
97 | <td>
98 | <a href="regression.svg">
99 | <img src="regression_small.svg" alt="Regression" width="450" height="300" />
100 | </a>
101 | </td>
102 | </tr>
103 | </tbody>
104 | </table>
105 | </section>
106 | <section class="stats">
107 | <div class="additional_stats">
108 | <h4>Additional Statistics:</h4>
109 | <table>
110 | <thead>
111 | <tr>
112 | <th></th>
113 | <th title="0.95 confidence level" class="ci-bound">Lower bound</th>
114 | <th>Estimate</th>
115 | <th title="0.95 confidence level" class="ci-bound">Upper bound</th>
116 | </tr>
117 | </thead>
118 | <tbody>
119 | <tr>
120 | <td>Slope</td>
121 | <td class="ci-bound">14.186 µs</td>
122 | <td>14.253 µs</td>
123 | <td class="ci-bound">14.330 µs</td>
124 | </tr>
125 | <tr>
126 | <td>R²</td>
127 | <td class="ci-bound">0.9362899</td>
128 | <td>0.9389941</td>
129 | <td class="ci-bound">0.9353741</td>
130 | </tr>
131 | <tr>
132 | <td>Mean</td>
133 | <td class="ci-bound">14.298 µs</td>
134 | <td>14.424 µs</td>
135 | <td class="ci-bound">14.591 µs</td>
136 | </tr>
137 | <tr>
138 | <td title="Standard Deviation">Std. Dev.</td>
139 | <td class="ci-bound">298.17 ns</td>
140 | <td>759.81 ns</td>
141 | <td class="ci-bound">1.1654 µs</td>
142 | </tr>
143 | <tr>
144 | <td>Median</td>
145 | <td class="ci-bound">14.201 µs</td>
146 | <td>14.311 µs</td>
147 | <td class="ci-bound">14.400 µs</td>
148 | </tr>
149 | <tr>
150 | <td title="Median Absolute Deviation">MAD</td>
151 | <td class="ci-bound">253.89 ns</td>
152 | <td>336.78 ns</td>
153 | <td class="ci-bound">369.23 ns</td>
154 | </tr>
155 | </tbody>
156 | </table>
157 | </div>
158 | <div class="additional_plots">
159 | <h4>Additional Plots:</h4>
160 | <ul>
161 |
162 | <li>
163 | <a href="typical.svg">Typical</a>
164 | </li>
165 | <li>
166 | <a href="mean.svg">Mean</a>
167 | </li>
168 | <li>
169 | <a href="SD.svg">Std. Dev.</a>
170 | </li>
171 | <li>
172 | <a href="median.svg">Median</a>
173 | </li>
174 | <li>
175 | <a href="MAD.svg">MAD</a>
176 | </li>
177 | <li>
178 | <a href="slope.svg">Slope</a>
179 | </li>
180 | </ul>
181 | </div>
182 | </section>
183 | <section class="explanation">
184 | <h4>Understanding this report:</h4>
185 | <p>The plot on the left displays the average time per iteration for this benchmark. The shaded region
186 | shows the estimated probability of an iteration taking a certain amount of time, while the line
187 | shows the mean. Click on the plot for a larger view showing the outliers.</p>
188 | <p>The plot on the right shows the linear regression calculated from the measurements. Each point
189 | represents a sample, though here it shows the total time for the sample rather than time per
190 | iteration. The line is the line of best fit for these measurements.</p>
191 | <p>See <a href="https://bheisler.github.io/criterion.rs/book/user_guide/command_line_output.html#additional-statistics">the
192 | documentation</a> for more details on the additional statistics.</p>
193 | </section>
194 | </div>
195 | <section class="plots">
196 | <h3>Change Since Previous Benchmark</h3>
197 | <div class="relative">
198 | <table width="100%">
199 | <tbody>
200 | <tr>
201 | <td>
202 | <a href="both/pdf.svg">
203 | <img src="relative_pdf_small.svg" alt="PDF Comparison" width="450"
204 | height="300" />
205 | </a>
206 | </td>
207 | <td>
208 | <a href="both/regression.svg">
209 | <img src="relative_regression_small.svg" alt="Regression Comparison" width="450"
210 | height="300" />
211 | </a>
212 | </td>
213 | </tr>
214 | </tbody>
215 | </table>
216 | </div>
217 | </section>
218 | <section class="stats">
219 | <div class="additional_stats">
220 | <h4>Additional Statistics:</h4>
221 | <table>
222 | <thead>
223 | <tr>
224 | <th></th>
225 | <th title="0.95 confidence level" class="ci-bound">Lower bound</th>
226 | <th>Estimate</th>
227 | <th title="0.95 confidence level" class="ci-bound">Upper bound</th>
228 | <th></th>
229 | </tr>
230 | </thead>
231 | <tbody>
232 | <tr>
233 | <td>Change in time</td>
234 | <td class="ci-bound">-5.5301%</td>
235 | <td>-3.3450%</td>
236 | <td class="ci-bound">-1.4010%</td>
237 | <td>(p = 0.00 <
238 | 0.05)</td>
239 | </tr>
240 | </tbody>
241 | </table>
242 | Performance has improved.
243 | </div>
244 | <div class="additional_plots">
245 | <h4>Additional Plots:</h4>
246 | <ul>
247 |
248 | <li>
249 | <a href="change/mean.svg">Change in mean</a>
250 | </li>
251 | <li>
252 | <a href="change/median.svg">Change in median</a>
253 | </li>
254 | <li>
255 | <a href="change/t-test.svg">T-Test</a>
256 | </li>
257 | </ul>
258 | </div>
259 | </section>
260 | <section class="explanation">
261 | <h4>Understanding this report:</h4>
262 | <p>The plot on the left shows the probability of the function taking a certain amount of time. The red
263 | curve represents the saved measurements from the last time this benchmark was run, while the blue curve
264 | shows the measurements from this run. The lines represent the mean time per iteration. Click on the
265 | plot for a larger view.</p>
266 | <p>The plot on the right shows the two regressions. Again, the red line represents the previous measurement
267 | while the blue line shows the current measurement.</p>
268 | <p>See <a href="https://bheisler.github.io/criterion.rs/book/user_guide/command_line_output.html#change">the
269 | documentation</a> for more details on the additional statistics.</p>
270 | </section>
271 | </div>
272 | <div id="footer">
273 | <p>This report was generated by
274 | <a href="https://github.com/bheisler/criterion.rs">Criterion.rs</a>, a statistics-driven benchmarking
275 | library in Rust.</p>
276 | </div>
277 | </body>
278 |
279 | </html>
```
--------------------------------------------------------------------------------
/benchmarks/deprecated-oz-functions/report/index.html:
--------------------------------------------------------------------------------
```html
1 | <!DOCTYPE html>
2 | <html>
3 |
4 | <head>
5 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
6 | <title>deprecated-oz-functions - Criterion.rs</title>
7 | <style type="text/css">
8 | body {
9 | font: 14px Helvetica Neue;
10 | text-rendering: optimizelegibility;
11 | }
12 |
13 | .body {
14 | width: 960px;
15 | margin: auto;
16 | }
17 |
18 | th {
19 | font-weight: 200
20 | }
21 |
22 | th,
23 | td {
24 | padding-right: 3px;
25 | padding-bottom: 3px;
26 | }
27 |
28 | a:link {
29 | color: #1F78B4;
30 | text-decoration: none;
31 | }
32 |
33 | th.ci-bound {
34 | opacity: 0.6
35 | }
36 |
37 | td.ci-bound {
38 | opacity: 0.5
39 | }
40 |
41 | .stats {
42 | width: 80%;
43 | margin: auto;
44 | display: flex;
45 | }
46 |
47 | .additional_stats {
48 | flex: 0 0 60%
49 | }
50 |
51 | .additional_plots {
52 | flex: 1
53 | }
54 |
55 | h2 {
56 | font-size: 36px;
57 | font-weight: 300;
58 | }
59 |
60 | h3 {
61 | font-size: 24px;
62 | font-weight: 300;
63 | }
64 |
65 | #footer {
66 | height: 40px;
67 | background: #888;
68 | color: white;
69 | font-size: larger;
70 | font-weight: 300;
71 | }
72 |
73 | #footer a {
74 | color: white;
75 | text-decoration: underline;
76 | }
77 |
78 | #footer p {
79 | text-align: center
80 | }
81 | </style>
82 | </head>
83 |
84 | <body>
85 | <div class="body">
86 | <h2>deprecated-oz-functions</h2>
87 | <div class="absolute">
88 | <section class="plots">
89 | <table width="100%">
90 | <tbody>
91 | <tr>
92 | <td>
93 | <a href="pdf.svg">
94 | <img src="pdf_small.svg" alt="PDF of Slope" width="450" height="300" />
95 | </a>
96 | </td>
97 | <td>
98 | <a href="regression.svg">
99 | <img src="regression_small.svg" alt="Regression" width="450" height="300" />
100 | </a>
101 | </td>
102 | </tr>
103 | </tbody>
104 | </table>
105 | </section>
106 | <section class="stats">
107 | <div class="additional_stats">
108 | <h4>Additional Statistics:</h4>
109 | <table>
110 | <thead>
111 | <tr>
112 | <th></th>
113 | <th title="0.95 confidence level" class="ci-bound">Lower bound</th>
114 | <th>Estimate</th>
115 | <th title="0.95 confidence level" class="ci-bound">Upper bound</th>
116 | </tr>
117 | </thead>
118 | <tbody>
119 | <tr>
120 | <td>Slope</td>
121 | <td class="ci-bound">258.89 µs</td>
122 | <td>264.76 µs</td>
123 | <td class="ci-bound">272.76 µs</td>
124 | </tr>
125 | <tr>
126 | <td>R²</td>
127 | <td class="ci-bound">0.2069625</td>
128 | <td>0.2107449</td>
129 | <td class="ci-bound">0.2038279</td>
130 | </tr>
131 | <tr>
132 | <td>Mean</td>
133 | <td class="ci-bound">265.73 µs</td>
134 | <td>274.33 µs</td>
135 | <td class="ci-bound">285.34 µs</td>
136 | </tr>
137 | <tr>
138 | <td title="Standard Deviation">Std. Dev.</td>
139 | <td class="ci-bound">21.131 µs</td>
140 | <td>50.666 µs</td>
141 | <td class="ci-bound">74.901 µs</td>
142 | </tr>
143 | <tr>
144 | <td>Median</td>
145 | <td class="ci-bound">257.84 µs</td>
146 | <td>261.30 µs</td>
147 | <td class="ci-bound">263.83 µs</td>
148 | </tr>
149 | <tr>
150 | <td title="Median Absolute Deviation">MAD</td>
151 | <td class="ci-bound">7.5658 µs</td>
152 | <td>10.740 µs</td>
153 | <td class="ci-bound">13.842 µs</td>
154 | </tr>
155 | </tbody>
156 | </table>
157 | </div>
158 | <div class="additional_plots">
159 | <h4>Additional Plots:</h4>
160 | <ul>
161 |
162 | <li>
163 | <a href="typical.svg">Typical</a>
164 | </li>
165 | <li>
166 | <a href="mean.svg">Mean</a>
167 | </li>
168 | <li>
169 | <a href="SD.svg">Std. Dev.</a>
170 | </li>
171 | <li>
172 | <a href="median.svg">Median</a>
173 | </li>
174 | <li>
175 | <a href="MAD.svg">MAD</a>
176 | </li>
177 | <li>
178 | <a href="slope.svg">Slope</a>
179 | </li>
180 | </ul>
181 | </div>
182 | </section>
183 | <section class="explanation">
184 | <h4>Understanding this report:</h4>
185 | <p>The plot on the left displays the average time per iteration for this benchmark. The shaded region
186 | shows the estimated probability of an iteration taking a certain amount of time, while the line
187 | shows the mean. Click on the plot for a larger view showing the outliers.</p>
188 | <p>The plot on the right shows the linear regression calculated from the measurements. Each point
189 | represents a sample, though here it shows the total time for the sample rather than time per
190 | iteration. The line is the line of best fit for these measurements.</p>
191 | <p>See <a href="https://bheisler.github.io/criterion.rs/book/user_guide/command_line_output.html#additional-statistics">the
192 | documentation</a> for more details on the additional statistics.</p>
193 | </section>
194 | </div>
195 | <section class="plots">
196 | <h3>Change Since Previous Benchmark</h3>
197 | <div class="relative">
198 | <table width="100%">
199 | <tbody>
200 | <tr>
201 | <td>
202 | <a href="both/pdf.svg">
203 | <img src="relative_pdf_small.svg" alt="PDF Comparison" width="450"
204 | height="300" />
205 | </a>
206 | </td>
207 | <td>
208 | <a href="both/regression.svg">
209 | <img src="relative_regression_small.svg" alt="Regression Comparison" width="450"
210 | height="300" />
211 | </a>
212 | </td>
213 | </tr>
214 | </tbody>
215 | </table>
216 | </div>
217 | </section>
218 | <section class="stats">
219 | <div class="additional_stats">
220 | <h4>Additional Statistics:</h4>
221 | <table>
222 | <thead>
223 | <tr>
224 | <th></th>
225 | <th title="0.95 confidence level" class="ci-bound">Lower bound</th>
226 | <th>Estimate</th>
227 | <th title="0.95 confidence level" class="ci-bound">Upper bound</th>
228 | <th></th>
229 | </tr>
230 | </thead>
231 | <tbody>
232 | <tr>
233 | <td>Change in time</td>
234 | <td class="ci-bound">+5.0342%</td>
235 | <td>+8.7841%</td>
236 | <td class="ci-bound">+13.319%</td>
237 | <td>(p = 0.00 <
238 | 0.05)</td>
239 | </tr>
240 | </tbody>
241 | </table>
242 | Performance has regressed.
243 | </div>
244 | <div class="additional_plots">
245 | <h4>Additional Plots:</h4>
246 | <ul>
247 |
248 | <li>
249 | <a href="change/mean.svg">Change in mean</a>
250 | </li>
251 | <li>
252 | <a href="change/median.svg">Change in median</a>
253 | </li>
254 | <li>
255 | <a href="change/t-test.svg">T-Test</a>
256 | </li>
257 | </ul>
258 | </div>
259 | </section>
260 | <section class="explanation">
261 | <h4>Understanding this report:</h4>
262 | <p>The plot on the left shows the probability of the function taking a certain amount of time. The red
263 | curve represents the saved measurements from the last time this benchmark was run, while the blue curve
264 | shows the measurements from this run. The lines represent the mean time per iteration. Click on the
265 | plot for a larger view.</p>
266 | <p>The plot on the right shows the two regressions. Again, the red line represents the previous measurement
267 | while the blue line shows the current measurement.</p>
268 | <p>See <a href="https://bheisler.github.io/criterion.rs/book/user_guide/command_line_output.html#change">the
269 | documentation</a> for more details on the additional statistics.</p>
270 | </section>
271 | </div>
272 | <div id="footer">
273 | <p>This report was generated by
274 | <a href="https://github.com/bheisler/criterion.rs">Criterion.rs</a>, a statistics-driven benchmarking
275 | library in Rust.</p>
276 | </div>
277 | </body>
278 |
279 | </html>
```
--------------------------------------------------------------------------------
/benchmarks/inconsistent-type-names/report/index.html:
--------------------------------------------------------------------------------
```html
1 | <!DOCTYPE html>
2 | <html>
3 |
4 | <head>
5 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
6 | <title>inconsistent-type-names - Criterion.rs</title>
7 | <style type="text/css">
8 | body {
9 | font: 14px Helvetica Neue;
10 | text-rendering: optimizelegibility;
11 | }
12 |
13 | .body {
14 | width: 960px;
15 | margin: auto;
16 | }
17 |
18 | th {
19 | font-weight: 200
20 | }
21 |
22 | th,
23 | td {
24 | padding-right: 3px;
25 | padding-bottom: 3px;
26 | }
27 |
28 | a:link {
29 | color: #1F78B4;
30 | text-decoration: none;
31 | }
32 |
33 | th.ci-bound {
34 | opacity: 0.6
35 | }
36 |
37 | td.ci-bound {
38 | opacity: 0.5
39 | }
40 |
41 | .stats {
42 | width: 80%;
43 | margin: auto;
44 | display: flex;
45 | }
46 |
47 | .additional_stats {
48 | flex: 0 0 60%
49 | }
50 |
51 | .additional_plots {
52 | flex: 1
53 | }
54 |
55 | h2 {
56 | font-size: 36px;
57 | font-weight: 300;
58 | }
59 |
60 | h3 {
61 | font-size: 24px;
62 | font-weight: 300;
63 | }
64 |
65 | #footer {
66 | height: 40px;
67 | background: #888;
68 | color: white;
69 | font-size: larger;
70 | font-weight: 300;
71 | }
72 |
73 | #footer a {
74 | color: white;
75 | text-decoration: underline;
76 | }
77 |
78 | #footer p {
79 | text-align: center
80 | }
81 | </style>
82 | </head>
83 |
84 | <body>
85 | <div class="body">
86 | <h2>inconsistent-type-names</h2>
87 | <div class="absolute">
88 | <section class="plots">
89 | <table width="100%">
90 | <tbody>
91 | <tr>
92 | <td>
93 | <a href="pdf.svg">
94 | <img src="pdf_small.svg" alt="PDF of Slope" width="450" height="300" />
95 | </a>
96 | </td>
97 | <td>
98 | <a href="regression.svg">
99 | <img src="regression_small.svg" alt="Regression" width="450" height="300" />
100 | </a>
101 | </td>
102 | </tr>
103 | </tbody>
104 | </table>
105 | </section>
106 | <section class="stats">
107 | <div class="additional_stats">
108 | <h4>Additional Statistics:</h4>
109 | <table>
110 | <thead>
111 | <tr>
112 | <th></th>
113 | <th title="0.95 confidence level" class="ci-bound">Lower bound</th>
114 | <th>Estimate</th>
115 | <th title="0.95 confidence level" class="ci-bound">Upper bound</th>
116 | </tr>
117 | </thead>
118 | <tbody>
119 | <tr>
120 | <td>Slope</td>
121 | <td class="ci-bound">1.5987 ms</td>
122 | <td>1.6585 ms</td>
123 | <td class="ci-bound">1.7303 ms</td>
124 | </tr>
125 | <tr>
126 | <td>R²</td>
127 | <td class="ci-bound">0.0709597</td>
128 | <td>0.0729844</td>
129 | <td class="ci-bound">0.0700966</td>
130 | </tr>
131 | <tr>
132 | <td>Mean</td>
133 | <td class="ci-bound">1.5968 ms</td>
134 | <td>1.6767 ms</td>
135 | <td class="ci-bound">1.7767 ms</td>
136 | </tr>
137 | <tr>
138 | <td title="Standard Deviation">Std. Dev.</td>
139 | <td class="ci-bound">237.70 µs</td>
140 | <td>464.62 µs</td>
141 | <td class="ci-bound">684.43 µs</td>
142 | </tr>
143 | <tr>
144 | <td>Median</td>
145 | <td class="ci-bound">1.5110 ms</td>
146 | <td>1.5449 ms</td>
147 | <td class="ci-bound">1.6103 ms</td>
148 | </tr>
149 | <tr>
150 | <td title="Median Absolute Deviation">MAD</td>
151 | <td class="ci-bound">146.37 µs</td>
152 | <td>199.65 µs</td>
153 | <td class="ci-bound">252.61 µs</td>
154 | </tr>
155 | </tbody>
156 | </table>
157 | </div>
158 | <div class="additional_plots">
159 | <h4>Additional Plots:</h4>
160 | <ul>
161 |
162 | <li>
163 | <a href="typical.svg">Typical</a>
164 | </li>
165 | <li>
166 | <a href="mean.svg">Mean</a>
167 | </li>
168 | <li>
169 | <a href="SD.svg">Std. Dev.</a>
170 | </li>
171 | <li>
172 | <a href="median.svg">Median</a>
173 | </li>
174 | <li>
175 | <a href="MAD.svg">MAD</a>
176 | </li>
177 | <li>
178 | <a href="slope.svg">Slope</a>
179 | </li>
180 | </ul>
181 | </div>
182 | </section>
183 | <section class="explanation">
184 | <h4>Understanding this report:</h4>
185 | <p>The plot on the left displays the average time per iteration for this benchmark. The shaded region
186 | shows the estimated probability of an iteration taking a certain amount of time, while the line
187 | shows the mean. Click on the plot for a larger view showing the outliers.</p>
188 | <p>The plot on the right shows the linear regression calculated from the measurements. Each point
189 | represents a sample, though here it shows the total time for the sample rather than time per
190 | iteration. The line is the line of best fit for these measurements.</p>
191 | <p>See <a href="https://bheisler.github.io/criterion.rs/book/user_guide/command_line_output.html#additional-statistics">the
192 | documentation</a> for more details on the additional statistics.</p>
193 | </section>
194 | </div>
195 | <section class="plots">
196 | <h3>Change Since Previous Benchmark</h3>
197 | <div class="relative">
198 | <table width="100%">
199 | <tbody>
200 | <tr>
201 | <td>
202 | <a href="both/pdf.svg">
203 | <img src="relative_pdf_small.svg" alt="PDF Comparison" width="450"
204 | height="300" />
205 | </a>
206 | </td>
207 | <td>
208 | <a href="both/regression.svg">
209 | <img src="relative_regression_small.svg" alt="Regression Comparison" width="450"
210 | height="300" />
211 | </a>
212 | </td>
213 | </tr>
214 | </tbody>
215 | </table>
216 | </div>
217 | </section>
218 | <section class="stats">
219 | <div class="additional_stats">
220 | <h4>Additional Statistics:</h4>
221 | <table>
222 | <thead>
223 | <tr>
224 | <th></th>
225 | <th title="0.95 confidence level" class="ci-bound">Lower bound</th>
226 | <th>Estimate</th>
227 | <th title="0.95 confidence level" class="ci-bound">Upper bound</th>
228 | <th></th>
229 | </tr>
230 | </thead>
231 | <tbody>
232 | <tr>
233 | <td>Change in time</td>
234 | <td class="ci-bound">+11.508%</td>
235 | <td>+18.267%</td>
236 | <td class="ci-bound">+26.079%</td>
237 | <td>(p = 0.00 <
238 | 0.05)</td>
239 | </tr>
240 | </tbody>
241 | </table>
242 | Performance has regressed.
243 | </div>
244 | <div class="additional_plots">
245 | <h4>Additional Plots:</h4>
246 | <ul>
247 |
248 | <li>
249 | <a href="change/mean.svg">Change in mean</a>
250 | </li>
251 | <li>
252 | <a href="change/median.svg">Change in median</a>
253 | </li>
254 | <li>
255 | <a href="change/t-test.svg">T-Test</a>
256 | </li>
257 | </ul>
258 | </div>
259 | </section>
260 | <section class="explanation">
261 | <h4>Understanding this report:</h4>
262 | <p>The plot on the left shows the probability of the function taking a certain amount of time. The red
263 | curve represents the saved measurements from the last time this benchmark was run, while the blue curve
264 | shows the measurements from this run. The lines represent the mean time per iteration. Click on the
265 | plot for a larger view.</p>
266 | <p>The plot on the right shows the two regressions. Again, the red line represents the previous measurement
267 | while the blue line shows the current measurement.</p>
268 | <p>See <a href="https://bheisler.github.io/criterion.rs/book/user_guide/command_line_output.html#change">the
269 | documentation</a> for more details on the additional statistics.</p>
270 | </section>
271 | </div>
272 | <div id="footer">
273 | <p>This report was generated by
274 | <a href="https://github.com/bheisler/criterion.rs">Criterion.rs</a>, a statistics-driven benchmarking
275 | library in Rust.</p>
276 | </div>
277 | </body>
278 |
279 | </html>
```
--------------------------------------------------------------------------------
/benchmarks/unprotected-initializer/report/index.html:
--------------------------------------------------------------------------------
```html
1 | <!DOCTYPE html>
2 | <html>
3 |
4 | <head>
5 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
6 | <title>unprotected-initializer - Criterion.rs</title>
7 | <style type="text/css">
8 | body {
9 | font: 14px Helvetica Neue;
10 | text-rendering: optimizelegibility;
11 | }
12 |
13 | .body {
14 | width: 960px;
15 | margin: auto;
16 | }
17 |
18 | th {
19 | font-weight: 200
20 | }
21 |
22 | th,
23 | td {
24 | padding-right: 3px;
25 | padding-bottom: 3px;
26 | }
27 |
28 | a:link {
29 | color: #1F78B4;
30 | text-decoration: none;
31 | }
32 |
33 | th.ci-bound {
34 | opacity: 0.6
35 | }
36 |
37 | td.ci-bound {
38 | opacity: 0.5
39 | }
40 |
41 | .stats {
42 | width: 80%;
43 | margin: auto;
44 | display: flex;
45 | }
46 |
47 | .additional_stats {
48 | flex: 0 0 60%
49 | }
50 |
51 | .additional_plots {
52 | flex: 1
53 | }
54 |
55 | h2 {
56 | font-size: 36px;
57 | font-weight: 300;
58 | }
59 |
60 | h3 {
61 | font-size: 24px;
62 | font-weight: 300;
63 | }
64 |
65 | #footer {
66 | height: 40px;
67 | background: #888;
68 | color: white;
69 | font-size: larger;
70 | font-weight: 300;
71 | }
72 |
73 | #footer a {
74 | color: white;
75 | text-decoration: underline;
76 | }
77 |
78 | #footer p {
79 | text-align: center
80 | }
81 | </style>
82 | </head>
83 |
84 | <body>
85 | <div class="body">
86 | <h2>unprotected-initializer</h2>
87 | <div class="absolute">
88 | <section class="plots">
89 | <table width="100%">
90 | <tbody>
91 | <tr>
92 | <td>
93 | <a href="pdf.svg">
94 | <img src="pdf_small.svg" alt="PDF of Slope" width="450" height="300" />
95 | </a>
96 | </td>
97 | <td>
98 | <a href="regression.svg">
99 | <img src="regression_small.svg" alt="Regression" width="450" height="300" />
100 | </a>
101 | </td>
102 | </tr>
103 | </tbody>
104 | </table>
105 | </section>
106 | <section class="stats">
107 | <div class="additional_stats">
108 | <h4>Additional Statistics:</h4>
109 | <table>
110 | <thead>
111 | <tr>
112 | <th></th>
113 | <th title="0.95 confidence level" class="ci-bound">Lower bound</th>
114 | <th>Estimate</th>
115 | <th title="0.95 confidence level" class="ci-bound">Upper bound</th>
116 | </tr>
117 | </thead>
118 | <tbody>
119 | <tr>
120 | <td>Slope</td>
121 | <td class="ci-bound">32.143 µs</td>
122 | <td>32.662 µs</td>
123 | <td class="ci-bound">33.251 µs</td>
124 | </tr>
125 | <tr>
126 | <td>R²</td>
127 | <td class="ci-bound">0.5427166</td>
128 | <td>0.5577397</td>
129 | <td class="ci-bound">0.5384778</td>
130 | </tr>
131 | <tr>
132 | <td>Mean</td>
133 | <td class="ci-bound">32.957 µs</td>
134 | <td>33.393 µs</td>
135 | <td class="ci-bound">33.891 µs</td>
136 | </tr>
137 | <tr>
138 | <td title="Standard Deviation">Std. Dev.</td>
139 | <td class="ci-bound">1.6057 µs</td>
140 | <td>2.3841 µs</td>
141 | <td class="ci-bound">3.2770 µs</td>
142 | </tr>
143 | <tr>
144 | <td>Median</td>
145 | <td class="ci-bound">32.510 µs</td>
146 | <td>32.987 µs</td>
147 | <td class="ci-bound">33.427 µs</td>
148 | </tr>
149 | <tr>
150 | <td title="Median Absolute Deviation">MAD</td>
151 | <td class="ci-bound">1.1145 µs</td>
152 | <td>1.5430 µs</td>
153 | <td class="ci-bound">2.1038 µs</td>
154 | </tr>
155 | </tbody>
156 | </table>
157 | </div>
158 | <div class="additional_plots">
159 | <h4>Additional Plots:</h4>
160 | <ul>
161 |
162 | <li>
163 | <a href="typical.svg">Typical</a>
164 | </li>
165 | <li>
166 | <a href="mean.svg">Mean</a>
167 | </li>
168 | <li>
169 | <a href="SD.svg">Std. Dev.</a>
170 | </li>
171 | <li>
172 | <a href="median.svg">Median</a>
173 | </li>
174 | <li>
175 | <a href="MAD.svg">MAD</a>
176 | </li>
177 | <li>
178 | <a href="slope.svg">Slope</a>
179 | </li>
180 | </ul>
181 | </div>
182 | </section>
183 | <section class="explanation">
184 | <h4>Understanding this report:</h4>
185 | <p>The plot on the left displays the average time per iteration for this benchmark. The shaded region
186 | shows the estimated probability of an iteration taking a certain amount of time, while the line
187 | shows the mean. Click on the plot for a larger view showing the outliers.</p>
188 | <p>The plot on the right shows the linear regression calculated from the measurements. Each point
189 | represents a sample, though here it shows the total time for the sample rather than time per
190 | iteration. The line is the line of best fit for these measurements.</p>
191 | <p>See <a href="https://bheisler.github.io/criterion.rs/book/user_guide/command_line_output.html#additional-statistics">the
192 | documentation</a> for more details on the additional statistics.</p>
193 | </section>
194 | </div>
195 | <section class="plots">
196 | <h3>Change Since Previous Benchmark</h3>
197 | <div class="relative">
198 | <table width="100%">
199 | <tbody>
200 | <tr>
201 | <td>
202 | <a href="both/pdf.svg">
203 | <img src="relative_pdf_small.svg" alt="PDF Comparison" width="450"
204 | height="300" />
205 | </a>
206 | </td>
207 | <td>
208 | <a href="both/regression.svg">
209 | <img src="relative_regression_small.svg" alt="Regression Comparison" width="450"
210 | height="300" />
211 | </a>
212 | </td>
213 | </tr>
214 | </tbody>
215 | </table>
216 | </div>
217 | </section>
218 | <section class="stats">
219 | <div class="additional_stats">
220 | <h4>Additional Statistics:</h4>
221 | <table>
222 | <thead>
223 | <tr>
224 | <th></th>
225 | <th title="0.95 confidence level" class="ci-bound">Lower bound</th>
226 | <th>Estimate</th>
227 | <th title="0.95 confidence level" class="ci-bound">Upper bound</th>
228 | <th></th>
229 | </tr>
230 | </thead>
231 | <tbody>
232 | <tr>
233 | <td>Change in time</td>
234 | <td class="ci-bound">+10.423%</td>
235 | <td>+13.235%</td>
236 | <td class="ci-bound">+15.922%</td>
237 | <td>(p = 0.00 <
238 | 0.05)</td>
239 | </tr>
240 | </tbody>
241 | </table>
242 | Performance has regressed.
243 | </div>
244 | <div class="additional_plots">
245 | <h4>Additional Plots:</h4>
246 | <ul>
247 |
248 | <li>
249 | <a href="change/mean.svg">Change in mean</a>
250 | </li>
251 | <li>
252 | <a href="change/median.svg">Change in median</a>
253 | </li>
254 | <li>
255 | <a href="change/t-test.svg">T-Test</a>
256 | </li>
257 | </ul>
258 | </div>
259 | </section>
260 | <section class="explanation">
261 | <h4>Understanding this report:</h4>
262 | <p>The plot on the left shows the probability of the function taking a certain amount of time. The red
263 | curve represents the saved measurements from the last time this benchmark was run, while the blue curve
264 | shows the measurements from this run. The lines represent the mean time per iteration. Click on the
265 | plot for a larger view.</p>
266 | <p>The plot on the right shows the two regressions. Again, the red line represents the previous measurement
267 | while the blue line shows the current measurement.</p>
268 | <p>See <a href="https://bheisler.github.io/criterion.rs/book/user_guide/command_line_output.html#change">the
269 | documentation</a> for more details on the additional statistics.</p>
270 | </section>
271 | </div>
272 | <div id="footer">
273 | <p>This report was generated by
274 | <a href="https://github.com/bheisler/criterion.rs">Criterion.rs</a>, a statistics-driven benchmarking
275 | library in Rust.</p>
276 | </div>
277 | </body>
278 |
279 | </html>
```
--------------------------------------------------------------------------------
/benchmarks/block-timestamp-deadline/report/index.html:
--------------------------------------------------------------------------------
```html
1 | <!DOCTYPE html>
2 | <html>
3 |
4 | <head>
5 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
6 | <title>block-timestamp-deadline - Criterion.rs</title>
7 | <style type="text/css">
8 | body {
9 | font: 14px Helvetica Neue;
10 | text-rendering: optimizelegibility;
11 | }
12 |
13 | .body {
14 | width: 960px;
15 | margin: auto;
16 | }
17 |
18 | th {
19 | font-weight: 200
20 | }
21 |
22 | th,
23 | td {
24 | padding-right: 3px;
25 | padding-bottom: 3px;
26 | }
27 |
28 | a:link {
29 | color: #1F78B4;
30 | text-decoration: none;
31 | }
32 |
33 | th.ci-bound {
34 | opacity: 0.6
35 | }
36 |
37 | td.ci-bound {
38 | opacity: 0.5
39 | }
40 |
41 | .stats {
42 | width: 80%;
43 | margin: auto;
44 | display: flex;
45 | }
46 |
47 | .additional_stats {
48 | flex: 0 0 60%
49 | }
50 |
51 | .additional_plots {
52 | flex: 1
53 | }
54 |
55 | h2 {
56 | font-size: 36px;
57 | font-weight: 300;
58 | }
59 |
60 | h3 {
61 | font-size: 24px;
62 | font-weight: 300;
63 | }
64 |
65 | #footer {
66 | height: 40px;
67 | background: #888;
68 | color: white;
69 | font-size: larger;
70 | font-weight: 300;
71 | }
72 |
73 | #footer a {
74 | color: white;
75 | text-decoration: underline;
76 | }
77 |
78 | #footer p {
79 | text-align: center
80 | }
81 | </style>
82 | </head>
83 |
84 | <body>
85 | <div class="body">
86 | <h2>block-timestamp-deadline</h2>
87 | <div class="absolute">
88 | <section class="plots">
89 | <table width="100%">
90 | <tbody>
91 | <tr>
92 | <td>
93 | <a href="pdf.svg">
94 | <img src="pdf_small.svg" alt="PDF of Slope" width="450" height="300" />
95 | </a>
96 | </td>
97 | <td>
98 | <a href="regression.svg">
99 | <img src="regression_small.svg" alt="Regression" width="450" height="300" />
100 | </a>
101 | </td>
102 | </tr>
103 | </tbody>
104 | </table>
105 | </section>
106 | <section class="stats">
107 | <div class="additional_stats">
108 | <h4>Additional Statistics:</h4>
109 | <table>
110 | <thead>
111 | <tr>
112 | <th></th>
113 | <th title="0.95 confidence level" class="ci-bound">Lower bound</th>
114 | <th>Estimate</th>
115 | <th title="0.95 confidence level" class="ci-bound">Upper bound</th>
116 | </tr>
117 | </thead>
118 | <tbody>
119 | <tr>
120 | <td>Slope</td>
121 | <td class="ci-bound">280.65 µs</td>
122 | <td>284.32 µs</td>
123 | <td class="ci-bound">289.55 µs</td>
124 | </tr>
125 | <tr>
126 | <td>R²</td>
127 | <td class="ci-bound">0.7409228</td>
128 | <td>0.7512839</td>
129 | <td class="ci-bound">0.7306583</td>
130 | </tr>
131 | <tr>
132 | <td>Mean</td>
133 | <td class="ci-bound">279.90 µs</td>
134 | <td>282.68 µs</td>
135 | <td class="ci-bound">285.82 µs</td>
136 | </tr>
137 | <tr>
138 | <td title="Standard Deviation">Std. Dev.</td>
139 | <td class="ci-bound">10.283 µs</td>
140 | <td>15.214 µs</td>
141 | <td class="ci-bound">19.906 µs</td>
142 | </tr>
143 | <tr>
144 | <td>Median</td>
145 | <td class="ci-bound">277.53 µs</td>
146 | <td>279.19 µs</td>
147 | <td class="ci-bound">281.16 µs</td>
148 | </tr>
149 | <tr>
150 | <td title="Median Absolute Deviation">MAD</td>
151 | <td class="ci-bound">5.8799 µs</td>
152 | <td>9.4709 µs</td>
153 | <td class="ci-bound">11.738 µs</td>
154 | </tr>
155 | </tbody>
156 | </table>
157 | </div>
158 | <div class="additional_plots">
159 | <h4>Additional Plots:</h4>
160 | <ul>
161 |
162 | <li>
163 | <a href="typical.svg">Typical</a>
164 | </li>
165 | <li>
166 | <a href="mean.svg">Mean</a>
167 | </li>
168 | <li>
169 | <a href="SD.svg">Std. Dev.</a>
170 | </li>
171 | <li>
172 | <a href="median.svg">Median</a>
173 | </li>
174 | <li>
175 | <a href="MAD.svg">MAD</a>
176 | </li>
177 | <li>
178 | <a href="slope.svg">Slope</a>
179 | </li>
180 | </ul>
181 | </div>
182 | </section>
183 | <section class="explanation">
184 | <h4>Understanding this report:</h4>
185 | <p>The plot on the left displays the average time per iteration for this benchmark. The shaded region
186 | shows the estimated probability of an iteration taking a certain amount of time, while the line
187 | shows the mean. Click on the plot for a larger view showing the outliers.</p>
188 | <p>The plot on the right shows the linear regression calculated from the measurements. Each point
189 | represents a sample, though here it shows the total time for the sample rather than time per
190 | iteration. The line is the line of best fit for these measurements.</p>
191 | <p>See <a href="https://bheisler.github.io/criterion.rs/book/user_guide/command_line_output.html#additional-statistics">the
192 | documentation</a> for more details on the additional statistics.</p>
193 | </section>
194 | </div>
195 | <section class="plots">
196 | <h3>Change Since Previous Benchmark</h3>
197 | <div class="relative">
198 | <table width="100%">
199 | <tbody>
200 | <tr>
201 | <td>
202 | <a href="both/pdf.svg">
203 | <img src="relative_pdf_small.svg" alt="PDF Comparison" width="450"
204 | height="300" />
205 | </a>
206 | </td>
207 | <td>
208 | <a href="both/regression.svg">
209 | <img src="relative_regression_small.svg" alt="Regression Comparison" width="450"
210 | height="300" />
211 | </a>
212 | </td>
213 | </tr>
214 | </tbody>
215 | </table>
216 | </div>
217 | </section>
218 | <section class="stats">
219 | <div class="additional_stats">
220 | <h4>Additional Statistics:</h4>
221 | <table>
222 | <thead>
223 | <tr>
224 | <th></th>
225 | <th title="0.95 confidence level" class="ci-bound">Lower bound</th>
226 | <th>Estimate</th>
227 | <th title="0.95 confidence level" class="ci-bound">Upper bound</th>
228 | <th></th>
229 | </tr>
230 | </thead>
231 | <tbody>
232 | <tr>
233 | <td>Change in time</td>
234 | <td class="ci-bound">-8.8648%</td>
235 | <td>-7.0336%</td>
236 | <td class="ci-bound">-5.2023%</td>
237 | <td>(p = 0.00 <
238 | 0.05)</td>
239 | </tr>
240 | </tbody>
241 | </table>
242 | Performance has improved.
243 | </div>
244 | <div class="additional_plots">
245 | <h4>Additional Plots:</h4>
246 | <ul>
247 |
248 | <li>
249 | <a href="change/mean.svg">Change in mean</a>
250 | </li>
251 | <li>
252 | <a href="change/median.svg">Change in median</a>
253 | </li>
254 | <li>
255 | <a href="change/t-test.svg">T-Test</a>
256 | </li>
257 | </ul>
258 | </div>
259 | </section>
260 | <section class="explanation">
261 | <h4>Understanding this report:</h4>
262 | <p>The plot on the left shows the probability of the function taking a certain amount of time. The red
263 | curve represents the saved measurements from the last time this benchmark was run, while the blue curve
264 | shows the measurements from this run. The lines represent the mean time per iteration. Click on the
265 | plot for a larger view.</p>
266 | <p>The plot on the right shows the two regressions. Again, the red line represents the previous measurement
267 | while the blue line shows the current measurement.</p>
268 | <p>See <a href="https://bheisler.github.io/criterion.rs/book/user_guide/command_line_output.html#change">the
269 | documentation</a> for more details on the additional statistics.</p>
270 | </section>
271 | </div>
272 | <div id="footer">
273 | <p>This report was generated by
274 | <a href="https://github.com/bheisler/criterion.rs">Criterion.rs</a>, a statistics-driven benchmarking
275 | library in Rust.</p>
276 | </div>
277 | </body>
278 |
279 | </html>
```
--------------------------------------------------------------------------------
/benchmarks/solmate-safe-transfer-lib/report/index.html:
--------------------------------------------------------------------------------
```html
1 | <!DOCTYPE html>
2 | <html>
3 |
4 | <head>
5 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
6 | <title>solmate-safe-transfer-lib - Criterion.rs</title>
7 | <style type="text/css">
8 | body {
9 | font: 14px Helvetica Neue;
10 | text-rendering: optimizelegibility;
11 | }
12 |
13 | .body {
14 | width: 960px;
15 | margin: auto;
16 | }
17 |
18 | th {
19 | font-weight: 200
20 | }
21 |
22 | th,
23 | td {
24 | padding-right: 3px;
25 | padding-bottom: 3px;
26 | }
27 |
28 | a:link {
29 | color: #1F78B4;
30 | text-decoration: none;
31 | }
32 |
33 | th.ci-bound {
34 | opacity: 0.6
35 | }
36 |
37 | td.ci-bound {
38 | opacity: 0.5
39 | }
40 |
41 | .stats {
42 | width: 80%;
43 | margin: auto;
44 | display: flex;
45 | }
46 |
47 | .additional_stats {
48 | flex: 0 0 60%
49 | }
50 |
51 | .additional_plots {
52 | flex: 1
53 | }
54 |
55 | h2 {
56 | font-size: 36px;
57 | font-weight: 300;
58 | }
59 |
60 | h3 {
61 | font-size: 24px;
62 | font-weight: 300;
63 | }
64 |
65 | #footer {
66 | height: 40px;
67 | background: #888;
68 | color: white;
69 | font-size: larger;
70 | font-weight: 300;
71 | }
72 |
73 | #footer a {
74 | color: white;
75 | text-decoration: underline;
76 | }
77 |
78 | #footer p {
79 | text-align: center
80 | }
81 | </style>
82 | </head>
83 |
84 | <body>
85 | <div class="body">
86 | <h2>solmate-safe-transfer-lib</h2>
87 | <div class="absolute">
88 | <section class="plots">
89 | <table width="100%">
90 | <tbody>
91 | <tr>
92 | <td>
93 | <a href="pdf.svg">
94 | <img src="pdf_small.svg" alt="PDF of Slope" width="450" height="300" />
95 | </a>
96 | </td>
97 | <td>
98 | <a href="regression.svg">
99 | <img src="regression_small.svg" alt="Regression" width="450" height="300" />
100 | </a>
101 | </td>
102 | </tr>
103 | </tbody>
104 | </table>
105 | </section>
106 | <section class="stats">
107 | <div class="additional_stats">
108 | <h4>Additional Statistics:</h4>
109 | <table>
110 | <thead>
111 | <tr>
112 | <th></th>
113 | <th title="0.95 confidence level" class="ci-bound">Lower bound</th>
114 | <th>Estimate</th>
115 | <th title="0.95 confidence level" class="ci-bound">Upper bound</th>
116 | </tr>
117 | </thead>
118 | <tbody>
119 | <tr>
120 | <td>Slope</td>
121 | <td class="ci-bound">3.2947 µs</td>
122 | <td>3.3160 µs</td>
123 | <td class="ci-bound">3.3437 µs</td>
124 | </tr>
125 | <tr>
126 | <td>R²</td>
127 | <td class="ci-bound">0.8724106</td>
128 | <td>0.8774200</td>
129 | <td class="ci-bound">0.8690316</td>
130 | </tr>
131 | <tr>
132 | <td>Mean</td>
133 | <td class="ci-bound">3.3117 µs</td>
134 | <td>3.3383 µs</td>
135 | <td class="ci-bound">3.3712 µs</td>
136 | </tr>
137 | <tr>
138 | <td title="Standard Deviation">Std. Dev.</td>
139 | <td class="ci-bound">72.920 ns</td>
140 | <td>152.94 ns</td>
141 | <td class="ci-bound">222.07 ns</td>
142 | </tr>
143 | <tr>
144 | <td>Median</td>
145 | <td class="ci-bound">3.2974 µs</td>
146 | <td>3.3171 µs</td>
147 | <td class="ci-bound">3.3281 µs</td>
148 | </tr>
149 | <tr>
150 | <td title="Median Absolute Deviation">MAD</td>
151 | <td class="ci-bound">49.510 ns</td>
152 | <td>68.057 ns</td>
153 | <td class="ci-bound">83.616 ns</td>
154 | </tr>
155 | </tbody>
156 | </table>
157 | </div>
158 | <div class="additional_plots">
159 | <h4>Additional Plots:</h4>
160 | <ul>
161 |
162 | <li>
163 | <a href="typical.svg">Typical</a>
164 | </li>
165 | <li>
166 | <a href="mean.svg">Mean</a>
167 | </li>
168 | <li>
169 | <a href="SD.svg">Std. Dev.</a>
170 | </li>
171 | <li>
172 | <a href="median.svg">Median</a>
173 | </li>
174 | <li>
175 | <a href="MAD.svg">MAD</a>
176 | </li>
177 | <li>
178 | <a href="slope.svg">Slope</a>
179 | </li>
180 | </ul>
181 | </div>
182 | </section>
183 | <section class="explanation">
184 | <h4>Understanding this report:</h4>
185 | <p>The plot on the left displays the average time per iteration for this benchmark. The shaded region
186 | shows the estimated probability of an iteration taking a certain amount of time, while the line
187 | shows the mean. Click on the plot for a larger view showing the outliers.</p>
188 | <p>The plot on the right shows the linear regression calculated from the measurements. Each point
189 | represents a sample, though here it shows the total time for the sample rather than time per
190 | iteration. The line is the line of best fit for these measurements.</p>
191 | <p>See <a href="https://bheisler.github.io/criterion.rs/book/user_guide/command_line_output.html#additional-statistics">the
192 | documentation</a> for more details on the additional statistics.</p>
193 | </section>
194 | </div>
195 | <section class="plots">
196 | <h3>Change Since Previous Benchmark</h3>
197 | <div class="relative">
198 | <table width="100%">
199 | <tbody>
200 | <tr>
201 | <td>
202 | <a href="both/pdf.svg">
203 | <img src="relative_pdf_small.svg" alt="PDF Comparison" width="450"
204 | height="300" />
205 | </a>
206 | </td>
207 | <td>
208 | <a href="both/regression.svg">
209 | <img src="relative_regression_small.svg" alt="Regression Comparison" width="450"
210 | height="300" />
211 | </a>
212 | </td>
213 | </tr>
214 | </tbody>
215 | </table>
216 | </div>
217 | </section>
218 | <section class="stats">
219 | <div class="additional_stats">
220 | <h4>Additional Statistics:</h4>
221 | <table>
222 | <thead>
223 | <tr>
224 | <th></th>
225 | <th title="0.95 confidence level" class="ci-bound">Lower bound</th>
226 | <th>Estimate</th>
227 | <th title="0.95 confidence level" class="ci-bound">Upper bound</th>
228 | <th></th>
229 | </tr>
230 | </thead>
231 | <tbody>
232 | <tr>
233 | <td>Change in time</td>
234 | <td class="ci-bound">+2.2701%</td>
235 | <td>+3.6620%</td>
236 | <td class="ci-bound">+5.2207%</td>
237 | <td>(p = 0.00 <
238 | 0.05)</td>
239 | </tr>
240 | </tbody>
241 | </table>
242 | Performance has regressed.
243 | </div>
244 | <div class="additional_plots">
245 | <h4>Additional Plots:</h4>
246 | <ul>
247 |
248 | <li>
249 | <a href="change/mean.svg">Change in mean</a>
250 | </li>
251 | <li>
252 | <a href="change/median.svg">Change in median</a>
253 | </li>
254 | <li>
255 | <a href="change/t-test.svg">T-Test</a>
256 | </li>
257 | </ul>
258 | </div>
259 | </section>
260 | <section class="explanation">
261 | <h4>Understanding this report:</h4>
262 | <p>The plot on the left shows the probability of the function taking a certain amount of time. The red
263 | curve represents the saved measurements from the last time this benchmark was run, while the blue curve
264 | shows the measurements from this run. The lines represent the mean time per iteration. Click on the
265 | plot for a larger view.</p>
266 | <p>The plot on the right shows the two regressions. Again, the red line represents the previous measurement
267 | while the blue line shows the current measurement.</p>
268 | <p>See <a href="https://bheisler.github.io/criterion.rs/book/user_guide/command_line_output.html#change">the
269 | documentation</a> for more details on the additional statistics.</p>
270 | </section>
271 | </div>
272 | <div id="footer">
273 | <p>This report was generated by
274 | <a href="https://github.com/bheisler/criterion.rs">Criterion.rs</a>, a statistics-driven benchmarking
275 | library in Rust.</p>
276 | </div>
277 | </body>
278 |
279 | </html>
```
--------------------------------------------------------------------------------
/benchmarks/unspecific-solidity-pragma/report/index.html:
--------------------------------------------------------------------------------
```html
1 | <!DOCTYPE html>
2 | <html>
3 |
4 | <head>
5 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
6 | <title>unspecific-solidity-pragma - Criterion.rs</title>
7 | <style type="text/css">
8 | body {
9 | font: 14px Helvetica Neue;
10 | text-rendering: optimizelegibility;
11 | }
12 |
13 | .body {
14 | width: 960px;
15 | margin: auto;
16 | }
17 |
18 | th {
19 | font-weight: 200
20 | }
21 |
22 | th,
23 | td {
24 | padding-right: 3px;
25 | padding-bottom: 3px;
26 | }
27 |
28 | a:link {
29 | color: #1F78B4;
30 | text-decoration: none;
31 | }
32 |
33 | th.ci-bound {
34 | opacity: 0.6
35 | }
36 |
37 | td.ci-bound {
38 | opacity: 0.5
39 | }
40 |
41 | .stats {
42 | width: 80%;
43 | margin: auto;
44 | display: flex;
45 | }
46 |
47 | .additional_stats {
48 | flex: 0 0 60%
49 | }
50 |
51 | .additional_plots {
52 | flex: 1
53 | }
54 |
55 | h2 {
56 | font-size: 36px;
57 | font-weight: 300;
58 | }
59 |
60 | h3 {
61 | font-size: 24px;
62 | font-weight: 300;
63 | }
64 |
65 | #footer {
66 | height: 40px;
67 | background: #888;
68 | color: white;
69 | font-size: larger;
70 | font-weight: 300;
71 | }
72 |
73 | #footer a {
74 | color: white;
75 | text-decoration: underline;
76 | }
77 |
78 | #footer p {
79 | text-align: center
80 | }
81 | </style>
82 | </head>
83 |
84 | <body>
85 | <div class="body">
86 | <h2>unspecific-solidity-pragma</h2>
87 | <div class="absolute">
88 | <section class="plots">
89 | <table width="100%">
90 | <tbody>
91 | <tr>
92 | <td>
93 | <a href="pdf.svg">
94 | <img src="pdf_small.svg" alt="PDF of Slope" width="450" height="300" />
95 | </a>
96 | </td>
97 | <td>
98 | <a href="regression.svg">
99 | <img src="regression_small.svg" alt="Regression" width="450" height="300" />
100 | </a>
101 | </td>
102 | </tr>
103 | </tbody>
104 | </table>
105 | </section>
106 | <section class="stats">
107 | <div class="additional_stats">
108 | <h4>Additional Statistics:</h4>
109 | <table>
110 | <thead>
111 | <tr>
112 | <th></th>
113 | <th title="0.95 confidence level" class="ci-bound">Lower bound</th>
114 | <th>Estimate</th>
115 | <th title="0.95 confidence level" class="ci-bound">Upper bound</th>
116 | </tr>
117 | </thead>
118 | <tbody>
119 | <tr>
120 | <td>Slope</td>
121 | <td class="ci-bound">16.089 µs</td>
122 | <td>16.188 µs</td>
123 | <td class="ci-bound">16.303 µs</td>
124 | </tr>
125 | <tr>
126 | <td>R²</td>
127 | <td class="ci-bound">0.8754426</td>
128 | <td>0.8803044</td>
129 | <td class="ci-bound">0.8736857</td>
130 | </tr>
131 | <tr>
132 | <td>Mean</td>
133 | <td class="ci-bound">16.587 µs</td>
134 | <td>16.720 µs</td>
135 | <td class="ci-bound">16.857 µs</td>
136 | </tr>
137 | <tr>
138 | <td title="Standard Deviation">Std. Dev.</td>
139 | <td class="ci-bound">565.33 ns</td>
140 | <td>691.31 ns</td>
141 | <td class="ci-bound">821.30 ns</td>
142 | </tr>
143 | <tr>
144 | <td>Median</td>
145 | <td class="ci-bound">16.600 µs</td>
146 | <td>16.714 µs</td>
147 | <td class="ci-bound">17.113 µs</td>
148 | </tr>
149 | <tr>
150 | <td title="Median Absolute Deviation">MAD</td>
151 | <td class="ci-bound">541.86 ns</td>
152 | <td>708.07 ns</td>
153 | <td class="ci-bound">802.79 ns</td>
154 | </tr>
155 | </tbody>
156 | </table>
157 | </div>
158 | <div class="additional_plots">
159 | <h4>Additional Plots:</h4>
160 | <ul>
161 |
162 | <li>
163 | <a href="typical.svg">Typical</a>
164 | </li>
165 | <li>
166 | <a href="mean.svg">Mean</a>
167 | </li>
168 | <li>
169 | <a href="SD.svg">Std. Dev.</a>
170 | </li>
171 | <li>
172 | <a href="median.svg">Median</a>
173 | </li>
174 | <li>
175 | <a href="MAD.svg">MAD</a>
176 | </li>
177 | <li>
178 | <a href="slope.svg">Slope</a>
179 | </li>
180 | </ul>
181 | </div>
182 | </section>
183 | <section class="explanation">
184 | <h4>Understanding this report:</h4>
185 | <p>The plot on the left displays the average time per iteration for this benchmark. The shaded region
186 | shows the estimated probability of an iteration taking a certain amount of time, while the line
187 | shows the mean. Click on the plot for a larger view showing the outliers.</p>
188 | <p>The plot on the right shows the linear regression calculated from the measurements. Each point
189 | represents a sample, though here it shows the total time for the sample rather than time per
190 | iteration. The line is the line of best fit for these measurements.</p>
191 | <p>See <a href="https://bheisler.github.io/criterion.rs/book/user_guide/command_line_output.html#additional-statistics">the
192 | documentation</a> for more details on the additional statistics.</p>
193 | </section>
194 | </div>
195 | <section class="plots">
196 | <h3>Change Since Previous Benchmark</h3>
197 | <div class="relative">
198 | <table width="100%">
199 | <tbody>
200 | <tr>
201 | <td>
202 | <a href="both/pdf.svg">
203 | <img src="relative_pdf_small.svg" alt="PDF Comparison" width="450"
204 | height="300" />
205 | </a>
206 | </td>
207 | <td>
208 | <a href="both/regression.svg">
209 | <img src="relative_regression_small.svg" alt="Regression Comparison" width="450"
210 | height="300" />
211 | </a>
212 | </td>
213 | </tr>
214 | </tbody>
215 | </table>
216 | </div>
217 | </section>
218 | <section class="stats">
219 | <div class="additional_stats">
220 | <h4>Additional Statistics:</h4>
221 | <table>
222 | <thead>
223 | <tr>
224 | <th></th>
225 | <th title="0.95 confidence level" class="ci-bound">Lower bound</th>
226 | <th>Estimate</th>
227 | <th title="0.95 confidence level" class="ci-bound">Upper bound</th>
228 | <th></th>
229 | </tr>
230 | </thead>
231 | <tbody>
232 | <tr>
233 | <td>Change in time</td>
234 | <td class="ci-bound">-5.5345%</td>
235 | <td>-3.5263%</td>
236 | <td class="ci-bound">-1.6459%</td>
237 | <td>(p = 0.00 <
238 | 0.05)</td>
239 | </tr>
240 | </tbody>
241 | </table>
242 | Performance has improved.
243 | </div>
244 | <div class="additional_plots">
245 | <h4>Additional Plots:</h4>
246 | <ul>
247 |
248 | <li>
249 | <a href="change/mean.svg">Change in mean</a>
250 | </li>
251 | <li>
252 | <a href="change/median.svg">Change in median</a>
253 | </li>
254 | <li>
255 | <a href="change/t-test.svg">T-Test</a>
256 | </li>
257 | </ul>
258 | </div>
259 | </section>
260 | <section class="explanation">
261 | <h4>Understanding this report:</h4>
262 | <p>The plot on the left shows the probability of the function taking a certain amount of time. The red
263 | curve represents the saved measurements from the last time this benchmark was run, while the blue curve
264 | shows the measurements from this run. The lines represent the mean time per iteration. Click on the
265 | plot for a larger view.</p>
266 | <p>The plot on the right shows the two regressions. Again, the red line represents the previous measurement
267 | while the blue line shows the current measurement.</p>
268 | <p>See <a href="https://bheisler.github.io/criterion.rs/book/user_guide/command_line_output.html#change">the
269 | documentation</a> for more details on the additional statistics.</p>
270 | </section>
271 | </div>
272 | <div id="footer">
273 | <p>This report was generated by
274 | <a href="https://github.com/bheisler/criterion.rs">Criterion.rs</a>, a statistics-driven benchmarking
275 | library in Rust.</p>
276 | </div>
277 | </body>
278 |
279 | </html>
```
--------------------------------------------------------------------------------
/benchmarks/non-reentrant-before-others/report/index.html:
--------------------------------------------------------------------------------
```html
1 | <!DOCTYPE html>
2 | <html>
3 |
4 | <head>
5 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
6 | <title>non-reentrant-before-others - Criterion.rs</title>
7 | <style type="text/css">
8 | body {
9 | font: 14px Helvetica Neue;
10 | text-rendering: optimizelegibility;
11 | }
12 |
13 | .body {
14 | width: 960px;
15 | margin: auto;
16 | }
17 |
18 | th {
19 | font-weight: 200
20 | }
21 |
22 | th,
23 | td {
24 | padding-right: 3px;
25 | padding-bottom: 3px;
26 | }
27 |
28 | a:link {
29 | color: #1F78B4;
30 | text-decoration: none;
31 | }
32 |
33 | th.ci-bound {
34 | opacity: 0.6
35 | }
36 |
37 | td.ci-bound {
38 | opacity: 0.5
39 | }
40 |
41 | .stats {
42 | width: 80%;
43 | margin: auto;
44 | display: flex;
45 | }
46 |
47 | .additional_stats {
48 | flex: 0 0 60%
49 | }
50 |
51 | .additional_plots {
52 | flex: 1
53 | }
54 |
55 | h2 {
56 | font-size: 36px;
57 | font-weight: 300;
58 | }
59 |
60 | h3 {
61 | font-size: 24px;
62 | font-weight: 300;
63 | }
64 |
65 | #footer {
66 | height: 40px;
67 | background: #888;
68 | color: white;
69 | font-size: larger;
70 | font-weight: 300;
71 | }
72 |
73 | #footer a {
74 | color: white;
75 | text-decoration: underline;
76 | }
77 |
78 | #footer p {
79 | text-align: center
80 | }
81 | </style>
82 | </head>
83 |
84 | <body>
85 | <div class="body">
86 | <h2>non-reentrant-before-others</h2>
87 | <div class="absolute">
88 | <section class="plots">
89 | <table width="100%">
90 | <tbody>
91 | <tr>
92 | <td>
93 | <a href="pdf.svg">
94 | <img src="pdf_small.svg" alt="PDF of Slope" width="450" height="300" />
95 | </a>
96 | </td>
97 | <td>
98 | <a href="regression.svg">
99 | <img src="regression_small.svg" alt="Regression" width="450" height="300" />
100 | </a>
101 | </td>
102 | </tr>
103 | </tbody>
104 | </table>
105 | </section>
106 | <section class="stats">
107 | <div class="additional_stats">
108 | <h4>Additional Statistics:</h4>
109 | <table>
110 | <thead>
111 | <tr>
112 | <th></th>
113 | <th title="0.95 confidence level" class="ci-bound">Lower bound</th>
114 | <th>Estimate</th>
115 | <th title="0.95 confidence level" class="ci-bound">Upper bound</th>
116 | </tr>
117 | </thead>
118 | <tbody>
119 | <tr>
120 | <td>Slope</td>
121 | <td class="ci-bound">3.2239 µs</td>
122 | <td>3.2487 µs</td>
123 | <td class="ci-bound">3.2847 µs</td>
124 | </tr>
125 | <tr>
126 | <td>R²</td>
127 | <td class="ci-bound">0.9073847</td>
128 | <td>0.9116005</td>
129 | <td class="ci-bound">0.9027630</td>
130 | </tr>
131 | <tr>
132 | <td>Mean</td>
133 | <td class="ci-bound">3.3226 µs</td>
134 | <td>3.3518 µs</td>
135 | <td class="ci-bound">3.3829 µs</td>
136 | </tr>
137 | <tr>
138 | <td title="Standard Deviation">Std. Dev.</td>
139 | <td class="ci-bound">122.37 ns</td>
140 | <td>155.71 ns</td>
141 | <td class="ci-bound">194.62 ns</td>
142 | </tr>
143 | <tr>
144 | <td>Median</td>
145 | <td class="ci-bound">3.3258 µs</td>
146 | <td>3.3325 µs</td>
147 | <td class="ci-bound">3.3504 µs</td>
148 | </tr>
149 | <tr>
150 | <td title="Median Absolute Deviation">MAD</td>
151 | <td class="ci-bound">126.95 ns</td>
152 | <td>137.51 ns</td>
153 | <td class="ci-bound">177.52 ns</td>
154 | </tr>
155 | </tbody>
156 | </table>
157 | </div>
158 | <div class="additional_plots">
159 | <h4>Additional Plots:</h4>
160 | <ul>
161 |
162 | <li>
163 | <a href="typical.svg">Typical</a>
164 | </li>
165 | <li>
166 | <a href="mean.svg">Mean</a>
167 | </li>
168 | <li>
169 | <a href="SD.svg">Std. Dev.</a>
170 | </li>
171 | <li>
172 | <a href="median.svg">Median</a>
173 | </li>
174 | <li>
175 | <a href="MAD.svg">MAD</a>
176 | </li>
177 | <li>
178 | <a href="slope.svg">Slope</a>
179 | </li>
180 | </ul>
181 | </div>
182 | </section>
183 | <section class="explanation">
184 | <h4>Understanding this report:</h4>
185 | <p>The plot on the left displays the average time per iteration for this benchmark. The shaded region
186 | shows the estimated probability of an iteration taking a certain amount of time, while the line
187 | shows the mean. Click on the plot for a larger view showing the outliers.</p>
188 | <p>The plot on the right shows the linear regression calculated from the measurements. Each point
189 | represents a sample, though here it shows the total time for the sample rather than time per
190 | iteration. The line is the line of best fit for these measurements.</p>
191 | <p>See <a href="https://bheisler.github.io/criterion.rs/book/user_guide/command_line_output.html#additional-statistics">the
192 | documentation</a> for more details on the additional statistics.</p>
193 | </section>
194 | </div>
195 | <section class="plots">
196 | <h3>Change Since Previous Benchmark</h3>
197 | <div class="relative">
198 | <table width="100%">
199 | <tbody>
200 | <tr>
201 | <td>
202 | <a href="both/pdf.svg">
203 | <img src="relative_pdf_small.svg" alt="PDF Comparison" width="450"
204 | height="300" />
205 | </a>
206 | </td>
207 | <td>
208 | <a href="both/regression.svg">
209 | <img src="relative_regression_small.svg" alt="Regression Comparison" width="450"
210 | height="300" />
211 | </a>
212 | </td>
213 | </tr>
214 | </tbody>
215 | </table>
216 | </div>
217 | </section>
218 | <section class="stats">
219 | <div class="additional_stats">
220 | <h4>Additional Statistics:</h4>
221 | <table>
222 | <thead>
223 | <tr>
224 | <th></th>
225 | <th title="0.95 confidence level" class="ci-bound">Lower bound</th>
226 | <th>Estimate</th>
227 | <th title="0.95 confidence level" class="ci-bound">Upper bound</th>
228 | <th></th>
229 | </tr>
230 | </thead>
231 | <tbody>
232 | <tr>
233 | <td>Change in time</td>
234 | <td class="ci-bound">-19.247%</td>
235 | <td>-17.270%</td>
236 | <td class="ci-bound">-15.403%</td>
237 | <td>(p = 0.00 <
238 | 0.05)</td>
239 | </tr>
240 | </tbody>
241 | </table>
242 | Performance has improved.
243 | </div>
244 | <div class="additional_plots">
245 | <h4>Additional Plots:</h4>
246 | <ul>
247 |
248 | <li>
249 | <a href="change/mean.svg">Change in mean</a>
250 | </li>
251 | <li>
252 | <a href="change/median.svg">Change in median</a>
253 | </li>
254 | <li>
255 | <a href="change/t-test.svg">T-Test</a>
256 | </li>
257 | </ul>
258 | </div>
259 | </section>
260 | <section class="explanation">
261 | <h4>Understanding this report:</h4>
262 | <p>The plot on the left shows the probability of the function taking a certain amount of time. The red
263 | curve represents the saved measurements from the last time this benchmark was run, while the blue curve
264 | shows the measurements from this run. The lines represent the mean time per iteration. Click on the
265 | plot for a larger view.</p>
266 | <p>The plot on the right shows the two regressions. Again, the red line represents the previous measurement
267 | while the blue line shows the current measurement.</p>
268 | <p>See <a href="https://bheisler.github.io/criterion.rs/book/user_guide/command_line_output.html#change">the
269 | documentation</a> for more details on the additional statistics.</p>
270 | </section>
271 | </div>
272 | <div id="footer">
273 | <p>This report was generated by
274 | <a href="https://github.com/bheisler/criterion.rs">Criterion.rs</a>, a statistics-driven benchmarking
275 | library in Rust.</p>
276 | </div>
277 | </body>
278 |
279 | </html>
```
--------------------------------------------------------------------------------
/benchmarks/arbitrary-transfer-from/report/index.html:
--------------------------------------------------------------------------------
```html
1 | <!DOCTYPE html>
2 | <html>
3 |
4 | <head>
5 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
6 | <title>arbitrary-transfer-from - Criterion.rs</title>
7 | <style type="text/css">
8 | body {
9 | font: 14px Helvetica Neue;
10 | text-rendering: optimizelegibility;
11 | }
12 |
13 | .body {
14 | width: 960px;
15 | margin: auto;
16 | }
17 |
18 | th {
19 | font-weight: 200
20 | }
21 |
22 | th,
23 | td {
24 | padding-right: 3px;
25 | padding-bottom: 3px;
26 | }
27 |
28 | a:link {
29 | color: #1F78B4;
30 | text-decoration: none;
31 | }
32 |
33 | th.ci-bound {
34 | opacity: 0.6
35 | }
36 |
37 | td.ci-bound {
38 | opacity: 0.5
39 | }
40 |
41 | .stats {
42 | width: 80%;
43 | margin: auto;
44 | display: flex;
45 | }
46 |
47 | .additional_stats {
48 | flex: 0 0 60%
49 | }
50 |
51 | .additional_plots {
52 | flex: 1
53 | }
54 |
55 | h2 {
56 | font-size: 36px;
57 | font-weight: 300;
58 | }
59 |
60 | h3 {
61 | font-size: 24px;
62 | font-weight: 300;
63 | }
64 |
65 | #footer {
66 | height: 40px;
67 | background: #888;
68 | color: white;
69 | font-size: larger;
70 | font-weight: 300;
71 | }
72 |
73 | #footer a {
74 | color: white;
75 | text-decoration: underline;
76 | }
77 |
78 | #footer p {
79 | text-align: center
80 | }
81 | </style>
82 | </head>
83 |
84 | <body>
85 | <div class="body">
86 | <h2>arbitrary-transfer-from</h2>
87 | <div class="absolute">
88 | <section class="plots">
89 | <table width="100%">
90 | <tbody>
91 | <tr>
92 | <td>
93 | <a href="pdf.svg">
94 | <img src="pdf_small.svg" alt="PDF of Slope" width="450" height="300" />
95 | </a>
96 | </td>
97 | <td>
98 | <a href="regression.svg">
99 | <img src="regression_small.svg" alt="Regression" width="450" height="300" />
100 | </a>
101 | </td>
102 | </tr>
103 | </tbody>
104 | </table>
105 | </section>
106 | <section class="stats">
107 | <div class="additional_stats">
108 | <h4>Additional Statistics:</h4>
109 | <table>
110 | <thead>
111 | <tr>
112 | <th></th>
113 | <th title="0.95 confidence level" class="ci-bound">Lower bound</th>
114 | <th>Estimate</th>
115 | <th title="0.95 confidence level" class="ci-bound">Upper bound</th>
116 | </tr>
117 | </thead>
118 | <tbody>
119 | <tr>
120 | <td>Slope</td>
121 | <td class="ci-bound">58.348 µs</td>
122 | <td>58.901 µs</td>
123 | <td class="ci-bound">59.531 µs</td>
124 | </tr>
125 | <tr>
126 | <td>R²</td>
127 | <td class="ci-bound">0.7570048</td>
128 | <td>0.7663881</td>
129 | <td class="ci-bound">0.7542308</td>
130 | </tr>
131 | <tr>
132 | <td>Mean</td>
133 | <td class="ci-bound">60.730 µs</td>
134 | <td>61.640 µs</td>
135 | <td class="ci-bound">62.774 µs</td>
136 | </tr>
137 | <tr>
138 | <td title="Standard Deviation">Std. Dev.</td>
139 | <td class="ci-bound">2.5908 µs</td>
140 | <td>5.2918 µs</td>
141 | <td class="ci-bound">7.8922 µs</td>
142 | </tr>
143 | <tr>
144 | <td>Median</td>
145 | <td class="ci-bound">60.757 µs</td>
146 | <td>61.974 µs</td>
147 | <td class="ci-bound">62.110 µs</td>
148 | </tr>
149 | <tr>
150 | <td title="Median Absolute Deviation">MAD</td>
151 | <td class="ci-bound">1.3571 µs</td>
152 | <td>2.4173 µs</td>
153 | <td class="ci-bound">3.8194 µs</td>
154 | </tr>
155 | </tbody>
156 | </table>
157 | </div>
158 | <div class="additional_plots">
159 | <h4>Additional Plots:</h4>
160 | <ul>
161 |
162 | <li>
163 | <a href="typical.svg">Typical</a>
164 | </li>
165 | <li>
166 | <a href="mean.svg">Mean</a>
167 | </li>
168 | <li>
169 | <a href="SD.svg">Std. Dev.</a>
170 | </li>
171 | <li>
172 | <a href="median.svg">Median</a>
173 | </li>
174 | <li>
175 | <a href="MAD.svg">MAD</a>
176 | </li>
177 | <li>
178 | <a href="slope.svg">Slope</a>
179 | </li>
180 | </ul>
181 | </div>
182 | </section>
183 | <section class="explanation">
184 | <h4>Understanding this report:</h4>
185 | <p>The plot on the left displays the average time per iteration for this benchmark. The shaded region
186 | shows the estimated probability of an iteration taking a certain amount of time, while the line
187 | shows the mean. Click on the plot for a larger view showing the outliers.</p>
188 | <p>The plot on the right shows the linear regression calculated from the measurements. Each point
189 | represents a sample, though here it shows the total time for the sample rather than time per
190 | iteration. The line is the line of best fit for these measurements.</p>
191 | <p>See <a href="https://bheisler.github.io/criterion.rs/book/user_guide/command_line_output.html#additional-statistics">the
192 | documentation</a> for more details on the additional statistics.</p>
193 | </section>
194 | </div>
195 | <section class="plots">
196 | <h3>Change Since Previous Benchmark</h3>
197 | <div class="relative">
198 | <table width="100%">
199 | <tbody>
200 | <tr>
201 | <td>
202 | <a href="both/pdf.svg">
203 | <img src="relative_pdf_small.svg" alt="PDF Comparison" width="450"
204 | height="300" />
205 | </a>
206 | </td>
207 | <td>
208 | <a href="both/regression.svg">
209 | <img src="relative_regression_small.svg" alt="Regression Comparison" width="450"
210 | height="300" />
211 | </a>
212 | </td>
213 | </tr>
214 | </tbody>
215 | </table>
216 | </div>
217 | </section>
218 | <section class="stats">
219 | <div class="additional_stats">
220 | <h4>Additional Statistics:</h4>
221 | <table>
222 | <thead>
223 | <tr>
224 | <th></th>
225 | <th title="0.95 confidence level" class="ci-bound">Lower bound</th>
226 | <th>Estimate</th>
227 | <th title="0.95 confidence level" class="ci-bound">Upper bound</th>
228 | <th></th>
229 | </tr>
230 | </thead>
231 | <tbody>
232 | <tr>
233 | <td>Change in time</td>
234 | <td class="ci-bound">-6.1353%</td>
235 | <td>-2.7223%</td>
236 | <td class="ci-bound">+0.2657%</td>
237 | <td>(p = 0.11 >
238 | 0.05)</td>
239 | </tr>
240 | </tbody>
241 | </table>
242 | No change in performance detected.
243 | </div>
244 | <div class="additional_plots">
245 | <h4>Additional Plots:</h4>
246 | <ul>
247 |
248 | <li>
249 | <a href="change/mean.svg">Change in mean</a>
250 | </li>
251 | <li>
252 | <a href="change/median.svg">Change in median</a>
253 | </li>
254 | <li>
255 | <a href="change/t-test.svg">T-Test</a>
256 | </li>
257 | </ul>
258 | </div>
259 | </section>
260 | <section class="explanation">
261 | <h4>Understanding this report:</h4>
262 | <p>The plot on the left shows the probability of the function taking a certain amount of time. The red
263 | curve represents the saved measurements from the last time this benchmark was run, while the blue curve
264 | shows the measurements from this run. The lines represent the mean time per iteration. Click on the
265 | plot for a larger view.</p>
266 | <p>The plot on the right shows the two regressions. Again, the red line represents the previous measurement
267 | while the blue line shows the current measurement.</p>
268 | <p>See <a href="https://bheisler.github.io/criterion.rs/book/user_guide/command_line_output.html#change">the
269 | documentation</a> for more details on the additional statistics.</p>
270 | </section>
271 | </div>
272 | <div id="footer">
273 | <p>This report was generated by
274 | <a href="https://github.com/bheisler/criterion.rs">Criterion.rs</a>, a statistics-driven benchmarking
275 | library in Rust.</p>
276 | </div>
277 | </body>
278 |
279 | </html>
```