Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Builtins] Introduce 'RuntimeScheme' #4379

Merged
merged 1 commit into from
Feb 7, 2022

Conversation

effectfully
Copy link
Contributor

This one introduces RuntimeScheme which is akin to TypeScheme except it doesn't
contain a bunch of irrelevant types stuff that we don't need during evaluation.

The RuntimeScheme introduced here is not optimal performance-wise, which is future work.

This one introduces 'RuntimeScheme' which is akin to 'TypeScheme' except it doesn't
contain a bunch of irrelevant types stuff that we don't need during evaluation.

The 'RuntimeScheme' introduced here is not optimal performance-wise, which is future work.
@effectfully
Copy link
Contributor Author

/benchmark plutus-benchmark:validation

@iohk-devops
Copy link

Comparing benchmark results of 'plutus-benchmark:validation' on '17e096548' (base) and 'b6574647b' (PR)

Script 17e0965 b657464 Change
auction_1-1 322.6 μs 313.4 μs -2.9%
auction_1-2 1.073 ms 1.063 ms -0.9%
auction_1-3 1.074 ms 1.057 ms -1.6%
auction_1-4 424.0 μs 410.0 μs -3.3%
auction_2-1 322.3 μs 314.0 μs -2.6%
auction_2-2 1.072 ms 1.057 ms -1.4%
auction_2-3 1.354 ms 1.335 ms -1.4%
auction_2-4 1.069 ms 1.054 ms -1.4%
auction_2-5 421.4 μs 410.3 μs -2.6%
crowdfunding-success-1 378.2 μs 369.7 μs -2.2%
crowdfunding-success-2 378.8 μs 369.4 μs -2.5%
crowdfunding-success-3 379.0 μs 370.0 μs -2.4%
currency-1 415.9 μs 411.2 μs -1.1%
escrow-redeem_1-1 622.2 μs 613.0 μs -1.5%
escrow-redeem_1-2 622.7 μs 612.1 μs -1.7%
escrow-redeem_2-1 660.7 μs 650.4 μs -1.6%
escrow-redeem_2-2 661.4 μs 645.2 μs -2.4%
escrow-redeem_2-3 658.8 μs 650.2 μs -1.3%
escrow-refund-1 286.3 μs 279.2 μs -2.5%
future-increase-margin-1 417.7 μs 410.9 μs -1.6%
future-increase-margin-2 938.7 μs 920.3 μs -2.0%
future-increase-margin-3 937.2 μs 922.5 μs -1.6%
future-increase-margin-4 872.8 μs 856.2 μs -1.9%
future-increase-margin-5 1.304 ms 1.286 ms -1.4%
future-pay-out-1 417.8 μs 411.5 μs -1.5%
future-pay-out-2 937.0 μs 929.2 μs -0.8%
future-pay-out-3 935.4 μs 926.9 μs -0.9%
future-pay-out-4 1.297 ms 1.287 ms -0.8%
future-settle-early-1 417.7 μs 412.5 μs -1.2%
future-settle-early-2 937.8 μs 927.4 μs -1.1%
future-settle-early-3 935.3 μs 926.4 μs -1.0%
future-settle-early-4 1.012 ms 1.000 ms -1.2%
game-sm-success_1-1 696.0 μs 685.5 μs -1.5%
game-sm-success_1-2 359.4 μs 349.5 μs -2.8%
game-sm-success_1-3 1.082 ms 1.059 ms -2.1%
game-sm-success_1-4 420.7 μs 408.2 μs -3.0%
game-sm-success_2-1 697.5 μs 685.0 μs -1.8%
game-sm-success_2-2 359.8 μs 349.8 μs -2.8%
game-sm-success_2-3 1.080 ms 1.060 ms -1.9%
game-sm-success_2-4 419.3 μs 408.3 μs -2.6%
game-sm-success_2-5 1.076 ms 1.059 ms -1.6%
game-sm-success_2-6 418.9 μs 409.2 μs -2.3%
multisig-sm-1 705.9 μs 699.9 μs -0.8%
multisig-sm-2 691.0 μs 685.0 μs -0.9%
multisig-sm-3 700.6 μs 692.2 μs -1.2%
multisig-sm-4 708.8 μs 701.0 μs -1.1%
multisig-sm-5 956.1 μs 951.8 μs -0.4%
multisig-sm-6 706.6 μs 698.7 μs -1.1%
multisig-sm-7 690.7 μs 682.1 μs -1.2%
multisig-sm-8 699.7 μs 690.3 μs -1.3%
multisig-sm-9 706.9 μs 697.9 μs -1.3%
multisig-sm-10 956.5 μs 949.0 μs -0.8%
ping-pong-1 575.9 μs 569.6 μs -1.1%
ping-pong-2 577.7 μs 569.0 μs -1.5%
ping-pong_2-1 356.8 μs 349.7 μs -2.0%
prism-1 299.2 μs 288.5 μs -3.6%
prism-2 758.9 μs 747.7 μs -1.5%
prism-3 644.1 μs 630.7 μs -2.1%
pubkey-1 256.2 μs 249.9 μs -2.5%
stablecoin_1-1 1.490 ms 1.471 ms -1.3%
stablecoin_1-2 352.0 μs 341.0 μs -3.1%
stablecoin_1-3 1.695 ms 1.667 ms -1.7%
stablecoin_1-4 371.1 μs 361.0 μs -2.7%
stablecoin_1-5 2.135 ms 2.104 ms -1.5%
stablecoin_1-6 462.1 μs 448.4 μs -3.0%
stablecoin_2-1 1.484 ms 1.465 ms -1.3%
stablecoin_2-2 350.0 μs 340.0 μs -2.9%
stablecoin_2-3 1.694 ms 1.668 ms -1.5%
stablecoin_2-4 371.5 μs 361.2 μs -2.8%
token-account-1 322.6 μs 316.7 μs -1.8%
token-account-2 576.2 μs 564.8 μs -2.0%
uniswap-1 678.3 μs 668.2 μs -1.5%
uniswap-2 387.8 μs 380.5 μs -1.9%
uniswap-3 2.720 ms 2.691 ms -1.1%
uniswap-4 611.9 μs 597.8 μs -2.3%
uniswap-5 1.927 ms 1.907 ms -1.0%
uniswap-6 583.3 μs 567.9 μs -2.6%
vesting-1 602.1 μs 590.5 μs -1.9%

@effectfully
Copy link
Contributor Author

image

Copy link
Contributor

@michaelpj michaelpj left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with your assessment 😆

@effectfully effectfully merged commit 8d24eca into master Feb 7, 2022
@effectfully effectfully deleted the effectfully/builtins/introduce-RuntimeScheme branch February 7, 2022 17:33
@kwxm
Copy link
Contributor

kwxm commented Feb 8, 2022

It's interesting to see that that makes a noticeable difference. RuntimeScheme doesn't look massively different from TypeScheme to an ignorant observer like me.

MaximilianAlgehed pushed a commit to Quviq/plutus that referenced this pull request Mar 3, 2022
This one introduces 'RuntimeScheme' which is akin to 'TypeScheme' except it doesn't
contain a bunch of irrelevant types stuff that we don't need during evaluation.

The 'RuntimeScheme' introduced here is not optimal performance-wise, which is future work.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants