Re[2]: [Ficl-developers] Ficl vs C - Speed Comparison
Brought to you by:
jsadler
From: David M. <da...@re...> - 2001-12-06 21:36:11
|
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----- |