Runtime assertions for Ruby literal.fun
ruby
5
fork

Configure Feed

Select the types of activity you want to include in your feed.

Update the benchmark

+8 -26
+8 -26
bench.rb
··· 11 11 include Dry.Types() 12 12 end 13 13 14 - puts RUBY_DESCRIPTION 15 - 16 14 class NormalClass 17 15 def initialize(first_name:, last_name:, age:) 18 16 @first_name = first_name ··· 53 51 54 52 NormalData = Data.define(:first_name, :last_name, :age) 55 53 56 - class DryValue < Dry::Struct::Value 57 - attribute :first_name, Types::Strict::String 58 - attribute :last_name, Types::Strict::String 59 - attribute :age, Types::Strict::Integer 60 - end 61 - 62 54 class LiteralData < Literal::Data 63 55 prop :first_name, String 64 56 prop :last_name, String 65 57 prop :age, Integer 66 58 end 59 + 60 + RubyVM::YJIT.enable 67 61 68 62 Benchmark.ips do |x| 69 - x.report "Ruby Class" do 70 - NormalClass.new(first_name: "Joel", last_name: "Drapper", age: 29) 71 - end 63 + # x.report "Ruby Class" do 64 + # NormalClass.new(first_name: "Joel", last_name: "Drapper", age: 29) 65 + # end 72 66 73 67 x.report "Dry::Initializer" do 74 68 DryClass.new(first_name: "Joel", last_name: "Drapper", age: 29) ··· 82 76 end 83 77 84 78 Benchmark.ips do |x| 85 - x.report "Ruby Struct" do 86 - NormalStruct.new(first_name: "Joel", last_name: "Drapper", age: 29) 87 - end 79 + # x.report "Ruby Struct" do 80 + # NormalStruct.new(first_name: "Joel", last_name: "Drapper", age: 29) 81 + # end 88 82 89 83 x.report "Dry::Struct" do 90 84 DryStruct.new(first_name: "Joel", last_name: "Drapper", age: 29) ··· 92 86 93 87 x.report "Literal::Struct" do 94 88 LiteralStruct.new(first_name: "Joel", last_name: "Drapper", age: 29) 95 - end 96 - 97 - x.compare! 98 - end 99 - 100 - Benchmark.ips do |x| 101 - x.report "Ruby Data" do 102 - NormalData.new(first_name: "Joel", last_name: "Drapper", age: 29) 103 - end 104 - 105 - x.report "Dry::Struct::Value" do 106 - DryValue.new(first_name: "Joel", last_name: "Drapper", age: 29) 107 89 end 108 90 109 91 x.report "Literal::Data" do