|
@@ -6,7 +6,11 @@ Object subclass: #Benchfib
|
|
|
|
|
|
main
|
|
|
|
|
|
- console log: '0 tinyBenchmarks => ', 0 tinyBenchmarks
|
|
|
+ | result |
|
|
|
+ result := 0 tinyBenchmarks.
|
|
|
+ {'console.log(''0 tinyBenchmarks => '' + result);'}.
|
|
|
+ result := 0 jstinyBenchmarks.
|
|
|
+ {'console.log(''0 jstinyBenchmarks => '' + result);'}
|
|
|
! !
|
|
|
|
|
|
!Number methodsFor: '*Benchfib'!
|
|
@@ -62,6 +66,58 @@ tinyBenchmarks
|
|
|
"Note: #benchFib's runtime is about O(k^n),
|
|
|
where k is the golden number = (1 + 5 sqrt) / 2 = 1.618...."
|
|
|
|
|
|
+ ^ ((n1 * 500000 * 1000) / t1) printString, ' bytecodes/sec; ',
|
|
|
+ ((r * 1000) / t2) printString, ' sends/sec'
|
|
|
+!
|
|
|
+
|
|
|
+jsbenchFib
|
|
|
+
|
|
|
+ {'if (this < 2) {
|
|
|
+return 1;
|
|
|
+} else {
|
|
|
+return (this-1)._jsbenchFib() + (this-2)._jsbenchFib() + 1;}'}
|
|
|
+!
|
|
|
+
|
|
|
+jsbenchmark
|
|
|
+
|
|
|
+{'
|
|
|
+var size = 8190;
|
|
|
+var count;
|
|
|
+for (var z=0;z<this;z++) {
|
|
|
+ count = 0;
|
|
|
+ var flags = new Array();
|
|
|
+ for (var p=0; p<size; p++) {
|
|
|
+ flags[p] = true;
|
|
|
+ }
|
|
|
+ for (var i=1;i<=size;i++) {
|
|
|
+ if (flags[i-1]) {
|
|
|
+ var prime = i+1;
|
|
|
+ var k = i + prime;
|
|
|
+ while (k <= size) {
|
|
|
+ flags[k-1] = false;
|
|
|
+ k = k + prime;
|
|
|
+ }
|
|
|
+ count = count + 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+return count'}
|
|
|
+!
|
|
|
+
|
|
|
+jstinyBenchmarks
|
|
|
+ "0 jstinyBenchmarks"
|
|
|
+
|
|
|
+ | t1 t2 r n1 n2 |
|
|
|
+ n1 := 1.
|
|
|
+ [t1 := Date millisecondsToRun: [n1 jsbenchmark].
|
|
|
+ t1 < 1000] whileTrue:[n1 := n1 * 2]. "Note: #benchmark's runtime is about O(n)"
|
|
|
+
|
|
|
+ n2 := 28.
|
|
|
+ [t2 := Date millisecondsToRun: [r := n2 jsbenchFib].
|
|
|
+ t2 < 1000] whileTrue:[n2 := n2 + 1].
|
|
|
+ "Note: #jsbenchFib's runtime is about O(k^n),
|
|
|
+ where k is the golden number = (1 + 5 sqrt) / 2 = 1.618...."
|
|
|
+
|
|
|
^ ((n1 * 500000 * 1000) / t1) printString, ' bytecodes/sec; ',
|
|
|
((r * 1000) / t2) printString, ' sends/sec'
|
|
|
! !
|