flat assembler
Message board for the users of flat assembler.

Index > Main > Assembler benchmarking

Author
Thread Post new topic Reply to topic
Randall Hyde



Joined: 03 Dec 2003
Posts: 57
Randall Hyde 16 Jan 2004, 18:04
BTW, those interested in benchmarking FASM's improvements might want to volunteer to participate in the following project:

http://www.masmforum.com/topic.php?t=1758

The premise is to develop a standardized set of performance evaluation tests for different assemblers. Input concerning FASM would be most welcome.

Originally, this project was started as a way to quiet some outrageous claims about MASM's performance. But it's quickly morphing into (the concept for) a useful tool for assembler developers to use to pinpoint problems in their assemblers.

I'm sure the results from this benchmark series will be much more useful than that 25MB file I created a while back (whose sole purpose was *not* to test FASM, but simply to demonstrate that the claim "SpAsm will never take five minutes to assemble a program" was untrue).
Cheers,
Randy Hyde
Post 16 Jan 2004, 18:04
View user's profile Send private message Visit poster's website Reply with quote
Tomasz Grysztar



Joined: 16 Jun 2003
Posts: 8363
Location: Kraków, Poland
Tomasz Grysztar 21 Jan 2004, 18:56
Is there any progress? It would be nice to test the fasm 1.51 improvements over 1.50 with such a benchmark.
Post 21 Jan 2004, 18:56
View user's profile Send private message Visit poster's website Reply with quote
Randall Hyde



Joined: 03 Dec 2003
Posts: 57
Randall Hyde 23 Jan 2004, 17:17
Privalov wrote:
Is there any progress? It would be nice to test the fasm 1.51 improvements over 1.50 with such a benchmark.


An "equate" generator has now been written.
It generates a bunch of random labels with random values.
It needs a bit more work (okay, a lot more work), but progress is being made on the benchmark.
Cheers,
Randy Hyde
Post 23 Jan 2004, 17:17
View user's profile Send private message Visit poster's website Reply with quote
donkey



Joined: 19 Jun 2003
Posts: 3
donkey 23 Jan 2004, 20:30
Privalov wrote:

Posted: 21 Jan 2004, 18:56 Post subject:
Is there any progress? It would be nice to test the fasm 1.51 improvements over 1.50 with such a benchmark


Hi Privalov,

I have been working on the equate generator and I am nearly done. It will generate a list of unique equates of a specified size and includes both hex and decimal values (roughly equally) randomly distributed, string equates (much less frequent). The equate labels can be anywhere from 3 to 23 characters randomized using a Mersenne twister. All equate names begin with an alpha character and contain only characters 0-9 and A-Z (no lower case). The program automatically generates an identical set of equates for various assemblers to insure identical distribution and provide a valid test. I have attached the generator, I would appreciate your opinion:

TODO:
Introduce duplicated equates
Introduce algorithms ie KSAJDKA EQU KSDJASK + ASDJSHIU


Description:
Download
Filename: Rand.zip
Filesize: 6.54 KB
Downloaded: 943 Time(s)


_________________
"Ahhh, what an awful dream. Ones and zeroes everywhere...[shudder] and I thought I saw a two." -- Bender
"It was just a dream, Bender. There's no such thing as two". -- Fry
-- Futurama


Last edited by donkey on 23 Jan 2004, 20:57; edited 1 time in total
Post 23 Jan 2004, 20:30
View user's profile Send private message Reply with quote
Tomasz Grysztar



Joined: 16 Jun 2003
Posts: 8363
Location: Kraków, Poland
Tomasz Grysztar 23 Jan 2004, 20:40
I have noticed two problems: one is that some of the generated names are reserved words (mainly the 3-letter ones, like ADD or CR0) and cause an error, because fasm doesn't allow to define constant/label of such name. The second problem is less frequent and occurs when you define some constant using EQU and then try to define the numerical constant of such name, like:
Code:
JVZT equ 'JVZT'    

and then
Code:
JVZT = 610532362    

The preprocessor replaces all JVZT occurences in source with 'JVZT' (in fasm EQU works a bit like a macro), and so assembler comes with an error, because it finds in source something like this:
Code:
'JVZT' = 610532362    

and it's invalid construction.
Post 23 Jan 2004, 20:40
View user's profile Send private message Visit poster's website Reply with quote
donkey



Joined: 19 Jun 2003
Posts: 3
donkey 23 Jan 2004, 20:49
Hi Privalov,

Thank you for the input.

I will write a filter for reserved names, most can be eliminated by increasing the minimum size to 7 characters then I can have the generator check for the few exceptions that remain.

I had worked on the assumption that a Mersenne twister would not allow for a duplication in the character string. Thinking about it I reseed it with RDTSC so the possibility of a duplicate is introduced, I will attempt to work out a way to eliminate string equates having any possibility of duplication.

I have uploaded a version with 7 characters as the minimum size, I have not filtered any reserved names as I don't know of any over 7 chars. Also I did not actually statistically analyze it but I am under the firm belief that with 7 chars the odds of a duplicated symbol are so huge that it can be assumed that it will not happen.

_________________
"Ahhh, what an awful dream. Ones and zeroes everywhere...[shudder] and I thought I saw a two." -- Bender
"It was just a dream, Bender. There's no such thing as two". -- Fry
-- Futurama
Post 23 Jan 2004, 20:49
View user's profile Send private message Reply with quote
Randall Hyde



Joined: 03 Dec 2003
Posts: 57
Randall Hyde 30 Jan 2004, 23:43
I posted a notice about my new assembler benchmark generator in the thread about speeding up FASM. This new generator has a FASM compatible output mode. Interested individuals might want to take a look at this.
Cheers,
Randy Hyde
Post 30 Jan 2004, 23:43
View user's profile Send private message Visit poster's website Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  


< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.

Website powered by rwasa.