Re: Re[2]: [Ficl-developers] Ficl vs C - Speed Comparison
Brought to you by:
jsadler
From: <jws...@at...> - 2001-12-07 01:04:08
|
BTW - you can get a decent (30-50%) speed-up by setting FICL_ROBUST to 0. This removes a lot of stack checking code. -- ======================== joh...@al... > Hi Billy, > > BT> You give the ficl code -- what was the C code? What was the C compiler? > BT> Just curiosity. > > I didn't include the C code because I though people would assume it's > something like the code below. Compiler was gcc over Cygwin. Also, the > FICL code was run on Windows native FICL. > > #include <stdlib.h> > #include <stdio.h> > int fib(int n); > main(int argc, char *argv[]) > { > int n; > if (argc != 2) > exit(1); > n = atoi(argv[1]); > printf("fib(%d) = %d\n", n, fib(n)); > } > > int fib(int n) > { > if (n < 3) > return 1; > else > return fib(n-1) + fib(n-2); > } > > >>In C, fib(42) took 10.25 secs to calculate on a T-bird 750. > >>In FICL, it took 547 seconds, a speed degradation factor of 53. > > BT> A bad difference, but not out of my expectations. ficl is not only > BT> insulated from the machine, it's also not optimized at all. A little > BT> peephole optimization could probably double performance -- but it's doubtful > BT> that it'd be worth the effort. > > >>FICL is abundantly fast enough for user interface stuff and basic > >>scripting things, but for any substantial calculations or manipulation > >>of data, it has a performance issue. > >>Luckily, though, it's brainlessly easy and convenient to write FICL > >>words in C and do all the heavy crunching in C. > > BT> And this is why. Most FICL apps almost certainly do just this, and making > BT> ficl's compiler smarter would also make it bigger. For ficl's main > BT> purposes, small is best. For my app, I'm choosing ficl over lua entirely > BT> for a tiny size advantage. > > Yes - FICL allows a lot of functionality to be packed into a small > size. Important, given that I've just recently ported FICL to a PDA > running Windows CE 2.11, and added wrappers for the FLTK GUI library, > therefore allowing the FICL code to generate and run GUIs on linux, > windows and windows CE . > > -- > Regards, > David mailto:da...@re... > > Defend your freedom of online speech > http://freeweb.sf.net > > -----BEGIN PGP PUBLIC KEY BLOCK----- > Version: 2.6 > > mQCPAzvXs9kBbgEEANHr7tHODruDgqTDPjODXSaq2I+EGsGvyZR3g+s5VyrlF2fH > ftChHHhsQUK5nDzafSLvDg5ctMnIb/aeEN3HT2URfc2s3zyHHCvcWU0BKhiFjxl5 > 1mVm2ihf6Ld5koX8ECvXhVvWjP8vXqw4B0IUZ8nODlSExx7JsEsMt0+QelfBABEB > AAG0JERhdmlkIE1jTmFiIDxkYXZpZEByZWJpcnRoaW5nLmNvLm56PokAlQMFEDvX > s9lLDLdPkHpXwQEBCeAD/RVJ9nxGPDTSxaQLvDclN+N78aJFTxIlehc/XOK3QMgT > CnrUjdi42xwKIGvWMD4Mfd3K4SNj50QfvvddrE8MYpMPDYIWLB31/bisVWja7QXT > 3zMLh2dj2n52GjGM9xFtJoXGM8oOxrODteBSh5fx5PNqvMpj5Zq9J7jC23WZKDj0 > =VHBU > -----END PGP PUBLIC KEY BLOCK----- > > > > _______________________________________________ > Ficl-developers mailing list > Fic...@li... > https://lists.sourceforge.net/lists/listinfo/ficl-developers |