Skip to content

Instantly share code, notes, and snippets.

@splattael
Forked from solnic/10k_multi_thread.rb
Last active January 12, 2016 16:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save splattael/f9f05cc49565e414c79c to your computer and use it in GitHub Desktop.
Save splattael/f9f05cc49565e414c79c to your computer and use it in GitHub Desktop.
Validating 10k hashes 1 thread vs 2 (mri, jruby, rbx results)
require 'dry-validation'
require 'active_model'
require 'benchmark'
schema = Class.new(Dry::Validation::Schema) do
key(:name, &:filled?)
key(:age) { |v| v.int? & v.gt?(18) }
end.new
class User
include ActiveModel::Validations
validates :name, presence: true
validates :age, numericality: { greater_than: 18 }
attr_reader :name, :age
def initialize(attrs)
@name, @age = attrs.values_at(:name, :age)
end
end
count = 10_000
users = count.times.map { |i| { user: "User #{i}", age: 17 } }
Benchmark.bmbm do |x|
x.report('DV: 1 thread') do
users.each { |user| schema.(user).messages }
end
x.report('AM: 1 thread') do
users.each { |user| User.new(user).validate }
end
x.report('DV: 2 threads') do
g1, g2 = users.each_slice(count/2).to_a
t1 = Thread.new { g1.each { |user| schema.(user).messages } }
t2 = Thread.new { g2.each { |user| schema.(user).messages } }
t1.join
t2.join
end
x.report('AM: 2 threads') do
g1, g2 = users.each_slice(count/2).to_a
t1 = Thread.new { g1.each { |user| User.new(user).validate } }
t2 = Thread.new { g2.each { |user| User.new(user).validate } }
t1.join
t2.join
end
end
user system total real
DV: 1 thread 10.610000 0.170000 10.780000 ( 3.519302)
AM: 1 thread 18.670000 0.240000 18.910000 ( 7.975311)
DV: 2 threads 3.280000 0.050000 3.330000 ( 0.911350)
AM: 2 threads 7.950000 0.090000 8.040000 ( 3.307048)
user system total real
DV: 1 thread 0.960000 0.010000 0.970000 ( 0.977442)
AM: 1 thread 5.810000 0.040000 5.850000 ( 5.897762)
DV: 2 threads 0.990000 0.010000 1.000000 ( 1.005680)
AM: 2 threads 5.720000 0.040000 5.760000 ( 5.786890)
Display the source blob
Display the rendered blob
Raw
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.38.0 (20140413.2041)
-->
<!-- Title: profile Pages: 1 -->
<svg width="2904pt" height="1507pt"
viewBox="0.00 0.00 2904.00 1507.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1503)">
<title>profile</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-1503 2900,-1503 2900,4 -4,4"/>
<!-- 6801980 -->
<g id="node1" class="node"><title>6801980</title>
<polygon fill="none" stroke="black" stroke-width="1.3741" points="798,-656 53,-656 53,-522 798,-522 798,-656"/>
<text text-anchor="middle" x="425.5" y="-621.6" font-family="Times,serif" font-size="38.00">Dry::Validation::ErrorCompiler#visit_predicate</text>
<text text-anchor="end" x="790" y="-579.6" font-family="Times,serif" font-size="38.00">120 (21.6%)</text>
<text text-anchor="end" x="790" y="-537.6" font-family="Times,serif" font-size="38.00">of 243 (43.7%)</text>
</g>
<!-- 6802580 -->
<g id="node2" class="node"><title>6802580</title>
<polygon fill="none" stroke="black" stroke-width="5.07554" points="1145,-445 612,-445 612,-326 1145,-326 1145,-445"/>
<text text-anchor="middle" x="878.5" y="-413.773" font-family="Times,serif" font-size="34.03">Dry::Validation::ErrorCompiler#visit</text>
<text text-anchor="end" x="1137" y="-376.773" font-family="Times,serif" font-size="34.03">103 (18.5%)</text>
<text text-anchor="end" x="1137" y="-339.773" font-family="Times,serif" font-size="34.03">of 1272 (228.8%)</text>
</g>
<!-- 6801980&#45;&gt;6802580 -->
<g id="edge1" class="edge"><title>6801980&#45;&gt;6802580</title>
<path fill="none" stroke="black" stroke-width="0.654676" d="M574.143,-521.882C626.705,-498.501 685.637,-472.288 737.542,-449.2"/>
<polygon fill="black" stroke="black" stroke-width="0.654676" points="739.098,-452.338 746.813,-445.076 736.253,-445.942 739.098,-452.338"/>
<text text-anchor="middle" x="713.5" y="-479.8" font-family="Times,serif" font-size="14.00">43</text>
</g>
<!-- 3459580 -->
<g id="node3" class="node"><title>3459580</title>
<polygon fill="none" stroke="black" stroke-width="0.78777" points="593.5,-421 257.5,-421 257.5,-350 593.5,-350 593.5,-421"/>
<text text-anchor="middle" x="425.5" y="-401.533" font-family="Times,serif" font-size="19.33">Dry::Validation::Messages::Abstract#call</text>
<text text-anchor="end" x="585.5" y="-380.533" font-family="Times,serif" font-size="19.33">40 (7.2%)</text>
<text text-anchor="end" x="585.5" y="-359.533" font-family="Times,serif" font-size="19.33">of 80 (14.4%)</text>
</g>
<!-- 6801980&#45;&gt;3459580 -->
<g id="edge2" class="edge"><title>6801980&#45;&gt;3459580</title>
<path fill="none" stroke="black" stroke-width="0.78777" d="M425.5,-521.742C425.5,-492.072 425.5,-457.863 425.5,-431.274"/>
<polygon fill="black" stroke="black" stroke-width="0.78777" points="429,-431.116 425.5,-421.116 422,-431.116 429,-431.116"/>
<text text-anchor="middle" x="432.5" y="-479.8" font-family="Times,serif" font-size="14.00">80</text>
</g>
<!-- 6802580&#45;&gt;6801980 -->
<g id="edge4" class="edge"><title>6802580&#45;&gt;6801980</title>
<path fill="none" stroke="black" stroke-width="1.3741" d="M642.397,-445.139C628.021,-450.65 613.946,-456.598 600.5,-463 570.561,-477.256 540.333,-496.664 513.62,-515.935"/>
<polygon fill="black" stroke="black" stroke-width="1.3741" points="511.457,-513.181 505.446,-521.906 515.586,-518.833 511.457,-513.181"/>
<text text-anchor="middle" x="611" y="-479.8" font-family="Times,serif" font-size="14.00">243</text>
</g>
<!-- 6801620 -->
<g id="node4" class="node"><title>6801620</title>
<polygon fill="none" stroke="black" stroke-width="0.55036" points="1933.5,-243 1691.5,-243 1691.5,-205 1933.5,-205 1933.5,-243"/>
<text text-anchor="middle" x="1812.5" y="-228.387" font-family="Times,serif" font-size="13.27">Dry::Validation::ErrorCompiler#visit_gt?</text>
<text text-anchor="end" x="1925.5" y="-213.387" font-family="Times,serif" font-size="13.27">14 (2.5%)</text>
</g>
<!-- 6802580&#45;&gt;6801620 -->
<g id="edge3" class="edge"><title>6802580&#45;&gt;6801620</title>
<path fill="none" stroke="black" stroke-width="0.55036" d="M1145.34,-327.167C1148.41,-326.762 1151.46,-326.373 1154.5,-326 1267.5,-312.145 1556.96,-339.029 1666.5,-308 1708.96,-295.973 1752.24,-269.158 1780.54,-249.243"/>
<polygon fill="black" stroke="black" stroke-width="0.55036" points="1782.73,-251.978 1788.82,-243.308 1778.65,-246.288 1782.73,-251.978"/>
<text text-anchor="middle" x="1759.5" y="-283.8" font-family="Times,serif" font-size="14.00">14</text>
</g>
<!-- 6802060 -->
<g id="node5" class="node"><title>6802060</title>
<polygon fill="none" stroke="black" stroke-width="0.928058" points="1137.5,-244.5 949.5,-244.5 949.5,-203.5 1137.5,-203.5 1137.5,-244.5"/>
<text text-anchor="middle" x="1043.5" y="-232.5" font-family="Times,serif" font-size="10.00">Dry::Validation::ErrorCompiler#visit_val</text>
<text text-anchor="end" x="1129.5" y="-221.5" font-family="Times,serif" font-size="10.00">0 (0.0%)</text>
<text text-anchor="end" x="1129.5" y="-210.5" font-family="Times,serif" font-size="10.00">of 119 (21.4%)</text>
</g>
<!-- 6802580&#45;&gt;6802060 -->
<g id="edge5" class="edge"><title>6802580&#45;&gt;6802060</title>
<path fill="none" stroke="black" stroke-width="0.928058" d="M948.217,-325.986C954.83,-320.016 961.355,-313.955 967.5,-308 985.827,-290.239 1005.24,-268.993 1019.86,-252.444"/>
<polygon fill="black" stroke="black" stroke-width="0.928058" points="1022.66,-254.558 1026.62,-244.732 1017.4,-249.941 1022.66,-254.558"/>
<text text-anchor="middle" x="1016" y="-283.8" font-family="Times,serif" font-size="14.00">119</text>
</g>
<!-- 6802400 -->
<g id="node6" class="node"><title>6802400</title>
<polygon fill="none" stroke="black" stroke-width="1.57914" points="719.5,-249 481.5,-249 481.5,-199 719.5,-199 719.5,-249"/>
<text text-anchor="middle" x="600.5" y="-234.947" font-family="Times,serif" font-size="12.57">Dry::Validation::ErrorCompiler#visit_input</text>
<text text-anchor="end" x="711.5" y="-220.947" font-family="Times,serif" font-size="12.57">11 (2.0%)</text>
<text text-anchor="end" x="711.5" y="-206.947" font-family="Times,serif" font-size="12.57">of 300 (54.0%)</text>
</g>
<!-- 6802580&#45;&gt;6802400 -->
<g id="edge6" class="edge"><title>6802580&#45;&gt;6802400</title>
<path fill="none" stroke="black" stroke-width="1.57914" d="M776.167,-325.788C733.674,-301.407 686.257,-274.202 651.407,-254.207"/>
<polygon fill="black" stroke="black" stroke-width="1.57914" points="652.793,-250.968 642.377,-249.027 649.309,-257.039 652.793,-250.968"/>
<text text-anchor="middle" x="750" y="-283.8" font-family="Times,serif" font-size="14.00">300</text>
</g>
<!-- 6802480 -->
<g id="node7" class="node"><title>6802480</title>
<polygon fill="none" stroke="black" stroke-width="1.69784" points="931.5,-244.5 737.5,-244.5 737.5,-203.5 931.5,-203.5 931.5,-244.5"/>
<text text-anchor="middle" x="834.5" y="-232.5" font-family="Times,serif" font-size="10.00">Dry::Validation::ErrorCompiler#visit_error</text>
<text text-anchor="end" x="923.5" y="-221.5" font-family="Times,serif" font-size="10.00">0 (0.0%)</text>
<text text-anchor="end" x="923.5" y="-210.5" font-family="Times,serif" font-size="10.00">of 333 (59.9%)</text>
</g>
<!-- 6802580&#45;&gt;6802480 -->
<g id="edge7" class="edge"><title>6802580&#45;&gt;6802480</title>
<path fill="none" stroke="black" stroke-width="1.69784" d="M841.693,-325.591C839.214,-319.801 837.079,-313.886 835.5,-308 830.92,-290.923 830.5,-271.151 831.305,-255.19"/>
<polygon fill="black" stroke="black" stroke-width="1.69784" points="834.823,-255.045 832.022,-244.828 827.84,-254.562 834.823,-255.045"/>
<text text-anchor="middle" x="846" y="-283.8" font-family="Times,serif" font-size="14.00">333</text>
</g>
<!-- 6802140 -->
<g id="node8" class="node"><title>6802140</title>
<polygon fill="none" stroke="black" stroke-width="1.01439" points="1347,-244.5 1156,-244.5 1156,-203.5 1347,-203.5 1347,-244.5"/>
<text text-anchor="middle" x="1251.5" y="-232.5" font-family="Times,serif" font-size="10.00">Dry::Validation::ErrorCompiler#visit_key</text>
<text text-anchor="end" x="1339" y="-221.5" font-family="Times,serif" font-size="10.00">0 (0.0%)</text>
<text text-anchor="end" x="1339" y="-210.5" font-family="Times,serif" font-size="10.00">of 143 (25.7%)</text>
</g>
<!-- 6802580&#45;&gt;6802140 -->
<g id="edge8" class="edge"><title>6802580&#45;&gt;6802140</title>
<path fill="none" stroke="black" stroke-width="1.01439" d="M1015.54,-325.901C1078.14,-299.13 1148.76,-268.931 1196.29,-248.607"/>
<polygon fill="black" stroke="black" stroke-width="1.01439" points="1197.96,-251.701 1205.78,-244.551 1195.21,-245.264 1197.96,-251.701"/>
<text text-anchor="middle" x="1161" y="-283.8" font-family="Times,serif" font-size="14.00">143</text>
</g>
<!-- 6801900 -->
<g id="node9" class="node"><title>6801900</title>
<polygon fill="none" stroke="black" stroke-width="0.561151" points="1616,-243 1365,-243 1365,-205 1616,-205 1616,-243"/>
<text text-anchor="middle" x="1490.5" y="-227.827" font-family="Times,serif" font-size="13.97">Dry::Validation::ErrorCompiler#visit_key?</text>
<text text-anchor="end" x="1608" y="-212.827" font-family="Times,serif" font-size="13.97">17 (3.1%)</text>
</g>
<!-- 6802580&#45;&gt;6801900 -->
<g id="edge9" class="edge"><title>6802580&#45;&gt;6801900</title>
<path fill="none" stroke="black" stroke-width="0.561151" d="M1145.09,-327.932C1148.24,-327.283 1151.38,-326.639 1154.5,-326 1194.89,-317.725 1205.67,-318.637 1245.5,-308 1310.99,-290.511 1384.42,-264.792 1433.67,-246.627"/>
<polygon fill="black" stroke="black" stroke-width="0.561151" points="1435.02,-249.857 1443.18,-243.1 1432.59,-243.294 1435.02,-249.857"/>
<text text-anchor="middle" x="1379.5" y="-283.8" font-family="Times,serif" font-size="14.00">17</text>
</g>
<!-- 3457820 -->
<g id="node10" class="node"><title>3457820</title>
<polygon fill="none" stroke="black" stroke-width="0.586331" points="287,-245 0,-245 0,-203 287,-203 287,-245"/>
<text text-anchor="middle" x="143.5" y="-228.52" font-family="Times,serif" font-size="15.60">Dry::Validation::Messages::Abstract#cache</text>
<text text-anchor="end" x="279" y="-211.52" font-family="Times,serif" font-size="15.60">24 (4.3%)</text>
</g>
<!-- 3459580&#45;&gt;3457820 -->
<g id="edge10" class="edge"><title>3459580&#45;&gt;3457820</title>
<path fill="none" stroke="black" stroke-width="0.586331" d="M364.31,-349.891C311.199,-319.851 235.561,-277.07 188.027,-250.184"/>
<polygon fill="black" stroke="black" stroke-width="0.586331" points="189.627,-247.069 179.2,-245.192 186.181,-253.162 189.627,-247.069"/>
<text text-anchor="middle" x="291.5" y="-283.8" font-family="Times,serif" font-size="14.00">24</text>
</g>
<!-- 4491900 -->
<g id="node11" class="node"><title>4491900</title>
<polygon fill="none" stroke="black" stroke-width="0.557554" points="463.5,-244.5 305.5,-244.5 305.5,-203.5 463.5,-203.5 463.5,-244.5"/>
<text text-anchor="middle" x="384.5" y="-232.5" font-family="Times,serif" font-size="10.00">ThreadSafe::Cache#fetch_or_store</text>
<text text-anchor="end" x="455.5" y="-221.5" font-family="Times,serif" font-size="10.00">0 (0.0%)</text>
<text text-anchor="end" x="455.5" y="-210.5" font-family="Times,serif" font-size="10.00">of 16 (2.9%)</text>
</g>
<!-- 3459580&#45;&gt;4491900 -->
<g id="edge11" class="edge"><title>3459580&#45;&gt;4491900</title>
<path fill="none" stroke="black" stroke-width="0.557554" d="M416.604,-349.891C409.285,-321.419 399.024,-281.503 392.089,-254.522"/>
<polygon fill="black" stroke="black" stroke-width="0.557554" points="395.397,-253.332 389.517,-244.518 388.617,-255.074 395.397,-253.332"/>
<text text-anchor="middle" x="412.5" y="-283.8" font-family="Times,serif" font-size="14.00">16</text>
</g>
<!-- 6802060&#45;&gt;6802580 -->
<g id="edge30" class="edge"><title>6802060&#45;&gt;6802580</title>
<path fill="none" stroke="black" stroke-width="0.928058" d="M977.984,-244.602C965.268,-250.424 952.731,-257.787 942.5,-267 927.359,-280.634 915.081,-298.718 905.48,-316.603"/>
<polygon fill="black" stroke="black" stroke-width="0.928058" points="902.155,-315.418 900.703,-325.913 908.383,-318.614 902.155,-315.418"/>
<text text-anchor="middle" x="953" y="-283.8" font-family="Times,serif" font-size="14.00">119</text>
</g>
<!-- 6802280 -->
<g id="node19" class="node"><title>6802280</title>
<polygon fill="none" stroke="black" stroke-width="1.53957" points="1189,-142 956,-142 956,-101 1189,-101 1189,-142"/>
<text text-anchor="middle" x="1072.5" y="-130" font-family="Times,serif" font-size="10.00">block in Dry::Validation::ErrorCompiler#visit_input</text>
<text text-anchor="end" x="1181" y="-119" font-family="Times,serif" font-size="10.00">0 (0.0%)</text>
<text text-anchor="end" x="1181" y="-108" font-family="Times,serif" font-size="10.00">of 289 (52.0%)</text>
</g>
<!-- 6802400&#45;&gt;6802280 -->
<g id="edge14" class="edge"><title>6802400&#45;&gt;6802280</title>
<path fill="none" stroke="black" stroke-width="1.53957" d="M713.256,-198.992C791.551,-182.321 895.001,-160.294 970.775,-144.16"/>
<polygon fill="black" stroke="black" stroke-width="1.53957" points="971.757,-147.529 980.809,-142.023 970.3,-140.683 971.757,-147.529"/>
<text text-anchor="middle" x="876" y="-169.8" font-family="Times,serif" font-size="14.00">289</text>
</g>
<!-- 6802480&#45;&gt;6802580 -->
<g id="edge32" class="edge"><title>6802480&#45;&gt;6802580</title>
<path fill="none" stroke="black" stroke-width="1.69784" d="M846.276,-244.538C850.014,-251.437 853.857,-259.378 856.5,-267 861.878,-282.507 866.032,-299.647 869.206,-315.931"/>
<polygon fill="black" stroke="black" stroke-width="1.69784" points="865.797,-316.741 871.058,-325.937 872.68,-315.467 865.797,-316.741"/>
<text text-anchor="middle" x="878" y="-283.8" font-family="Times,serif" font-size="14.00">333</text>
</g>
<!-- 6802140&#45;&gt;6802580 -->
<g id="edge55" class="edge"><title>6802140&#45;&gt;6802580</title>
<path fill="none" stroke="black" stroke-width="1.01439" d="M1238.51,-244.831C1225,-263.863 1202.13,-292.008 1175.5,-308 1167.54,-312.781 1159.28,-317.265 1150.81,-321.471"/>
<polygon fill="black" stroke="black" stroke-width="1.01439" points="1149.03,-318.442 1141.54,-325.927 1152.07,-324.751 1149.03,-318.442"/>
<text text-anchor="middle" x="1231" y="-283.8" font-family="Times,serif" font-size="14.00">143</text>
</g>
<!-- 4492020 -->
<g id="node42" class="node"><title>4492020</title>
<polygon fill="none" stroke="black" stroke-width="0.557554" points="445.5,-142 323.5,-142 323.5,-101 445.5,-101 445.5,-142"/>
<text text-anchor="middle" x="384.5" y="-129.813" font-family="Times,serif" font-size="10.23">ThreadSafe::Cache#fetch</text>
<text text-anchor="end" x="437.5" y="-118.813" font-family="Times,serif" font-size="10.23">1 (0.2%)</text>
<text text-anchor="end" x="437.5" y="-107.813" font-family="Times,serif" font-size="10.23">of 16 (2.9%)</text>
</g>
<!-- 4491900&#45;&gt;4492020 -->
<g id="edge62" class="edge"><title>4491900&#45;&gt;4492020</title>
<path fill="none" stroke="black" stroke-width="0.557554" d="M384.5,-203.144C384.5,-188.691 384.5,-168.865 384.5,-152.487"/>
<polygon fill="black" stroke="black" stroke-width="0.557554" points="388,-152.314 384.5,-142.314 381,-152.314 388,-152.314"/>
<text text-anchor="middle" x="391.5" y="-169.8" font-family="Times,serif" font-size="14.00">16</text>
</g>
<!-- 4580420 -->
<g id="node12" class="node"><title>4580420</title>
<polygon fill="none" stroke="black" stroke-width="0.604317" points="2454,-44 2237,-44 2237,-0 2454,-0 2454,-44"/>
<text text-anchor="middle" x="2345.5" y="-26.5867" font-family="Times,serif" font-size="16.77">block in &lt;module:Predicates&gt;</text>
<text text-anchor="end" x="2446" y="-8.58667" font-family="Times,serif" font-size="16.77">29 (5.2%)</text>
</g>
<!-- 4653600 -->
<g id="node13" class="node"><title>4653600</title>
<polygon fill="none" stroke="black" stroke-width="0.571942" points="2896,-42 2649,-42 2649,-2 2896,-2 2896,-42"/>
<text text-anchor="middle" x="2772.5" y="-26.2667" font-family="Times,serif" font-size="14.67">Dry::Validation::Rule::Result#initialize</text>
<text text-anchor="end" x="2888" y="-10.2667" font-family="Times,serif" font-size="14.67">20 (3.6%)</text>
</g>
<!-- 6802900 -->
<g id="node14" class="node"><title>6802900</title>
<polygon fill="none" stroke="black" stroke-width="1.79856" points="1025,-760 810,-760 810,-707 1025,-707 1025,-760"/>
<text text-anchor="middle" x="917.5" y="-745.013" font-family="Times,serif" font-size="13.73">Dry::Validation::ErrorCompiler#call</text>
<text text-anchor="end" x="1017" y="-730.013" font-family="Times,serif" font-size="13.73">16 (2.9%)</text>
<text text-anchor="end" x="1017" y="-715.013" font-family="Times,serif" font-size="13.73">of 361 (64.9%)</text>
</g>
<!-- 6802800 -->
<g id="node15" class="node"><title>6802800</title>
<polygon fill="none" stroke="black" stroke-width="1.74101" points="1019,-609.5 816,-609.5 816,-568.5 1019,-568.5 1019,-609.5"/>
<text text-anchor="middle" x="917.5" y="-597.5" font-family="Times,serif" font-size="10.00">block in Dry::Validation::ErrorCompiler#call</text>
<text text-anchor="end" x="1011" y="-586.5" font-family="Times,serif" font-size="10.00">0 (0.0%)</text>
<text text-anchor="end" x="1011" y="-575.5" font-family="Times,serif" font-size="10.00">of 345 (62.1%)</text>
</g>
<!-- 6802900&#45;&gt;6802800 -->
<g id="edge12" class="edge"><title>6802900&#45;&gt;6802800</title>
<path fill="none" stroke="black" stroke-width="1.74101" d="M917.5,-706.694C917.5,-682.272 917.5,-645.624 917.5,-619.931"/>
<polygon fill="black" stroke="black" stroke-width="1.74101" points="921,-619.657 917.5,-609.657 914,-619.657 921,-619.657"/>
<text text-anchor="middle" x="928" y="-677.8" font-family="Times,serif" font-size="14.00">345</text>
</g>
<!-- 6802800&#45;&gt;6802580 -->
<g id="edge33" class="edge"><title>6802800&#45;&gt;6802580</title>
<path fill="none" stroke="black" stroke-width="1.74101" d="M913.69,-568.312C908.654,-542.294 899.52,-495.103 891.82,-455.319"/>
<polygon fill="black" stroke="black" stroke-width="1.74101" points="895.233,-454.535 889.897,-445.382 888.361,-455.865 895.233,-454.535"/>
<text text-anchor="middle" x="911" y="-479.8" font-family="Times,serif" font-size="14.00">345</text>
</g>
<!-- 5417440 -->
<g id="node16" class="node"><title>5417440</title>
<polygon fill="none" stroke="black" stroke-width="0.553957" points="553,-41 216,-41 216,-3 553,-3 553,-41"/>
<text text-anchor="middle" x="384.5" y="-26.2" font-family="Times,serif" font-size="13.50">ThreadSafe::NonConcurrentCacheBackend#get_or_default</text>
<text text-anchor="end" x="545" y="-11.2" font-family="Times,serif" font-size="13.50">15 (2.7%)</text>
</g>
<!-- 4655380 -->
<g id="node17" class="node"><title>4655380</title>
<polygon fill="none" stroke="black" stroke-width="0.622302" points="2685.5,-148 2457.5,-148 2457.5,-95 2685.5,-95 2685.5,-148"/>
<text text-anchor="middle" x="2571.5" y="-133.387" font-family="Times,serif" font-size="13.27">#&lt;Module:0x00000000a507a8&gt;.Result</text>
<text text-anchor="end" x="2677.5" y="-118.387" font-family="Times,serif" font-size="13.27">14 (2.5%)</text>
<text text-anchor="end" x="2677.5" y="-103.387" font-family="Times,serif" font-size="13.27">of 34 (6.1%)</text>
</g>
<!-- 4655380&#45;&gt;4653600 -->
<g id="edge13" class="edge"><title>4655380&#45;&gt;4653600</title>
<path fill="none" stroke="black" stroke-width="0.571942" d="M2624.31,-94.883C2655.2,-79.9015 2693.9,-61.1254 2724.01,-46.5201"/>
<polygon fill="black" stroke="black" stroke-width="0.571942" points="2725.59,-49.6437 2733.06,-42.1302 2722.54,-43.3456 2725.59,-49.6437"/>
<text text-anchor="middle" x="2696.5" y="-65.8" font-family="Times,serif" font-size="14.00">20</text>
</g>
<!-- 5021020 -->
<g id="node18" class="node"><title>5021020</title>
<polygon fill="none" stroke="black" stroke-width="0.546763" points="1874,-139.5 1679,-139.5 1679,-103.5 1874,-103.5 1874,-139.5"/>
<text text-anchor="middle" x="1776.5" y="-125.073" font-family="Times,serif" font-size="13.03">Dry::Validation::Rule::Key#type</text>
<text text-anchor="end" x="1866" y="-111.073" font-family="Times,serif" font-size="13.03">13 (2.3%)</text>
</g>
<!-- 6802280&#45;&gt;6802580 -->
<g id="edge31" class="edge"><title>6802280&#45;&gt;6802580</title>
<path fill="none" stroke="black" stroke-width="1.53957" d="M1189.28,-130.57C1343.04,-142.403 1597.29,-166.617 1625.5,-199 1640.1,-215.756 1639.17,-231.477 1625.5,-249 1562.12,-330.258 1276.33,-312.083 1155.5,-326.039"/>
<polygon fill="black" stroke="black" stroke-width="1.53957" points="1154.83,-322.595 1145.36,-327.344 1155.73,-329.538 1154.83,-322.595"/>
<text text-anchor="middle" x="1646" y="-220.3" font-family="Times,serif" font-size="14.00">289</text>
</g>
<!-- 4657740 -->
<g id="node20" class="node"><title>4657740</title>
<polygon fill="none" stroke="black" stroke-width="0.528777" points="2309.5,-242 2109.5,-242 2109.5,-206 2309.5,-206 2309.5,-242"/>
<text text-anchor="middle" x="2209.5" y="-227.507" font-family="Times,serif" font-size="11.87">Dry::Validation::Rule::Result#success?</text>
<text text-anchor="end" x="2301.5" y="-214.507" font-family="Times,serif" font-size="11.87">8 (1.4%)</text>
</g>
<!-- 4560760 -->
<g id="node21" class="node"><title>4560760</title>
<polygon fill="none" stroke="black" stroke-width="0.52518" points="2630.5,-40 2472.5,-40 2472.5,-4 2630.5,-4 2630.5,-40"/>
<text text-anchor="middle" x="2551.5" y="-25.6933" font-family="Times,serif" font-size="11.63">block in &lt;module:Predicates&gt;</text>
<text text-anchor="end" x="2622.5" y="-12.6933" font-family="Times,serif" font-size="11.63">7 (1.3%)</text>
</g>
<!-- 6803020 -->
<g id="node22" class="node"><title>6803020</title>
<polygon fill="none" stroke="black" stroke-width="0.52518" points="1419,-607 1210,-607 1210,-571 1419,-571 1419,-607"/>
<text text-anchor="middle" x="1314.5" y="-592.693" font-family="Times,serif" font-size="11.63">Dry::Validation::ErrorCompiler#initialize</text>
<text text-anchor="end" x="1411" y="-579.693" font-family="Times,serif" font-size="11.63">7 (1.3%)</text>
</g>
<!-- 5011660 -->
<g id="node23" class="node"><title>5011660</title>
<polygon fill="none" stroke="black" stroke-width="0.52518" points="2069,-139.5 1892,-139.5 1892,-103.5 2069,-103.5 2069,-139.5"/>
<text text-anchor="middle" x="1980.5" y="-125.193" font-family="Times,serif" font-size="11.63">Dry::Validation::Rule::Value#type</text>
<text text-anchor="end" x="2061" y="-112.193" font-family="Times,serif" font-size="11.63">7 (1.3%)</text>
</g>
<!-- 6834520 -->
<g id="node24" class="node"><title>6834520</title>
<polygon fill="none" stroke="black" stroke-width="0.543165" points="1745,-757 1580,-757 1580,-710 1745,-710 1745,-757"/>
<text text-anchor="middle" x="1662.5" y="-743.88" font-family="Times,serif" font-size="11.40">Dry::Validation::Result#failures</text>
<text text-anchor="end" x="1737" y="-730.88" font-family="Times,serif" font-size="11.40">6 (1.1%)</text>
<text text-anchor="end" x="1737" y="-717.88" font-family="Times,serif" font-size="11.40">of 12 (2.2%)</text>
</g>
<!-- 4644560 -->
<g id="node25" class="node"><title>4644560</title>
<polygon fill="none" stroke="black" stroke-width="0.521583" points="1919.5,-504 1743.5,-504 1743.5,-463 1919.5,-463 1919.5,-504"/>
<text text-anchor="middle" x="1831.5" y="-492" font-family="Times,serif" font-size="10.00">Dry::Validation::Rule::Result#failure?</text>
<text text-anchor="end" x="1911.5" y="-481" font-family="Times,serif" font-size="10.00">0 (0.0%)</text>
<text text-anchor="end" x="1911.5" y="-470" font-family="Times,serif" font-size="10.00">of 6 (1.1%)</text>
</g>
<!-- 6834520&#45;&gt;4644560 -->
<g id="edge15" class="edge"><title>6834520&#45;&gt;4644560</title>
<path fill="none" stroke="black" stroke-width="0.521583" d="M1667.9,-709.799C1678.85,-667.979 1707.3,-577.939 1760.5,-522 1764.85,-517.426 1769.88,-513.297 1775.22,-509.598"/>
<polygon fill="black" stroke="black" stroke-width="0.521583" points="1777.24,-512.458 1783.8,-504.138 1773.49,-506.552 1777.24,-512.458"/>
<text text-anchor="middle" x="1681" y="-677.8" font-family="Times,serif" font-size="14.00">6</text>
</g>
<!-- 4644560&#45;&gt;4657740 -->
<g id="edge46" class="edge"><title>4644560&#45;&gt;4657740</title>
<path fill="none" stroke="black" stroke-width="0.521583" d="M1848.13,-462.808C1875.88,-430.873 1934.53,-367.217 1994.5,-326 2044.37,-291.727 2107.71,-263.561 2152.69,-245.761"/>
<polygon fill="black" stroke="black" stroke-width="0.521583" points="2154.24,-248.912 2162.28,-242.012 2151.69,-242.393 2154.24,-248.912"/>
<text text-anchor="middle" x="1998" y="-381.8" font-family="Times,serif" font-size="14.00">6</text>
</g>
<!-- 6852200 -->
<g id="node26" class="node"><title>6852200</title>
<polygon fill="none" stroke="black" stroke-width="0.521583" points="2364,-751.5 2151,-751.5 2151,-715.5 2364,-715.5 2364,-751.5"/>
<text text-anchor="middle" x="2257.5" y="-737.38" font-family="Times,serif" font-size="11.40">Dry::Validation::Schema::Result#initialize</text>
<text text-anchor="end" x="2356" y="-724.38" font-family="Times,serif" font-size="11.40">6 (1.1%)</text>
</g>
<!-- 3520300 -->
<g id="node27" class="node"><title>3520300</title>
<polygon fill="none" stroke="black" stroke-width="0.521583" points="2567,-751.5 2382,-751.5 2382,-715.5 2567,-715.5 2567,-751.5"/>
<text text-anchor="middle" x="2474.5" y="-737.38" font-family="Times,serif" font-size="11.40">Dry::Validation::Error::Set#initialize</text>
<text text-anchor="end" x="2559" y="-724.38" font-family="Times,serif" font-size="11.40">6 (1.1%)</text>
</g>
<!-- 3518140 -->
<g id="node28" class="node"><title>3518140</title>
<polygon fill="none" stroke="black" stroke-width="0.521583" points="1934,-607 1769,-607 1769,-571 1934,-571 1934,-607"/>
<text text-anchor="middle" x="1851.5" y="-592.88" font-family="Times,serif" font-size="11.40">Dry::Validation::Error#initialize</text>
<text text-anchor="end" x="1926" y="-579.88" font-family="Times,serif" font-size="11.40">6 (1.1%)</text>
</g>
<!-- 4445020 -->
<g id="node29" class="node"><title>4445020</title>
<polygon fill="none" stroke="black" stroke-width="0.517986" points="2254,-139.5 2087,-139.5 2087,-103.5 2254,-103.5 2254,-139.5"/>
<text text-anchor="middle" x="2170.5" y="-124.567" font-family="Times,serif" font-size="11.17">Dry::Validation::Predicate#to_ary</text>
<text text-anchor="end" x="2246" y="-112.567" font-family="Times,serif" font-size="11.17">5 (0.9%)</text>
</g>
<!-- 6851860 -->
<g id="node30" class="node"><title>6851860</title>
<polygon fill="none" stroke="black" stroke-width="1.92806" points="1016.5,-855 818.5,-855 818.5,-811 1016.5,-811 1016.5,-855"/>
<text text-anchor="middle" x="917.5" y="-842.627" font-family="Times,serif" font-size="10.47">Dry::Validation::Schema::Result#messages</text>
<text text-anchor="end" x="1008.5" y="-830.627" font-family="Times,serif" font-size="10.47">2 (0.4%)</text>
<text text-anchor="end" x="1008.5" y="-818.627" font-family="Times,serif" font-size="10.47">of 397 (71.4%)</text>
</g>
<!-- 6851860&#45;&gt;6802900 -->
<g id="edge16" class="edge"><title>6851860&#45;&gt;6802900</title>
<path fill="none" stroke="black" stroke-width="1.79856" d="M917.5,-810.844C917.5,-798.972 917.5,-783.845 917.5,-770.193"/>
<polygon fill="black" stroke="black" stroke-width="1.79856" points="921,-770.119 917.5,-760.119 914,-770.119 921,-770.119"/>
<text text-anchor="middle" x="928" y="-781.8" font-family="Times,serif" font-size="14.00">361</text>
</g>
<!-- 3519720 -->
<g id="node31" class="node"><title>3519720</title>
<polygon fill="none" stroke="black" stroke-width="0.597122" points="1195.5,-754 1043.5,-754 1043.5,-713 1195.5,-713 1195.5,-754"/>
<text text-anchor="middle" x="1119.5" y="-742" font-family="Times,serif" font-size="10.00">Dry::Validation::Error::Set#each</text>
<text text-anchor="end" x="1187.5" y="-731" font-family="Times,serif" font-size="10.00">0 (0.0%)</text>
<text text-anchor="end" x="1187.5" y="-720" font-family="Times,serif" font-size="10.00">of 27 (4.9%)</text>
</g>
<!-- 6851860&#45;&gt;3519720 -->
<g id="edge17" class="edge"><title>6851860&#45;&gt;3519720</title>
<path fill="none" stroke="black" stroke-width="0.597122" d="M961.331,-810.844C993.256,-795.435 1036.54,-774.541 1069.76,-758.507"/>
<polygon fill="black" stroke="black" stroke-width="0.597122" points="1071.36,-761.62 1078.85,-754.122 1068.32,-755.316 1071.36,-761.62"/>
<text text-anchor="middle" x="1031.5" y="-781.8" font-family="Times,serif" font-size="14.00">27</text>
</g>
<!-- 6802660 -->
<g id="node32" class="node"><title>6802660</title>
<polygon fill="none" stroke="black" stroke-width="0.52518" points="1385,-754 1214,-754 1214,-713 1385,-713 1385,-754"/>
<text text-anchor="middle" x="1299.5" y="-742" font-family="Times,serif" font-size="10.00">Dry::Validation::ErrorCompiler#with</text>
<text text-anchor="end" x="1377" y="-731" font-family="Times,serif" font-size="10.00">0 (0.0%)</text>
<text text-anchor="end" x="1377" y="-720" font-family="Times,serif" font-size="10.00">of 7 (1.3%)</text>
</g>
<!-- 6851860&#45;&gt;6802660 -->
<g id="edge18" class="edge"><title>6851860&#45;&gt;6802660</title>
<path fill="none" stroke="black" stroke-width="0.52518" d="M1002.99,-810.943C1060.11,-796.78 1136.88,-777.556 1204.5,-760 1208.64,-758.926 1212.87,-757.818 1217.15,-756.693"/>
<polygon fill="black" stroke="black" stroke-width="0.52518" points="1218.4,-759.983 1227.18,-754.046 1216.61,-753.215 1218.4,-759.983"/>
<text text-anchor="middle" x="1137" y="-781.8" font-family="Times,serif" font-size="14.00">7</text>
</g>
<!-- 3517340 -->
<g id="node41" class="node"><title>3517340</title>
<polygon fill="none" stroke="black" stroke-width="0.597122" points="1191.5,-609.5 1047.5,-609.5 1047.5,-568.5 1191.5,-568.5 1191.5,-609.5"/>
<text text-anchor="middle" x="1119.5" y="-597.313" font-family="Times,serif" font-size="10.23">Dry::Validation::Error#to_ary</text>
<text text-anchor="end" x="1183.5" y="-586.313" font-family="Times,serif" font-size="10.23">1 (0.2%)</text>
<text text-anchor="end" x="1183.5" y="-575.313" font-family="Times,serif" font-size="10.23">of 27 (4.9%)</text>
</g>
<!-- 3519720&#45;&gt;3517340 -->
<g id="edge59" class="edge"><title>3519720&#45;&gt;3517340</title>
<path fill="none" stroke="black" stroke-width="0.597122" d="M1119.5,-712.985C1119.5,-688.923 1119.5,-647.781 1119.5,-619.768"/>
<polygon fill="black" stroke="black" stroke-width="0.597122" points="1123,-619.737 1119.5,-609.737 1116,-619.737 1123,-619.737"/>
<text text-anchor="middle" x="1126.5" y="-677.8" font-family="Times,serif" font-size="14.00">27</text>
</g>
<!-- 6802660&#45;&gt;6803020 -->
<g id="edge60" class="edge"><title>6802660&#45;&gt;6803020</title>
<path fill="none" stroke="black" stroke-width="0.52518" d="M1301.55,-712.985C1304.16,-688.221 1308.67,-645.368 1311.62,-617.352"/>
<polygon fill="black" stroke="black" stroke-width="0.52518" points="1315.14,-617.368 1312.7,-607.056 1308.18,-616.635 1315.14,-617.368"/>
<text text-anchor="middle" x="1309" y="-677.8" font-family="Times,serif" font-size="14.00">7</text>
</g>
<!-- 4558420 -->
<g id="node33" class="node"><title>4558420</title>
<polygon fill="none" stroke="black" stroke-width="0.507194" points="2218.5,-40 2076.5,-40 2076.5,-4 2218.5,-4 2218.5,-40"/>
<text text-anchor="middle" x="2147.5" y="-25.6267" font-family="Times,serif" font-size="10.47">block in &lt;module:Predicates&gt;</text>
<text text-anchor="end" x="2210.5" y="-13.6267" font-family="Times,serif" font-size="10.47">2 (0.4%)</text>
</g>
<!-- 6835460 -->
<g id="node34" class="node"><title>6835460</title>
<polygon fill="none" stroke="black" stroke-width="0.507194" points="1561.5,-751.5 1403.5,-751.5 1403.5,-715.5 1561.5,-715.5 1561.5,-751.5"/>
<text text-anchor="middle" x="1482.5" y="-737.127" font-family="Times,serif" font-size="10.47">Dry::Validation::Result#initialize</text>
<text text-anchor="end" x="1553.5" y="-725.127" font-family="Times,serif" font-size="10.47">2 (0.4%)</text>
</g>
<!-- 5555420 -->
<g id="node35" class="node"><title>5555420</title>
<polygon fill="none" stroke="black" stroke-width="2.31655" points="981,-947 854,-947 854,-906 981,-906 981,-947"/>
<text text-anchor="middle" x="917.5" y="-934.813" font-family="Times,serif" font-size="10.23">block (2 levels) in &lt;main&gt;</text>
<text text-anchor="end" x="973" y="-923.813" font-family="Times,serif" font-size="10.23">1 (0.2%)</text>
<text text-anchor="end" x="973" y="-912.813" font-family="Times,serif" font-size="10.23">of 505 (90.8%)</text>
</g>
<!-- 5555420&#45;&gt;6851860 -->
<g id="edge19" class="edge"><title>5555420&#45;&gt;6851860</title>
<path fill="none" stroke="black" stroke-width="1.92806" d="M917.5,-905.646C917.5,-893.867 917.5,-878.674 917.5,-865.312"/>
<polygon fill="black" stroke="black" stroke-width="1.92806" points="921,-865.089 917.5,-855.089 914,-865.089 921,-865.089"/>
<text text-anchor="middle" x="928" y="-876.8" font-family="Times,serif" font-size="14.00">397</text>
</g>
<!-- 5340760 -->
<g id="node36" class="node"><title>5340760</title>
<polygon fill="none" stroke="black" stroke-width="0.884892" points="1178,-853.5 1035,-853.5 1035,-812.5 1178,-812.5 1178,-853.5"/>
<text text-anchor="middle" x="1106.5" y="-841.313" font-family="Times,serif" font-size="10.23">Dry::Validation::Schema#call</text>
<text text-anchor="end" x="1170" y="-830.313" font-family="Times,serif" font-size="10.23">1 (0.2%)</text>
<text text-anchor="end" x="1170" y="-819.313" font-family="Times,serif" font-size="10.23">of 107 (19.2%)</text>
</g>
<!-- 5555420&#45;&gt;5340760 -->
<g id="edge20" class="edge"><title>5555420&#45;&gt;5340760</title>
<path fill="none" stroke="black" stroke-width="0.884892" d="M958.045,-905.871C986.945,-891.88 1025.97,-872.988 1056.75,-858.084"/>
<polygon fill="black" stroke="black" stroke-width="0.884892" points="1058.55,-861.104 1066.02,-853.597 1055.5,-854.804 1058.55,-861.104"/>
<text text-anchor="middle" x="1033" y="-876.8" font-family="Times,serif" font-size="14.00">107</text>
</g>
<!-- 5340760&#45;&gt;6834520 -->
<g id="edge22" class="edge"><title>5340760&#45;&gt;6834520</title>
<path fill="none" stroke="black" stroke-width="0.543165" d="M1178.12,-823.518C1269.67,-812.073 1432.83,-789.655 1570.5,-760 1571.57,-759.769 1572.65,-759.532 1573.74,-759.291"/>
<polygon fill="black" stroke="black" stroke-width="0.543165" points="1574.65,-762.672 1583.61,-757.007 1573.07,-755.852 1574.65,-762.672"/>
<text text-anchor="middle" x="1476.5" y="-781.8" font-family="Times,serif" font-size="14.00">12</text>
</g>
<!-- 5340760&#45;&gt;6852200 -->
<g id="edge23" class="edge"><title>5340760&#45;&gt;6852200</title>
<path fill="none" stroke="black" stroke-width="0.521583" d="M1178.02,-831.756C1347.01,-830.155 1783.74,-820.018 2142.5,-760 2153.5,-758.16 2165.03,-755.947 2176.37,-753.603"/>
<polygon fill="black" stroke="black" stroke-width="0.521583" points="2177.2,-757.005 2186.26,-751.516 2175.75,-750.156 2177.2,-757.005"/>
<text text-anchor="middle" x="2006" y="-781.8" font-family="Times,serif" font-size="14.00">6</text>
</g>
<!-- 5340760&#45;&gt;3520300 -->
<g id="edge25" class="edge"><title>5340760&#45;&gt;3520300</title>
<path fill="none" stroke="black" stroke-width="0.521583" d="M1178.29,-830.095C1331.72,-825.764 1702.92,-813.9 2013.5,-793 2173.81,-782.212 2215.13,-787.081 2373.5,-760 2383.26,-758.331 2393.46,-756.21 2403.48,-753.906"/>
<polygon fill="black" stroke="black" stroke-width="0.521583" points="2404.48,-757.265 2413.4,-751.551 2402.87,-750.454 2404.48,-757.265"/>
<text text-anchor="middle" x="2246" y="-781.8" font-family="Times,serif" font-size="14.00">6</text>
</g>
<!-- 5340760&#45;&gt;6835460 -->
<g id="edge24" class="edge"><title>5340760&#45;&gt;6835460</title>
<path fill="none" stroke="black" stroke-width="0.507194" d="M1178.3,-814.834C1236.68,-800.687 1321.1,-779.801 1394.5,-760 1401.1,-758.218 1407.97,-756.316 1414.83,-754.383"/>
<polygon fill="black" stroke="black" stroke-width="0.507194" points="1416.17,-757.64 1424.84,-751.541 1414.26,-750.907 1416.17,-757.64"/>
<text text-anchor="middle" x="1327" y="-781.8" font-family="Times,serif" font-size="14.00">2</text>
</g>
<!-- 5340460 -->
<g id="node37" class="node"><title>5340460</title>
<polygon fill="none" stroke="black" stroke-width="0.766187" points="2133.5,-754 1957.5,-754 1957.5,-713 2133.5,-713 2133.5,-754"/>
<text text-anchor="middle" x="2045.5" y="-742" font-family="Times,serif" font-size="10.00">block in Dry::Validation::Schema#call</text>
<text text-anchor="end" x="2125.5" y="-731" font-family="Times,serif" font-size="10.00">0 (0.0%)</text>
<text text-anchor="end" x="2125.5" y="-720" font-family="Times,serif" font-size="10.00">of 74 (13.3%)</text>
</g>
<!-- 5340760&#45;&gt;5340460 -->
<g id="edge21" class="edge"><title>5340760&#45;&gt;5340460</title>
<path fill="none" stroke="black" stroke-width="0.766187" d="M1178.12,-830.695C1324.2,-826.979 1666.59,-812.868 1948.5,-760 1954.26,-758.921 1960.17,-757.685 1966.11,-756.352"/>
<polygon fill="black" stroke="black" stroke-width="0.766187" points="1967.15,-759.704 1976.1,-754.028 1965.57,-752.886 1967.15,-759.704"/>
<text text-anchor="middle" x="1841.5" y="-781.8" font-family="Times,serif" font-size="14.00">74</text>
</g>
<!-- 5339700 -->
<g id="node38" class="node"><title>5339700</title>
<polygon fill="none" stroke="black" stroke-width="0.521583" points="1939.5,-754 1763.5,-754 1763.5,-713 1939.5,-713 1939.5,-754"/>
<text text-anchor="middle" x="1851.5" y="-742" font-family="Times,serif" font-size="10.00">block in Dry::Validation::Schema#call</text>
<text text-anchor="end" x="1931.5" y="-731" font-family="Times,serif" font-size="10.00">0 (0.0%)</text>
<text text-anchor="end" x="1931.5" y="-720" font-family="Times,serif" font-size="10.00">of 6 (1.1%)</text>
</g>
<!-- 5340760&#45;&gt;5339700 -->
<g id="edge26" class="edge"><title>5340760&#45;&gt;5339700</title>
<path fill="none" stroke="black" stroke-width="0.521583" d="M1178.01,-827.778C1298.02,-819.863 1547.2,-799.873 1754.5,-760 1760.2,-758.904 1766.05,-757.662 1771.93,-756.33"/>
<polygon fill="black" stroke="black" stroke-width="0.521583" points="1772.88,-759.702 1781.82,-754.013 1771.28,-752.887 1772.88,-759.702"/>
<text text-anchor="middle" x="1652" y="-781.8" font-family="Times,serif" font-size="14.00">6</text>
</g>
<!-- 4707200 -->
<g id="node51" class="node"><title>4707200</title>
<polygon fill="none" stroke="black" stroke-width="0.845324" points="2158.5,-609.5 1972.5,-609.5 1972.5,-568.5 2158.5,-568.5 2158.5,-609.5"/>
<text text-anchor="middle" x="2065.5" y="-597.5" font-family="Times,serif" font-size="10.00">Dry::Validation::Rule::Conjunction#call</text>
<text text-anchor="end" x="2150.5" y="-586.5" font-family="Times,serif" font-size="10.00">0 (0.0%)</text>
<text text-anchor="end" x="2150.5" y="-575.5" font-family="Times,serif" font-size="10.00">of 96 (17.3%)</text>
</g>
<!-- 5340460&#45;&gt;4707200 -->
<g id="edge45" class="edge"><title>5340460&#45;&gt;4707200</title>
<path fill="none" stroke="black" stroke-width="0.766187" d="M2048.24,-712.985C2051.62,-688.923 2057.39,-647.781 2061.32,-619.768"/>
<polygon fill="black" stroke="black" stroke-width="0.766187" points="2064.81,-620.126 2062.73,-609.737 2057.87,-619.153 2064.81,-620.126"/>
<text text-anchor="middle" x="2060.5" y="-677.8" font-family="Times,serif" font-size="14.00">74</text>
</g>
<!-- 5339700&#45;&gt;3518140 -->
<g id="edge61" class="edge"><title>5339700&#45;&gt;3518140</title>
<path fill="none" stroke="black" stroke-width="0.521583" d="M1851.5,-712.985C1851.5,-688.221 1851.5,-645.368 1851.5,-617.352"/>
<polygon fill="black" stroke="black" stroke-width="0.521583" points="1855,-617.056 1851.5,-607.056 1848,-617.056 1855,-617.056"/>
<text text-anchor="middle" x="1855" y="-677.8" font-family="Times,serif" font-size="14.00">6</text>
</g>
<!-- 4653720 -->
<g id="node39" class="node"><title>4653720</title>
<polygon fill="none" stroke="black" stroke-width="0.593525" points="1367.5,-406 1163.5,-406 1163.5,-365 1367.5,-365 1367.5,-406"/>
<text text-anchor="middle" x="1265.5" y="-393.813" font-family="Times,serif" font-size="10.23">Dry::Validation::Rule::Result::Value#to_ary</text>
<text text-anchor="end" x="1359.5" y="-382.813" font-family="Times,serif" font-size="10.23">1 (0.2%)</text>
<text text-anchor="end" x="1359.5" y="-371.813" font-family="Times,serif" font-size="10.23">of 26 (4.7%)</text>
</g>
<!-- 5052660 -->
<g id="node40" class="node"><title>5052660</title>
<polygon fill="none" stroke="black" stroke-width="0.589928" points="2091.5,-244.5 1951.5,-244.5 1951.5,-203.5 2091.5,-203.5 2091.5,-244.5"/>
<text text-anchor="middle" x="2021.5" y="-232.5" font-family="Times,serif" font-size="10.00">Dry::Validation::Rule#to_ary</text>
<text text-anchor="end" x="2083.5" y="-221.5" font-family="Times,serif" font-size="10.00">0 (0.0%)</text>
<text text-anchor="end" x="2083.5" y="-210.5" font-family="Times,serif" font-size="10.00">of 25 (4.5%)</text>
</g>
<!-- 4653720&#45;&gt;5052660 -->
<g id="edge27" class="edge"><title>4653720&#45;&gt;5052660</title>
<path fill="none" stroke="black" stroke-width="0.589928" d="M1367.73,-379.13C1482.23,-371.177 1672.48,-352.119 1830.5,-308 1858.01,-300.321 1924.29,-270.515 1971.03,-248.813"/>
<polygon fill="black" stroke="black" stroke-width="0.589928" points="1972.51,-251.985 1980.1,-244.59 1969.55,-245.639 1972.51,-251.985"/>
<text text-anchor="middle" x="1933.5" y="-283.8" font-family="Times,serif" font-size="14.00">25</text>
</g>
<!-- 5052660&#45;&gt;5021020 -->
<g id="edge56" class="edge"><title>5052660&#45;&gt;5021020</title>
<path fill="none" stroke="black" stroke-width="0.546763" d="M1973.68,-203.384C1931.6,-186.124 1870.52,-161.067 1827.51,-143.426"/>
<polygon fill="black" stroke="black" stroke-width="0.546763" points="1828.66,-140.115 1818.08,-139.558 1826.01,-146.591 1828.66,-140.115"/>
<text text-anchor="middle" x="1920.5" y="-169.8" font-family="Times,serif" font-size="14.00">13</text>
</g>
<!-- 5052660&#45;&gt;5011660 -->
<g id="edge57" class="edge"><title>5052660&#45;&gt;5011660</title>
<path fill="none" stroke="black" stroke-width="0.52518" d="M2013.4,-203.144C2007.08,-187.651 1998.24,-165.982 1991.31,-149.007"/>
<polygon fill="black" stroke="black" stroke-width="0.52518" points="1994.51,-147.574 1987.49,-139.637 1988.03,-150.219 1994.51,-147.574"/>
<text text-anchor="middle" x="2006" y="-169.8" font-family="Times,serif" font-size="14.00">7</text>
</g>
<!-- 5052660&#45;&gt;4445020 -->
<g id="edge58" class="edge"><title>5052660&#45;&gt;4445020</title>
<path fill="none" stroke="black" stroke-width="0.517986" d="M2050.58,-203.384C2075.24,-186.756 2110.62,-162.89 2136.56,-145.392"/>
<polygon fill="black" stroke="black" stroke-width="0.517986" points="2138.63,-148.215 2144.97,-139.721 2134.72,-142.411 2138.63,-148.215"/>
<text text-anchor="middle" x="2108" y="-169.8" font-family="Times,serif" font-size="14.00">5</text>
</g>
<!-- 3517340&#45;&gt;4653720 -->
<g id="edge28" class="edge"><title>3517340&#45;&gt;4653720</title>
<path fill="none" stroke="black" stroke-width="0.593525" d="M1133.76,-568.312C1159.82,-532.348 1215.19,-455.93 1245.18,-414.541"/>
<polygon fill="black" stroke="black" stroke-width="0.593525" points="1248.14,-416.419 1251.18,-406.267 1242.48,-412.312 1248.14,-416.419"/>
<text text-anchor="middle" x="1216.5" y="-479.8" font-family="Times,serif" font-size="14.00">26</text>
</g>
<!-- 4492020&#45;&gt;5417440 -->
<g id="edge29" class="edge"><title>4492020&#45;&gt;5417440</title>
<path fill="none" stroke="black" stroke-width="0.553957" d="M384.5,-100.769C384.5,-86.5732 384.5,-67.215 384.5,-51.364"/>
<polygon fill="black" stroke="black" stroke-width="0.553957" points="388,-51.0571 384.5,-41.0571 381,-51.0571 388,-51.0571"/>
<text text-anchor="middle" x="391.5" y="-65.8" font-family="Times,serif" font-size="14.00">15</text>
</g>
<!-- 5555500 -->
<g id="node43" class="node"><title>5555500</title>
<polygon fill="none" stroke="black" stroke-width="2.31655" points="960,-1039 875,-1039 875,-998 960,-998 960,-1039"/>
<text text-anchor="middle" x="917.5" y="-1027" font-family="Times,serif" font-size="10.00">block in &lt;main&gt;</text>
<text text-anchor="end" x="952" y="-1016" font-family="Times,serif" font-size="10.00">0 (0.0%)</text>
<text text-anchor="end" x="952" y="-1005" font-family="Times,serif" font-size="10.00">of 505 (90.8%)</text>
</g>
<!-- 5555500&#45;&gt;5555420 -->
<g id="edge34" class="edge"><title>5555500&#45;&gt;5555420</title>
<path fill="none" stroke="black" stroke-width="2.31655" d="M917.5,-997.971C917.5,-986.141 917.5,-970.809 917.5,-957.468"/>
<polygon fill="black" stroke="black" stroke-width="2.31655" points="921,-957.301 917.5,-947.301 914,-957.301 921,-957.301"/>
<text text-anchor="middle" x="928" y="-968.8" font-family="Times,serif" font-size="14.00">505</text>
</g>
<!-- 6523640 -->
<g id="node44" class="node"><title>6523640</title>
<polygon fill="none" stroke="black" stroke-width="2.31655" points="973,-1131 862,-1131 862,-1090 973,-1090 973,-1131"/>
<text text-anchor="middle" x="917.5" y="-1119" font-family="Times,serif" font-size="10.00">block in Object#Hotch</text>
<text text-anchor="end" x="965" y="-1108" font-family="Times,serif" font-size="10.00">0 (0.0%)</text>
<text text-anchor="end" x="965" y="-1097" font-family="Times,serif" font-size="10.00">of 505 (90.8%)</text>
</g>
<!-- 6523640&#45;&gt;5555500 -->
<g id="edge35" class="edge"><title>6523640&#45;&gt;5555500</title>
<path fill="none" stroke="black" stroke-width="2.31655" d="M917.5,-1089.97C917.5,-1078.14 917.5,-1062.81 917.5,-1049.47"/>
<polygon fill="black" stroke="black" stroke-width="2.31655" points="921,-1049.3 917.5,-1039.3 914,-1049.3 921,-1049.3"/>
<text text-anchor="middle" x="928" y="-1060.8" font-family="Times,serif" font-size="14.00">505</text>
</g>
<!-- 6525900 -->
<g id="node45" class="node"><title>6525900</title>
<polygon fill="none" stroke="black" stroke-width="2.31655" points="956,-1223 879,-1223 879,-1182 956,-1182 956,-1223"/>
<text text-anchor="middle" x="917.5" y="-1211" font-family="Times,serif" font-size="10.00">Hotch#run</text>
<text text-anchor="end" x="948" y="-1200" font-family="Times,serif" font-size="10.00">0 (0.0%)</text>
<text text-anchor="end" x="948" y="-1189" font-family="Times,serif" font-size="10.00">of 505 (90.8%)</text>
</g>
<!-- 6525900&#45;&gt;6523640 -->
<g id="edge36" class="edge"><title>6525900&#45;&gt;6523640</title>
<path fill="none" stroke="black" stroke-width="2.31655" d="M917.5,-1181.97C917.5,-1170.14 917.5,-1154.81 917.5,-1141.47"/>
<polygon fill="black" stroke="black" stroke-width="2.31655" points="921,-1141.3 917.5,-1131.3 914,-1141.3 921,-1141.3"/>
<text text-anchor="middle" x="928" y="-1152.8" font-family="Times,serif" font-size="14.00">505</text>
</g>
<!-- 6523840 -->
<g id="node46" class="node"><title>6523840</title>
<polygon fill="none" stroke="black" stroke-width="2.31655" points="956,-1315 879,-1315 879,-1274 956,-1274 956,-1315"/>
<text text-anchor="middle" x="917.5" y="-1303" font-family="Times,serif" font-size="10.00">Object#Hotch</text>
<text text-anchor="end" x="948" y="-1292" font-family="Times,serif" font-size="10.00">0 (0.0%)</text>
<text text-anchor="end" x="948" y="-1281" font-family="Times,serif" font-size="10.00">of 505 (90.8%)</text>
</g>
<!-- 6523840&#45;&gt;6525900 -->
<g id="edge37" class="edge"><title>6523840&#45;&gt;6525900</title>
<path fill="none" stroke="black" stroke-width="2.31655" d="M917.5,-1273.97C917.5,-1262.14 917.5,-1246.81 917.5,-1233.47"/>
<polygon fill="black" stroke="black" stroke-width="2.31655" points="921,-1233.3 917.5,-1223.3 914,-1233.3 921,-1233.3"/>
<text text-anchor="middle" x="928" y="-1244.8" font-family="Times,serif" font-size="14.00">505</text>
</g>
<!-- 5556460 -->
<g id="node47" class="node"><title>5556460</title>
<polygon fill="none" stroke="black" stroke-width="2.31655" points="956,-1407 879,-1407 879,-1366 956,-1366 956,-1407"/>
<text text-anchor="middle" x="917.5" y="-1395" font-family="Times,serif" font-size="10.00">&lt;main&gt;</text>
<text text-anchor="end" x="948" y="-1384" font-family="Times,serif" font-size="10.00">0 (0.0%)</text>
<text text-anchor="end" x="948" y="-1373" font-family="Times,serif" font-size="10.00">of 505 (90.8%)</text>
</g>
<!-- 5556460&#45;&gt;6523840 -->
<g id="edge38" class="edge"><title>5556460&#45;&gt;6523840</title>
<path fill="none" stroke="black" stroke-width="2.31655" d="M917.5,-1365.97C917.5,-1354.14 917.5,-1338.81 917.5,-1325.47"/>
<polygon fill="black" stroke="black" stroke-width="2.31655" points="921,-1325.3 917.5,-1315.3 914,-1325.3 921,-1325.3"/>
<text text-anchor="middle" x="928" y="-1336.8" font-family="Times,serif" font-size="14.00">505</text>
</g>
<!-- 3561960 -->
<g id="node48" class="node"><title>3561960</title>
<polygon fill="none" stroke="black" stroke-width="2.31655" points="956,-1499 879,-1499 879,-1458 956,-1458 956,-1499"/>
<text text-anchor="middle" x="917.5" y="-1487" font-family="Times,serif" font-size="10.00">&lt;main&gt;</text>
<text text-anchor="end" x="948" y="-1476" font-family="Times,serif" font-size="10.00">0 (0.0%)</text>
<text text-anchor="end" x="948" y="-1465" font-family="Times,serif" font-size="10.00">of 505 (90.8%)</text>
</g>
<!-- 3561960&#45;&gt;5556460 -->
<g id="edge39" class="edge"><title>3561960&#45;&gt;5556460</title>
<path fill="none" stroke="black" stroke-width="2.31655" d="M917.5,-1457.97C917.5,-1446.14 917.5,-1430.81 917.5,-1417.47"/>
<polygon fill="black" stroke="black" stroke-width="2.31655" points="921,-1417.3 917.5,-1407.3 914,-1417.3 921,-1417.3"/>
<text text-anchor="middle" x="928" y="-1428.8" font-family="Times,serif" font-size="14.00">505</text>
</g>
<!-- 5020940 -->
<g id="node49" class="node"><title>5020940</title>
<polygon fill="none" stroke="black" stroke-width="0.679856" points="2406.5,-308 2254.5,-308 2254.5,-267 2406.5,-267 2406.5,-308"/>
<text text-anchor="middle" x="2330.5" y="-296" font-family="Times,serif" font-size="10.00">Dry::Validation::Rule::Key#call</text>
<text text-anchor="end" x="2398.5" y="-285" font-family="Times,serif" font-size="10.00">0 (0.0%)</text>
<text text-anchor="end" x="2398.5" y="-274" font-family="Times,serif" font-size="10.00">of 50 (9.0%)</text>
</g>
<!-- 5020940&#45;&gt;4655380 -->
<g id="edge40" class="edge"><title>5020940&#45;&gt;4655380</title>
<path fill="none" stroke="black" stroke-width="0.57554" d="M2406.71,-282.157C2460.34,-277.489 2525.92,-267.999 2545.5,-249 2569.5,-225.707 2574.36,-186.604 2574.23,-158.028"/>
<polygon fill="black" stroke="black" stroke-width="0.57554" points="2577.73,-157.936 2573.99,-148.025 2570.74,-158.108 2577.73,-157.936"/>
<text text-anchor="middle" x="2576.5" y="-220.3" font-family="Times,serif" font-size="14.00">21</text>
</g>
<!-- 4445660 -->
<g id="node50" class="node"><title>4445660</title>
<polygon fill="none" stroke="black" stroke-width="0.636691" points="2418.5,-142 2272.5,-142 2272.5,-101 2418.5,-101 2418.5,-142"/>
<text text-anchor="middle" x="2345.5" y="-130" font-family="Times,serif" font-size="10.00">Dry::Validation::Predicate#call</text>
<text text-anchor="end" x="2410.5" y="-119" font-family="Times,serif" font-size="10.00">0 (0.0%)</text>
<text text-anchor="end" x="2410.5" y="-108" font-family="Times,serif" font-size="10.00">of 38 (6.8%)</text>
</g>
<!-- 5020940&#45;&gt;4445660 -->
<g id="edge41" class="edge"><title>5020940&#45;&gt;4445660</title>
<path fill="none" stroke="black" stroke-width="0.604317" d="M2332.31,-266.718C2334.92,-238.198 2339.75,-185.318 2342.79,-152.126"/>
<polygon fill="black" stroke="black" stroke-width="0.604317" points="2346.28,-152.374 2343.71,-142.097 2339.31,-151.737 2346.28,-152.374"/>
<text text-anchor="middle" x="2344.5" y="-220.3" font-family="Times,serif" font-size="14.00">29</text>
</g>
<!-- 4445660&#45;&gt;4580420 -->
<g id="edge47" class="edge"><title>4445660&#45;&gt;4580420</title>
<path fill="none" stroke="black" stroke-width="0.604317" d="M2345.5,-100.769C2345.5,-87.387 2345.5,-69.4175 2345.5,-54.1229"/>
<polygon fill="black" stroke="black" stroke-width="0.604317" points="2349,-54.051 2345.5,-44.051 2342,-54.051 2349,-54.051"/>
<text text-anchor="middle" x="2352.5" y="-65.8" font-family="Times,serif" font-size="14.00">29</text>
</g>
<!-- 4445660&#45;&gt;4560760 -->
<g id="edge48" class="edge"><title>4445660&#45;&gt;4560760</title>
<path fill="none" stroke="black" stroke-width="0.52518" d="M2387.19,-100.769C2421.72,-84.424 2470.72,-61.2352 2506.21,-44.4359"/>
<polygon fill="black" stroke="black" stroke-width="0.52518" points="2507.84,-47.5364 2515.38,-40.0948 2504.85,-41.2093 2507.84,-47.5364"/>
<text text-anchor="middle" x="2470" y="-65.8" font-family="Times,serif" font-size="14.00">7</text>
</g>
<!-- 4445660&#45;&gt;4558420 -->
<g id="edge49" class="edge"><title>4445660&#45;&gt;4558420</title>
<path fill="none" stroke="black" stroke-width="0.507194" d="M2305.43,-100.769C2272.38,-84.4935 2225.55,-61.4324 2191.47,-44.6507"/>
<polygon fill="black" stroke="black" stroke-width="0.507194" points="2192.73,-41.3726 2182.22,-40.0948 2189.64,-47.6525 2192.73,-41.3726"/>
<text text-anchor="middle" x="2255" y="-65.8" font-family="Times,serif" font-size="14.00">2</text>
</g>
<!-- 4707200&#45;&gt;5020940 -->
<g id="edge42" class="edge"><title>4707200&#45;&gt;5020940</title>
<path fill="none" stroke="black" stroke-width="0.679856" d="M2082.89,-568.349C2128.84,-516.413 2253.59,-375.418 2306.39,-315.753"/>
<polygon fill="black" stroke="black" stroke-width="0.679856" points="2309.04,-318.032 2313.05,-308.223 2303.8,-313.393 2309.04,-318.032"/>
<text text-anchor="middle" x="2181.5" y="-479.8" font-family="Times,serif" font-size="14.00">50</text>
</g>
<!-- 5011840 -->
<g id="node52" class="node"><title>5011840</title>
<polygon fill="none" stroke="black" stroke-width="0.579137" points="2536,-244.5 2377,-244.5 2377,-203.5 2536,-203.5 2536,-244.5"/>
<text text-anchor="middle" x="2456.5" y="-232.5" font-family="Times,serif" font-size="10.00">Dry::Validation::Rule::Value#call</text>
<text text-anchor="end" x="2528" y="-221.5" font-family="Times,serif" font-size="10.00">0 (0.0%)</text>
<text text-anchor="end" x="2528" y="-210.5" font-family="Times,serif" font-size="10.00">of 22 (4.0%)</text>
</g>
<!-- 4707200&#45;&gt;5011840 -->
<g id="edge43" class="edge"><title>4707200&#45;&gt;5011840</title>
<path fill="none" stroke="black" stroke-width="0.55036" d="M2099.92,-568.392C2168.42,-527.84 2323.15,-428.404 2415.5,-308 2428.09,-291.583 2438.39,-270.688 2445.51,-253.971"/>
<polygon fill="black" stroke="black" stroke-width="0.55036" points="2448.77,-255.256 2449.33,-244.676 2442.29,-252.594 2448.77,-255.256"/>
<text text-anchor="middle" x="2405.5" y="-381.8" font-family="Times,serif" font-size="14.00">14</text>
</g>
<!-- 4653240 -->
<g id="node53" class="node"><title>4653240</title>
<polygon fill="none" stroke="black" stroke-width="0.615108" points="2171,-406 2010,-406 2010,-365 2171,-365 2171,-406"/>
<text text-anchor="middle" x="2090.5" y="-394" font-family="Times,serif" font-size="10.00">Dry::Validation::Rule::Result#and</text>
<text text-anchor="end" x="2163" y="-383" font-family="Times,serif" font-size="10.00">0 (0.0%)</text>
<text text-anchor="end" x="2163" y="-372" font-family="Times,serif" font-size="10.00">of 32 (5.8%)</text>
</g>
<!-- 4707200&#45;&gt;4653240 -->
<g id="edge44" class="edge"><title>4707200&#45;&gt;4653240</title>
<path fill="none" stroke="black" stroke-width="0.615108" d="M2067.94,-568.312C2072.34,-532.875 2081.61,-458.159 2086.79,-416.381"/>
<polygon fill="black" stroke="black" stroke-width="0.615108" points="2090.29,-416.622 2088.05,-406.267 2083.34,-415.76 2090.29,-416.622"/>
<text text-anchor="middle" x="2087.5" y="-479.8" font-family="Times,serif" font-size="14.00">32</text>
</g>
<!-- 5011840&#45;&gt;4655380 -->
<g id="edge51" class="edge"><title>5011840&#45;&gt;4655380</title>
<path fill="none" stroke="black" stroke-width="0.546763" d="M2478.95,-203.384C2494.73,-189.589 2516.22,-170.812 2534.51,-154.823"/>
<polygon fill="black" stroke="black" stroke-width="0.546763" points="2536.91,-157.379 2542.13,-148.163 2532.3,-152.108 2536.91,-157.379"/>
<text text-anchor="middle" x="2527.5" y="-169.8" font-family="Times,serif" font-size="14.00">13</text>
</g>
<!-- 5011840&#45;&gt;4445660 -->
<g id="edge50" class="edge"><title>5011840&#45;&gt;4445660</title>
<path fill="none" stroke="black" stroke-width="0.532374" d="M2434.83,-203.384C2417.64,-187.82 2393.45,-165.916 2374.58,-148.827"/>
<polygon fill="black" stroke="black" stroke-width="0.532374" points="2376.87,-146.184 2367.11,-142.067 2372.17,-151.373 2376.87,-146.184"/>
<text text-anchor="middle" x="2411" y="-169.8" font-family="Times,serif" font-size="14.00">9</text>
</g>
<!-- 4653240&#45;&gt;4657740 -->
<g id="edge54" class="edge"><title>4653240&#45;&gt;4657740</title>
<path fill="none" stroke="black" stroke-width="0.507194" d="M2104.89,-364.896C2122.07,-341.52 2151.74,-301.299 2177.5,-267 2181.55,-261.613 2185.91,-255.857 2190.07,-250.388"/>
<polygon fill="black" stroke="black" stroke-width="0.507194" points="2193.09,-252.199 2196.37,-242.125 2187.52,-247.955 2193.09,-252.199"/>
<text text-anchor="middle" x="2181" y="-283.8" font-family="Times,serif" font-size="14.00">2</text>
</g>
<!-- 4653240&#45;&gt;4707200 -->
<g id="edge52" class="edge"><title>4653240&#45;&gt;4707200</title>
<path fill="none" stroke="black" stroke-width="0.579137" d="M2079.67,-406.259C2072.06,-421.311 2062.55,-442.816 2058.5,-463 2052.06,-495.072 2055.61,-532.636 2059.63,-558.151"/>
<polygon fill="black" stroke="black" stroke-width="0.579137" points="2056.23,-559.024 2061.36,-568.296 2063.13,-557.851 2056.23,-559.024"/>
<text text-anchor="middle" x="2065.5" y="-479.8" font-family="Times,serif" font-size="14.00">22</text>
</g>
<!-- 4653240&#45;&gt;5011840 -->
<g id="edge53" class="edge"><title>4653240&#45;&gt;5011840</title>
<path fill="none" stroke="black" stroke-width="0.528777" d="M2114.46,-364.939C2154.51,-332.32 2231.4,-270.06 2238.5,-267 2290.04,-244.78 2308.47,-260.029 2363.5,-249 2366.96,-248.307 2370.48,-247.565 2374.03,-246.787"/>
<polygon fill="black" stroke="black" stroke-width="0.528777" points="2375.1,-250.133 2384.08,-244.508 2373.55,-243.306 2375.1,-250.133"/>
<text text-anchor="middle" x="2242" y="-283.8" font-family="Times,serif" font-size="14.00">8</text>
</g>
</g>
</svg>
user system total real
DV: 1 thread 9.895571 0.119686 10.015257 ( 5.208915)
AM: 1 thread 28.932377 0.286438 29.218815 ( 15.272448)
DV: 2 threads 7.118843 0.132064 7.250907 ( 3.015258)
AM: 2 threads 20.210797 0.138119 20.348916 ( 7.273697)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment