summaryrefslogtreecommitdiffstats
path: root/tcllib/modules/base64/yencode.bench
diff options
context:
space:
mode:
Diffstat (limited to 'tcllib/modules/base64/yencode.bench')
-rw-r--r--tcllib/modules/base64/yencode.bench46
1 files changed, 46 insertions, 0 deletions
diff --git a/tcllib/modules/base64/yencode.bench b/tcllib/modules/base64/yencode.bench
new file mode 100644
index 0000000..706acb5
--- /dev/null
+++ b/tcllib/modules/base64/yencode.bench
@@ -0,0 +1,46 @@
+# -*- tcl -*-
+# Tcl Benchmark File
+#
+# This file contains a number of benchmarks for the 'yencode' module.
+# This allow developers to monitor/gauge/track package performance.
+#
+# (c) 2005 Andreas Kupries <andreas_kupries@users.sourceforge.net>
+
+# We need at least version 8.2 for the package and thus the
+# benchmarks.
+
+if {![package vsatisfies [package provide Tcl] 8.2]} {
+ return
+}
+
+# ### ### ### ######### ######### ######### ###########################
+## Setting up the environment ...
+
+package forget yencode
+catch {namespace delete ::yencode}
+source [file join [file dirname [info script]] yencode.tcl]
+
+# ### ### ### ######### ######### ######### ###########################
+## Benchmarks.
+
+
+foreach n {10 100 1000 10000} {
+ bench -desc "YENCODE encode ${n}X" -pre {
+ set str [string repeat X $n]
+ } -body {
+ yencode::encode $str
+ } -post {
+ unset str
+ }
+
+ bench -desc "YENCODE decode ${n}X" -pre {
+ set str [yencode::encode [string repeat X $n]]
+ } -body {
+ yencode::decode $str
+ } -post {
+ unset str
+ }
+}
+
+# ### ### ### ######### ######### ######### ###########################
+## Complete