summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--benchmarks/benchmark.clj11
-rw-r--r--benchmarks/benchmark.py10
-rw-r--r--benchmarks/benchmark.rb8
3 files changed, 29 insertions, 0 deletions
diff --git a/benchmarks/benchmark.clj b/benchmarks/benchmark.clj
new file mode 100644
index 0000000..96ca968
--- /dev/null
+++ b/benchmarks/benchmark.clj
@@ -0,0 +1,11 @@
+;; Run as e.g. "bb benchmark.clj 1000"
+(ns benchmark
+ (:require [clojure.set :as set]))
+
+(def size (Integer/parseInt (first *command-line-args*)))
+
+(def set1 (set (map (fn [i] (keyword (str "x" i))) (range size))))
+(def set2 (set (map (fn [i] (keyword (str "y" i))) (range size))))
+
+(doseq [x (range 10000)]
+ (set/difference set1 set2))
diff --git a/benchmarks/benchmark.py b/benchmarks/benchmark.py
new file mode 100644
index 0000000..eae0e7c
--- /dev/null
+++ b/benchmarks/benchmark.py
@@ -0,0 +1,10 @@
+import sys
+
+size = int(sys.argv[1])
+
+myset1 = {f"x{i*1000}" for i in range(0, size)}
+myset2 = {f"x{i*1000+1}" for i in range(0, size)}
+
+res = None
+for i in range(0, 10000):
+ res = myset1 - myset2
diff --git a/benchmarks/benchmark.rb b/benchmarks/benchmark.rb
new file mode 100644
index 0000000..275b7e2
--- /dev/null
+++ b/benchmarks/benchmark.rb
@@ -0,0 +1,8 @@
+size = ARGV[0].to_i # NOTE: ARGV[0] is _not_ the program/script name....
+
+myset1 = Set.new((0..size).map {|i| "x#{i*1000}"} )
+myset2 = Set.new((0..size).map {|i| "x#{i*1000+1}"} )
+
+(0..10000).each do
+ res = myset1 - myset2
+end