karols / millfork-benchmarks Goto Github PK
View Code? Open in Web Editor NEWBenchmarks for the Millfork programming language
License: MIT License
Benchmarks for the Millfork programming language
License: MIT License
It seems that CC65 was tested in a very unoptimal way (no static local optimization).
CC65 both C standard constructs (register) and pragmas to use zero page.
I have played with the sieve in CC65 in:
https://github.com/Fabrizio-Caruso/Sieve
Try this for 6502 / romsum.c in CC65, should be MUCH faster:
#include "benchcommon.h"
#include <conio.h>
#include <stdlib.h>
const unsigned char* const rom = (const unsigned char*)0xe000;
unsigned int sum(void) {
register unsigned int s;
register const unsigned char* p;
s = 0;
for (p = rom; p != 0; ++p)
{
s += *p;
};
return s;
}
int main (void)
{
static unsigned char buffer[20];
unsigned char i;
start();
for(i=0;i<6;i++) {
utoa(sum(), buffer, 10);
putchar(0x9b);
cputs(buffer);
}
end();
asm(" jmp *");
return EXIT_SUCCESS;
}
Similarly, for SIEVE benchmark you can try this attachment - https://atariage.com/forums/topic/240919-mad-pascal/?do=findComment&comment=4434580
Hello,
I've just released prog8 6.4
It contains once again various code generation improvements. (mostly added in 6.1)
Most notably, the plasma benchmark now runs faster than the optimized cc65 one.
Also i've added the linkedlist benchmark that was missing until now.
It would be awesome, if you could update the graphs with the new results?
(it does first require some slight changes in the prog8 benchmark programs because of the changes to the language and libraries. The pull request for that is linked below.)
I've now pretty much exhausted the possibilities of easy to moderately complex code generation optimizations in Prog8. Further improvements will require quite a lot of work, I think, something I don't have the time for any time soon.
The reason your KickC plasma does not display anything is that the rand_seed is zero when calling makechar().
If you add the following before makechar() it displays the plasma frame correctly
`rand_seed = 6474;`
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.