Show quoted text 11 lines
Thanks for follow-up, Nikolay!
I'm still looking for performance bottlenecks of the current float<->ascii conversion. Can You run the attached benchmark to make it clear how the uint32|uint64 multiplication affects this?

Mailing lists / fpc-devel / 2014-01
3 messages · 3 people · –
Reply by email Subscribe to this list Your subscription
Read-only archive. Use j and k to move between messages.
Thanks for follow-up, Nikolay!
I'm still looking for performance bottlenecks of the current float<->ascii conversion. Can You run the attached benchmark to make it clear how the uint32|uint64 multiplication affects this?
Ok, I compiled it with the latest fpc trunk, with -O2 -WmMedium. Here are the binaries:
http://debian.fmi.uni-sofia.bg/~nickysn/fpc-8086/testf80/
Here are the results from my 286:
testf80p.exe:
Seed: 0x004A0020
Predefs: 0
Input count and press ENTER (blank to use the default=1000000) >1000 Count: 1000
[normal] null: 7.799 s
[normal] f2a: 129.510 s (t-null)
[normal] a2f: 89.703 s (t-f2a-null)
[subnormal] null: 4.771 s
[subnormal] f2a: 163.248 s (t-null)
[subnormal] a2f: 96.229 s (t-f2a-null)
Next seed: 0xFFB5FFDF
Note:
Small count of numers will lead to arbitrarily imprecise/random timings.
testf80a.exe:
Seed: 0x2601002E
Predefs: 0
Input count and press ENTER (blank to use the default=1000000) >1000 Count: 1000
[normal] null: 4.500 s
[normal] f2a: 22.580 s (t-null)
[normal] a2f: 17.749 s (t-f2a-null)
[subnormal] null: 4.071 s
[subnormal] f2a: 27.558 s (t-null)
[subnormal] a2f: 18.730 s (t-f2a-null)
Next seed: 0xD9FEFFD1
Note:
Small count of numers will lead to arbitrarily imprecise/random timings.
Nikolay
Nikolay Nikolov wroteHere are the results from my 286:
A small reminder: The MUL/IMUL/DIV/IDIV speed was increased an order of magnitude from the 8088/8086 to the 80286. On 8086 a MUL is roughly 115 cycles; on 80286 it's 21. (on 386, it can be as low as 9)
Just thought I'd mention it since the thread was originally about i8086.