FREEBASIC 编译可被python调用的dll函数示例-续(1)

前文我们已经说过了如何用freebasic编制dll被python调用,本节是通过示例来对比其运行效率。

废话不说,上代码:

  1. myfib.bas

    编译后生成myfib.dll

    fbc -s gui -dll -export "myfib.bas"

 'mylib.bas
function fib Cdecl Alias "fib"( x as integer) as Integer Export
    
     if x<=1 then
    
      return 1
    
     else
    
      return fib(x-1) + fib(x-2)
    
     end if

end function

 

编译.dll,命名为myfib.dll,拷贝到python.exe 目录下

2. python 代码:

#  -*- coding: cp936 -*-
from ctypes import *
lib=CDLL("myfib.dll")
# Fibonacci in Python
def fibpy(x):
    if x<=1: return 1
    return fibpy(x-1)+fibpy(x-2)
 

# test fibpy(x)
def sspy(x):
   import time
   t0=time.time()
   fibpy(x)
   t1=time.time()
   print "Python coast time:",(t1-t0)
# test dll of freebasic: fib(40)
def ssfb(x):
   import time
   t0=time.time()
   lib.fib(x)
   t1=time.time()
   print "coast time:",(t1-t0)
print "1.================="
print "test for python function fibpy(40)"
sspy(40)
print ""
print "2.================="
print "test for dll of freebasic fib(40)"
ssfb(40)
i=raw_input("input anything for Exit")

生成的结果大家都关心的哈,如下:

111249_tMp3_577912.png

对比一下,提高26倍哦。

 

转帖请注明出处。

 

转载于:https://my.oschina.net/u/577912/blog/223010

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值