Print comparable results
parent
bdf922b5c8
commit
6e6ffd8e4a
11
primes.cpp
11
primes.cpp
|
@ -61,11 +61,18 @@ void get_primes7(int n, vector<int> &res) {
|
|||
}
|
||||
|
||||
int main() {
|
||||
for (int i = 0; i < 30; i++) {
|
||||
std::time_t startTime = std::time(NULL);
|
||||
char *periodTimeStr = std::getenv("RUN_TIME");
|
||||
std::time_t periodTime = (std::time_t)(periodTimeStr ? atoi(periodTimeStr) : 3);
|
||||
int iterations = 0;
|
||||
while ((std::time(NULL) - startTime) < periodTime || iterations < 3) {
|
||||
vector<int> res;
|
||||
get_primes7(10000000, res);
|
||||
printf("Found %d prime numbers.\n", (int)res.size());
|
||||
iterations++;
|
||||
}
|
||||
|
||||
double time = (std::time(NULL) - startTime);
|
||||
printf("C++: %d iterations in %.02f seconds = %.02f seconds per 30 iterations\n",
|
||||
iterations, time, time/iterations*30);
|
||||
return 0;
|
||||
}
|
||||
|
|
15
primes.java
15
primes.java
|
@ -44,13 +44,24 @@ class PrimeNumbersGenerator {
|
|||
class PrimeNumbersBenchmarkApp {
|
||||
public static void main(String[] args) {
|
||||
long startTime = System.currentTimeMillis();
|
||||
long periodTime = Long.parseLong(System.getenv("RUN_TIME"), 10) * 1000;
|
||||
String periodTimeStr = System.getenv("RUN_TIME");
|
||||
if (periodTimeStr == null)
|
||||
periodTimeStr = "5";
|
||||
long periodTime = Long.parseLong(periodTimeStr, 10) * 1000;
|
||||
|
||||
ArrayList<Integer> res;
|
||||
|
||||
while ((System.currentTimeMillis() - startTime) < periodTime) {
|
||||
int iterations = 0;
|
||||
while ((System.currentTimeMillis() - startTime) < periodTime || iterations < 3) {
|
||||
res = (new PrimeNumbersGenerator()).get_primes7(10000000);
|
||||
System.out.format("Found %d prime numbers.\n", res.size());
|
||||
iterations++;
|
||||
}
|
||||
long time = (System.currentTimeMillis() - startTime);
|
||||
double per30 = time / 1000.0 / iterations * 30;
|
||||
System.out.println(
|
||||
"Java: "+iterations+" iterations in "+(Math.round(time/10.0)/100.0)+
|
||||
" seconds = "+(Math.round(per30*100)/100.0)+" seconds per 30 iterations"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
10
primes.js
10
primes.js
|
@ -39,9 +39,13 @@ function get_primes7(n) {
|
|||
}
|
||||
|
||||
var startTime = Date.now();
|
||||
var periodTime = parseInt(process.env.RUN_TIME, 10) * 1000
|
||||
|
||||
for (var i = 0; i < 30; i++) {
|
||||
var periodTime = parseInt(process.env.RUN_TIME || '5', 10) * 1000;
|
||||
var iterations = 0;
|
||||
while ((Date.now() - startTime) < periodTime || iterations < 3) {
|
||||
var res = get_primes7(10000000);
|
||||
console.log("Found " + res.length + " prime numbers.");
|
||||
iterations++;
|
||||
}
|
||||
var time = Date.now() - startTime;
|
||||
var per30 = time / 1000 / iterations * 30;
|
||||
console.log(iterations + " iterations in "+(Math.round(time/10)/100)+" seconds = "+(Math.round(per30*100)/100)+" seconds per 30 iterations");
|
||||
|
|
|
@ -36,9 +36,6 @@ function get_primes7(n)
|
|||
return res
|
||||
end
|
||||
|
||||
startTime = os.time(os.date("!*t"))
|
||||
periodTime = os.getenv('RUN_TIME')
|
||||
|
||||
for i = 1, 30 do
|
||||
local res = get_primes7(10000000)
|
||||
print("Found " .. #res .. " prime numbers.")
|
||||
|
|
12
primes.php
12
primes.php
|
@ -32,11 +32,19 @@ function get_primes7($n) {
|
|||
}
|
||||
|
||||
$startTime = time();
|
||||
$periodTime = getenv('RUN_TIME');
|
||||
$periodTime = getenv('RUN_TIME') ?: 5;
|
||||
|
||||
$res = array();
|
||||
|
||||
for ($i = 0; $i < 30; $i++) {
|
||||
$iterations = 0;
|
||||
$start = microtime(true);
|
||||
while ((microtime(true) - $start) < $periodTime || $iterations < 3) {
|
||||
$res = get_primes7(10000000);
|
||||
print "Found ".count($res)." prime numbers.\n";
|
||||
$iterations++;
|
||||
}
|
||||
$time = microtime(true) - $start;
|
||||
printf(
|
||||
"PHP: %d iterations in %.02f seconds = %.02f seconds per 30 iterations\n",
|
||||
$iterations, $time, $time/$iterations*30
|
||||
);
|
||||
|
|
14
primes.py
14
primes.py
|
@ -1,6 +1,7 @@
|
|||
import os
|
||||
import sys
|
||||
import time
|
||||
import platform
|
||||
|
||||
def get_primes7(n):
|
||||
"""
|
||||
|
@ -32,6 +33,17 @@ def get_primes7(n):
|
|||
m = 2 * i + 3
|
||||
return [2] + [x for x in s if x]
|
||||
|
||||
for i in range(0, 30):
|
||||
start_time = time.time()
|
||||
period_time = int(os.environ.get('RUN_TIME', '5'))
|
||||
iterations = 0
|
||||
|
||||
while (time.time() - start_time) < period_time or iterations < 3:
|
||||
res = get_primes7(10000000)
|
||||
print("Found {} prime numbers.".format(len(res)))
|
||||
iterations = iterations + 1
|
||||
|
||||
result_time = time.time() - start_time
|
||||
|
||||
print("%s %d.%d.%d: %d iterations in %.02f sec = %.02f sec per 30 iterations" % (
|
||||
platform.python_implementation(), sys.version_info.major, sys.version_info.minor, sys.version_info.micro,
|
||||
iterations, result_time, result_time/iterations*30))
|
||||
|
|
26
primes.rs
26
primes.rs
|
@ -43,19 +43,25 @@ fn get_primes7(count: u32) -> Vec<u32> {
|
|||
}
|
||||
|
||||
fn main() {
|
||||
// let run_time_secs = match env::var("RUN_TIME") {
|
||||
// Ok(v) => match v.parse::<u32>() {
|
||||
// Ok(i) => i,
|
||||
// Err(err) => panic!("RUN_TIME environment variable error: {}", err),
|
||||
// },
|
||||
// Err(err) => panic!("RUN_TIME environment variable error: {}", err),
|
||||
// };
|
||||
let run_time_secs = match env::var("RUN_TIME") {
|
||||
Ok(v) => match v.parse::<u32>() {
|
||||
Ok(i) => i,
|
||||
Err(err) => panic!("RUN_TIME environment variable error: {}", err),
|
||||
},
|
||||
Err(_err) => 5,
|
||||
};
|
||||
|
||||
// let run_time = Duration::new(run_time_secs as u64, 0);
|
||||
// let start = Instant::now();
|
||||
let run_time = Duration::new(run_time_secs as u64, 0);
|
||||
let start = Instant::now();
|
||||
|
||||
for x in 0..29 {
|
||||
let mut iterations = 3;
|
||||
while start.elapsed() < run_time || iterations < 3 {
|
||||
let primes = get_primes7(PRIMES_COUNT);
|
||||
println!("Found {} prime numbers.", primes.len());
|
||||
iterations += 1;
|
||||
}
|
||||
let dur = start.elapsed();
|
||||
let result_time = dur.as_secs() as f64 + (dur.subsec_millis() as f64) / 1000.0;
|
||||
println!("Rust: {} iterations in {:.2} sec = {:.2} sec per 30 iterations",
|
||||
iterations, result_time, result_time / (iterations as f64) * 30.0);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue