数学建模社区-数学中国

标题: Lu动态生成函数的效率 [打印本页]

作者: forcal    时间: 2011-10-30 20:39
标题: Lu动态生成函数的效率
    在脚本中动态生成函数并调用该函数是脚本的基本特色之一,Lu模块化编译运行库MLu提供了该功能。MLu可对一段包含多个函数及模块的字符串源程序进行动态编译,以下代码测试了其运行效率。
  1. mvar:
    7 ?: W2 {1 b0 {* q4 T# _* q* e3 d
  2. main(:a)=
    3 H8 @+ p6 \2 X' E
  3.   t0=clock(), s=0, i=0,
    & o/ R) _0 _; ~4 V
  4.   while{++i<=10000,
    : |; b: h/ V/ ^7 m* A! J* e
  5.     //动态编译模块,该模块有2个函数,f为私有函数,ff为全局函数0 F% M2 F. _3 a; C
  6.     ComModule["f(x)=x+1; :::ff(x,y)=f(x)+y;",0,&me,0,0],1 |. H9 u* v# U* Q' y* h
  7.     a=HFor("ff"), //获得函数ff的句柄" L) U, m, W" r1 Q1 l( V
  8.     s=s+a[1,1],   //动态调用函数ff
    ( X4 J! [; v- F, y  Z
  9.     delete[me]    //立即销毁模块
    " v! M) L. W) |$ K2 v* Q
  10.   },
    3 W0 c% N. G, a0 L& \# t$ q
  11.   o{"s=",s,"  time=",[clock()-t0]/1000.,"秒。"};
复制代码
结果:
  1. s=30000  time=0.625秒。
复制代码

作者: ehi28    时间: 2011-12-20 02:04
嗯,不错,支持一下.* c; a$ U. A: m. z. P





欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5