фикс rust.rs и добавил speedtest
This commit is contained in:
4
main.rs
4
main.rs
@@ -134,7 +134,7 @@ impl Div<Complex> for f64 {
|
||||
|
||||
#[derive(Debug)]
|
||||
struct Args {
|
||||
size: u8,
|
||||
size: u32,
|
||||
depth: u8,
|
||||
g2: Complex,
|
||||
g3: Complex,
|
||||
@@ -192,7 +192,7 @@ fn main() {
|
||||
println!("{}", fractal(args.size, args.depth, args.g2, args.g3));
|
||||
}
|
||||
|
||||
fn fractal(size: u8, depth: u8, g2: Complex, g3: Complex) -> String {
|
||||
fn fractal(size: u32, depth: u8, g2: Complex, g3: Complex) -> String {
|
||||
let xi: f64 = -2.0;
|
||||
let yi: f64 = -2.0;
|
||||
let xf: f64 = 2.0;
|
||||
|
||||
100
speedtest.py
Normal file
100
speedtest.py
Normal file
@@ -0,0 +1,100 @@
|
||||
import time
|
||||
import subprocess
|
||||
|
||||
|
||||
class SpeedTest:
|
||||
def __init__(
|
||||
self,
|
||||
size: int = 128,
|
||||
depth: int = 8,
|
||||
g2: float = 1.0,
|
||||
g3: float = 0.0,
|
||||
) -> None:
|
||||
self.size = size
|
||||
self.depth = depth
|
||||
self.g2 = g2
|
||||
self.g3 = g3
|
||||
|
||||
def rust(self):
|
||||
def runner():
|
||||
cmd = [
|
||||
"./main-rs",
|
||||
"--size",
|
||||
str(self.size),
|
||||
"--depth",
|
||||
str(self.depth),
|
||||
"-g2",
|
||||
str(self.g2),
|
||||
"-g3",
|
||||
str(self.g3),
|
||||
]
|
||||
result = self._runner(cmd)
|
||||
cmd = ["rm", "main-rs"]
|
||||
self._runner(cmd)
|
||||
return result
|
||||
|
||||
cmd = ["rustc", "main.rs", "-o", "main-rs"]
|
||||
self._runner(cmd)
|
||||
return runner
|
||||
|
||||
def golang(self):
|
||||
def runner():
|
||||
cmd = [
|
||||
"./main-go",
|
||||
"--size",
|
||||
str(self.size),
|
||||
"--depth",
|
||||
str(self.depth),
|
||||
"-g2",
|
||||
str(self.g2),
|
||||
"-g3",
|
||||
str(self.g3),
|
||||
]
|
||||
result = self._runner(cmd)
|
||||
cmd = ["rm", "main-go"]
|
||||
self._runner(cmd)
|
||||
return result
|
||||
|
||||
cmd = ["go", "build", "-o", "main-go", "main.go"]
|
||||
self._runner(cmd)
|
||||
return runner
|
||||
|
||||
def python(self):
|
||||
def runner():
|
||||
cmd = [
|
||||
"python3",
|
||||
"./main.py",
|
||||
"--size",
|
||||
str(self.size),
|
||||
"--depth",
|
||||
str(self.depth),
|
||||
"-g2",
|
||||
str(self.g2),
|
||||
"-g3",
|
||||
str(self.g3),
|
||||
]
|
||||
return self._runner(cmd)
|
||||
|
||||
return runner
|
||||
|
||||
def _runner(self, cmd: list[str]):
|
||||
return subprocess.run(cmd, text=True, capture_output=True).stdout.strip()
|
||||
|
||||
|
||||
def timer(func):
|
||||
start = time.time()
|
||||
r = func()
|
||||
print(len(r))
|
||||
end = time.time()
|
||||
return end - start
|
||||
|
||||
|
||||
def main():
|
||||
speedtest = SpeedTest(1000)
|
||||
print("python", timer(speedtest.python()))
|
||||
print("golang", timer(speedtest.golang()))
|
||||
print("rust", timer(speedtest.rust()))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user