Jump to content
IGNORED

KickC Benchmark Tests (cf Mad Pascal) ... WIP


Recommended Posts

2 minutes ago, fenrock said:

Yup, we're getting down to "whose memset function is faster" at this point, not "whose code produces decent sieve" which is what the test should be doing

Yes it was part of the test from the beginning ;) not complain :D 

Edited by zbyti
;)
Link to comment
Share on other sites

1 minute ago, zbyti said:

@fenrock But this is another kind of test, different aspect - do what you consider is best! Good luck :]

I want to do Floating Point numbers, more to be able to add it as an option for myself, but after that, I'm going to start writing some IO libraries for kickc.

I just got a fujinet and want to write the bindings for it so I/anyone can use kickc for writing network code.

These benchmarks have been an excellent tool for learning, but now I want to do something real :D 

  • Like 1
Link to comment
Share on other sites

Link to comment
Share on other sites

  • 4 weeks later...

Small update to project.

It's now using the new XeX Kick Assembler plugin (integrated into kickc), which splits segments up correctly in the XeX as separate sections.

 

This has reduced the overall size of the binary to 6,831 bytes, pretty much as low as it can go:

 

$ ataricom bin/suite.xex 
ataricom 0.30-190808
(c) 2008-2019 Matthias Reichl <hias@horus.com>
block    1: 1000-2599 (bytes:  5530, offset:      6)
block    2: 259a-2953 (bytes:   954, offset:   5540)
block    3: 4000-4146 (bytes:   327, offset:   6498)
block    4: 02e0-02e1 (bytes:     2, offset:   6829)
       RUN: 10df

 

Example linking file which is much simpler now:

.plugin "dk.camelot64.kickass.xexplugin.AtariXex"
.file [name="%O", type="bin", segments="File"]

.segmentdef File [segments="Program", modify="XexFormat", _RunAddr=main]
.segmentdef Program [segments="Code, Data, DList"]
.segmentdef Code [start=$1000]
.segmentdef Data [startAfter="Code"]
.segmentdef DList [start=$4000]

Results haven't really changed (since using "pure C" implementation), just organisation of the data/code etc.

 

suite.thumb.png.301b030f11ff2956d91d438af04b59c5.png

 

suite.xex

Edited by fenrock
  • Like 3
Link to comment
Share on other sites

1 hour ago, ilmenit said:

do I read the arrows up/down correctly, that performance in some cases is much better but in some worse?

The up/down arrows mean "The score indicates big number is better if the arrow points up", and opposite for down.

 

They are not relative to the MP versions of the tests, just an indicator if a big number is a good thing, or a bad thing.

 

As @zbyti previously said, wherever the word "frames" is in the name, the test runs for a fixed number of frames, so you want a higher score (e.g. GTIA flames does 250 frames and we count how many times the screen is fully re-rendered in that time, so higher is better).

 

For names without "frames" in it, it's a test that just runs until it completes, e.g. doing an MD5 calculation 5 times on a 512 byte array.

You want to go faster, so score (which is effectively the number of frames to complete it) should be lower.

 

 

  • Like 2
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...