122 lines
4.0 KiB
Markdown
122 lines
4.0 KiB
Markdown
# __Benchmark__
|
|
|
|

|
|
|
|
## version 6.5 (i5-8250U windows10 2021/6/19)
|
|
|
|
running time and gc time:
|
|
|
|
|file|call gc|total time|gc time|
|
|
|:----|:----|:----|:----|
|
|
|pi.nas|12000049|0.593s|0.222s|
|
|
|fib.nas|10573747|2.838s|0.187s|
|
|
|bp.nas|4419829|1.99s|0.18s|
|
|
|bigloop.nas|4000000|0.419s|0.039s|
|
|
|mandelbrot.nas|1044630|0.433s|0.041s|
|
|
|life.nas|817112|8.557s|0.199s|
|
|
|ascii-art.nas|45612|0.48s|0.027s|
|
|
|calc.nas|8089|0.068s|0.006s|
|
|
|quick_sort.nas|2768|0.107s|0s|
|
|
|bfs.nas|2471|1.763s|0.003s|
|
|
|
|
operands calling frequency:
|
|
|
|
|file|1st|2nd|3rd|4th|5th|
|
|
|:----|:----|:----|:----|:----|:----|
|
|
|pi.nas|callg|pop|mcallg|pnum|pone|
|
|
|fib.nas|calll|pnum|callg|less|jf|
|
|
|bp.nas|calll|callg|pop|callv|addeq|
|
|
|bigloop.nas|pnum|less|jf|callg|pone|
|
|
|mandelbrot.nas|callg|mult|loadg|pnum|pop|
|
|
|life.nas|calll|callv|pnum|jf|callg|
|
|
|ascii-art.nas|calll|pop|mcalll|callg|callb|
|
|
|calc.nas|calll|pop|pstr|mcalll|jmp|
|
|
|quick_sort.nas|calll|pop|jt|jf|less|
|
|
|bfs.nas|calll|pop|callv|mcalll|jf|
|
|
|
|
operands calling total times:
|
|
|
|
|file|1st|2nd|3rd|4th|5th|
|
|
|:----|:----|:----|:----|:----|:----|
|
|
|pi.nas|6000004|6000003|6000000|4000005|4000002|
|
|
|fib.nas|17622792|10573704|7049218|7049155|7049155|
|
|
|bp.nas|7081480|4227268|2764676|2617112|2065441|
|
|
|bigloop.nas|4000001|4000001|4000001|4000001|4000000|
|
|
|mandelbrot.nas|1519632|563856|290641|286795|284844|
|
|
|life.nas|2114371|974244|536413|534794|489743|
|
|
|ascii-art.nas|37906|22736|22402|18315|18292|
|
|
|calc.nas|191|124|109|99|87|
|
|
|quick_sort.nas|16226|5561|4144|3524|2833|
|
|
|bfs.nas|24707|16297|14606|14269|8672|
|
|
|
|
## version 7.0 (i5-8250U ubuntu-WSL on windows10 2021/6/29)
|
|
|
|
running time:
|
|
|
|
|file|total time|info|
|
|
|:----|:----|:----|
|
|
|pi.nas|0.15625s|great improvement|
|
|
|fib.nas|0.75s|great improvement|
|
|
|bp.nas|0.4218s(7162 epoch)|good improvement|
|
|
|bigloop.nas|0.09375s|great improvement|
|
|
|mandelbrot.nas|0.0312s|great improvement|
|
|
|life.nas|8.80s(windows) 1.25(ubuntu WSL)|little improvement|
|
|
|ascii-art.nas|0.015s|little improvement|
|
|
|calc.nas|0.0468s|little improvement|
|
|
|quick_sort.nas|0s|great improvement|
|
|
|bfs.nas|0.0156s|great improvement|
|
|
|
|
## version 8.0 (R9-5900HX ubuntu-WSL 2022/1/23)
|
|
|
|
running time:
|
|
|
|
|file|total time|info|
|
|
|:----|:----|:----|
|
|
|bf.nas|1100.19s||
|
|
|mandel.nas|28.98s||
|
|
|life.nas|0.56s|0.857s(windows)|
|
|
|ycombinator.nas|0.64s||
|
|
|fib.nas|0.28s||
|
|
|bfs.nas|0.156s|random result|
|
|
|pi.nas|0.0625s||
|
|
|bigloop.nas|0.047s||
|
|
|calc.nas|0.03125s|changed test file|
|
|
|mandelbrot.nas|0.0156s||
|
|
|ascii-art.nas|0s||
|
|
|quick_sort.nas|0s||
|
|
|
|
## version 9.0 (R9-5900HX ubuntu-WSL 2022/2/13)
|
|
|
|
running time:
|
|
|
|
|file|total time|info|
|
|
|:----|:----|:----|
|
|
|bf.nas|276.55s|great improvement|
|
|
|mandel.nas|28.16s||
|
|
|ycombinator.nas|0.59s||
|
|
|life.nas|0.2s|0.649s(windows)|
|
|
|fib.nas|0.234s|little improvement|
|
|
|bfs.nas|0.14s|random result|
|
|
|pi.nas|0.0625s||
|
|
|bigloop.nas|0.047s||
|
|
|calc.nas|0.0469s|changed test file|
|
|
|quick_sort.nas|0.016s|changed test file:100->1e4|
|
|
|mandelbrot.nas|0.0156s||
|
|
|ascii-art.nas|0s||
|
|
|
|
`bf.nas` is a very interesting test file that there is a brainfuck interpreter written in nasal.
|
|
And we use this bf interpreter to draw a mandelbrot set.
|
|
|
|
In 2022/2/17 update we added `\e` into the lexer. And the `bfcolored.nas` uses this special ASCII code. Here is the result:
|
|
|
|

|
|
|
|
## More Nasal Generated Pictures
|
|
|
|
|Mandelbrot Set|Mandelbrot Set|Julia Set|
|
|
|:----:|:----:|:----:|
|
|
|[mandelbrotset.nas](../test/mandelbrotset.nas)|[mandelbrotset.nas](../test/mandelbrotset.nas)|[juliaset.nas](../test/juliaset.nas)|
|
|
||||
|
|
|__Burning Ship__|__Burning Ship__|__Feigenbaum__|
|
|
|[burningship.nas](../test/burningship.nas)|[burningship.nas](../test/burningship.nas)|[feigenbaum.nas](../test/feigenbaum.nas)|
|
|
|||| |