Posted to tcl by mjanssen at Mon Oct 08 17:47:47 GMT 2007view raw

  1. # do the results of this benchmark indicate the BC execution engine can be optimized further?
  2.  
  3. lappend auto_path ../
  4. package require tcc
  5. set t [tcc::new]
  6. puts $t
  7. $t compile {
  8. #include "tcl.h"
  9. int tccappend( ClientData cdata, Tcl_Interp *interp, int objc, Tcl_Obj * CONST objv[]){
  10. Tcl_Obj * obj = Tcl_NewListObj(NULL,0);
  11. int i =0;
  12. for (i=0 ; i< 10000 ; i++) {
  13. Tcl_ListObjAppendElement(interp, obj, Tcl_NewIntObj(i));
  14. }
  15. Tcl_ObjSetVar2(interp, objv[1], NULL, obj,0);
  16. return TCL_OK;
  17. }
  18. }
  19.  
  20. $t command tccappend tccappend
  21.  
  22. proc bcappend {var} {
  23. for {set i 0} {$i < 10000} {incr i} {
  24. lappend var $i
  25. }
  26. return
  27. }
  28.  
  29. tccappend a
  30. bcappend a
  31. puts [time {tccappend a} 100]
  32. puts [time {bcappend a} 100]