From d2ad0a1175a83392710a4248dc541492ba151e61 Mon Sep 17 00:00:00 2001 From: Maxime Chevalier-Boisvert Date: Fri, 5 Feb 2021 15:07:06 -0500 Subject: Added synthetic torture test with 30K tiny methods --- misc/gen_call_test.rb | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 misc/gen_call_test.rb (limited to 'misc') diff --git a/misc/gen_call_test.rb b/misc/gen_call_test.rb new file mode 100644 index 0000000000..206beda22e --- /dev/null +++ b/misc/gen_call_test.rb @@ -0,0 +1,47 @@ +NUM_LEVELS = 30 +FNS_PER_LEVEL = 1000 + +$out = "" + +def addln(str = "") + $out << str << "\n" +end + +NUM_LEVELS.times do |l_no| + FNS_PER_LEVEL.times do |f_no| + f_name = "fun_l#{l_no}_n#{f_no}" + + if l_no < NUM_LEVELS - 1 + callee_no = rand(0...FNS_PER_LEVEL) + callee_name = "fun_l#{l_no+1}_n#{callee_no}" + else + callee_name = "inc" + end + + addln("def #{f_name}()") + addln(" #{callee_name}") + addln("end") + addln() + end +end + +addln("@a = 0") +addln("@b = 0") +addln("@c = 0") +addln("@d = 0") +addln("@count = 0") +addln("def inc()") +addln(" @count += 1") +addln("end") + +# 100K times +addln("100000.times do") + FNS_PER_LEVEL.times do |f_no| + f_name = "fun_l0_n#{f_no}" + addln(" #{f_name}") + end +addln("end") + +addln("puts @count") + +puts($out) \ No newline at end of file -- cgit v1.2.3