performance measurements

Each table row shows performance measurements for this Graal program with a particular command-line input value N.

 N  CPU secs Elapsed secs Memory KB Code B ≈ CPU Load
1211.49166.45643,496367  32% 24% 61% 21%

Read the ↓ make, command line, and program output logs to see how this program was run.

Read iobench benchmark to see what this program should do.

 notes

 iobench Graal program source code

import os, time

def measure(func, repetitions, size):
    t0 = time.time()
    func(repetitions, size)
    print(
        func,
        "%d bytes, %.2fus per write" % (
            size,
            (time.time() - t0) / repetitions * 1000 * 1000
        )
    )

def fwrite(repetitions, size):
    fd = os.open("/dev/null", os.O_WRONLY)
    for i in range(repetitions):
        os.write(fd, b" " * size)

def fread(repetitions, size):
    fd = os.open("/dev/full", os.O_RDONLY)
    for i in range(repetitions):
        os.read(fd, size)

def file_write(repetitions, size):
    f = open("/dev/null", "w")
    for i in range(repetitions):
        f.write(" " * size)
    f.flush()

def file_read(repetitions, size):
    f = open("/dev/full")
    for i in range(repetitions):
        f.read(size)

if __name__ == '__main__':
    measure(fread, 1000000, 100)
    measure(fwrite, 1000000, 100)
    measure(fread, 1000000, 1000)
    measure(fwrite, 1000000, 1000)
    measure(fread, 100000, 10000)
    measure(fwrite, 100000, 10000)
    measure(file_read, 1000000, 100)
    measure(file_write, 1000000, 100)
    measure(file_read, 1000000, 1000)
    measure(file_write, 1000000, 1000)
    measure(file_read, 100000, 10000)
    measure(file_write, 100000, 10000)

 make, command-line, and program output logs

Wed, 11 Mar 2020 18:42:55 GMT

COMMAND LINE:
/usr/lib/jvm/java-8-graalvm/bin/graalpython iobench.graal 1

PROGRAM OUTPUT NOT CHECKED:
<function fread at 0x26a4d162> 100 bytes, 9.61us per write
<function fwrite at 0x4636d607> 100 bytes, 1.69us per write
<function fread at 0x26a4d162> 1000 bytes, 2.91us per write
<function fwrite at 0x4636d607> 1000 bytes, 3.79us per write
<function fread at 0x26a4d162> 10000 bytes, 4.43us per write
<function fwrite at 0x4636d607> 10000 bytes, 31.74us per write
<function file_read at 0x6d190d1e> 100 bytes, 24.52us per write
<function file_write at 0x7ebc4e99> 100 bytes, 9.96us per write
<function file_read at 0x6d190d1e> 1000 bytes, 8.62us per write
<function file_write at 0x7ebc4e99> 1000 bytes, 51.86us per write
<function file_read at 0x6d190d1e> 10000 bytes, 26.99us per write
<function file_write at 0x7ebc4e99> 10000 bytes, 469.12us per write

Please note: This Python implementation is in the very early stages, and can run little more than basic benchmarks at this point.

Revised BSD license

  Home   Conclusions   License   Play