I've downloaded some early tests (100x100, double).
These were incorrect, use the new ones below (save their fractal as a bmp to the drive c:\ root)

And don't forget: the {$fputype sse2} directive can do wonders to your code speed!

The full battery of benchmarks, including sources, here (500K):
http://217.70.20.10/_share/_004/fpc_...benchmarks.zip

The benchmark source (fpc):

[pascal]program fpctest1;

{$apptype console}
{$mode objfpc}
{$asmmode intel}
{$fputype sse2}

uses
SysUtils, Windows;

const height = 4000;
width = 3000;
scale = 0.0008;
deep = 100;

type
float = double;
//float = single;

var pix: array [0..height-1,0..width-1] of longint;
time: longint;
f : file;
fh : TBitmapFileHeader;
bh : TBitmapInfoHeader;


procedure build_fractal(scale: float; deep: longint);
var
color, dx, dy : Integer;
cx, cy, zx, zy, zxt : float;
begin
cy := (height div 2) * scale;
for dy := height -1 downto 0 do
begin
cy := cy - scale;
cx := (width div 2) * scale;
for dx := width - 1 downto 0 do
begin
color := 0;
// Calculate color
cx := cx - scale;
zx := cx;
zy := cy;
while zx * zx + zy * zy < 4 do
begin
zxt := zx * zx - zy * zy + cx;
zy := 2 * zx * zy + cy;
zx := zxt;
inc(color);
if color > deep then break;
end;
pix[dy, dx] := 4 * color;
end;
end;
end;

var
cw: word;

begin
cw:= $033F; //?ê¬??ê¬? ?ê¬??ê¬? ?ë‚Ä°?ë‚Äö?ê¬æ ?ê¬??ꬵ ?ê¬??ꬪ?ê¬??ë¬è?ꬵ?ë‚Äö ?ë‚Äö?ê¬??ê¬??ê¬?
asm
fldcw [cw]
end;
FillChar(pix, sizeof(pix), 0);
time := GetTickCount();

build_fractal( scale, deep);

time:= GetTickCount() - time;
WriteLn( time );

fh.bfType := WORD('B') + WORD('M') shl 8;
fh.bfSize := SizeOf(TBitmapFileHeader);
fh.bfReserved1 := 0;
fh.bfReserved2 := 0;
fh.bfOffBits := fh.bfSize + SizeOf(TBitmapInfoHeader);

FillChar(bh, SizeOf(TBitmapInfoHeader), 0);
bh.biSize := SizeOf(TBitmapInfoHeader);
bh.biWidth := width;
bh.biHeight := height;
bh.biPlanes := 1;
bh.biBitCount := 32;

Assign(f, 'c:\' + ChangeFileExt(ExtractFileName(ParamStr(0)), '.bmp'));
Rewrite(f, 1);
BlockWrite(f, fh, SizeOf(TBitmapFileHeader));
BlockWrite(f, bh, SizeOf(TBitmapInfoHeader));
BlockWrite(f, pix, width * height * 4);
Close(f); // *
ReadLn;
end.[/pascal]