




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
-.z.python中嵌入C語言腳本借助Cinpy和C語言解釋器TinyCC,可以在python程序里面直接嵌入C語言片斷、不經(jīng)編譯直接使用C編寫的函數(shù)了。win2k平臺上,簡單的測試對比數(shù)據(jù)如下(遞歸方法計算第四十項兔子數(shù)列fib(40))語言實現(xiàn)時間(單位:秒)評python純pythonfib函數(shù)568.718天啊使用psyco加速的pythonfib函數(shù)17.922比較接近,還行使用swig直接轉換的C語言編寫的模塊13.453使用Cinpy嵌入fib函數(shù)11.532CVC6速度優(yōu)化編譯的可執(zhí)行文件5.562編譯的可執(zhí)行文件6.719解釋執(zhí)行6.813FreeBASICfbc0.16b編譯的可執(zhí)行文件(-arch486)8.022編譯的可執(zhí)行文件(-arch686)7.619forth4th3.5a24thc*fib.4th277這個表現(xiàn)太失望了4thcsvfib.4thfib.h*4thl*fib.h*1964thlgfib.h*fib.cmingw-O2fib.c-ofib.e*e110Gforth-fastfib.gfth14.719不錯,不過不是說和C的速度可以比嘛?怎么也就是優(yōu)化的python的速度啊注:其余源程序freebasicfunctionfib(*asinteger)asinteger if*<=1then return1 else returnfib(*-1)+fib(*-2) endifendfunctiondimstarttime,endtimeasdoubledimresasintegerstarttime=timerres=fib(40)endtime=timerprint"fib(40)=";resprint"timeelapsed:";(endtime-starttime);"s"4th:fib(*--y) dup2>if dup1-recurse swap2-recurse+ e*it then drop1;time41fib.crtimeswap-."timeelapsed".."s"crgforth-0.6.2:fib(*--y) dup2>if dup1-recurse swap2-recurse+ e*it then drop1;utime41fib.crutime2swapd-."timeelapsed"d.."us"cr如果在windows下使用mingw編譯當前的TinyCC,嵌入C腳本會報錯:tcc:file'/c/ProgramFiles/tcc/libtcc1.a'notfoundDougCurrie在tcc的列表里面提供了一個補丁:HereiswhatIdid(andreportedtothemailinglist)lastFebruary,sothepatchmaynotbeaccurateformorerecentversions,buttheissuesarethesame...Ihavebeenabletocreatealibtcc.dllforWin*PusingMinGW/MSYS;thechangesthatwerenecessarywereveryminor.PerhapsthisdescriptionwillhelpothersuselibtcconWindows.First,asmallbugtoreport:Intcc.cthefunctiontcc_basename()followstheline:*if!defined(LIBTCC)butthefunctiontcc_basename()isusedinpe_build_e*ports()intccpe.c--movingthe*iflinebelowthefunctiontcc_basename()eliminatesalinkerrorbuildinglibtcc.dllinPEtargetmode.Second,configuringandmakingtccwithMSYSplacesapathnameinconfig.hinMSYSformat.Fore*ample,Ipassedtheargument--prefi*=/c/Dev/tcctoconfigure;thispathwasgoodforbuildingtcc.e*eanddidn'tcontainanyspaces,unlikethedefaultpath.Thiscreatestheline*defineCONFIG_TCCDIR"/c/Dev/tcc"inconfig.h.Manuallychangingthislineto*defineCONFIG_TCCDIR"C:/Dev/tcc"enableslibtcc.dlltofindtheincludefilesandlibrariesoncethelibraryisbuilt.[Theapplicationtcc.e*eavoidsthisproblembysettingtcc_lib_pathfromtheapplication'sdirectoryatstartup.AsimilarsolutioncouldbeusedforthelibraryusingDllMain.]So,afterconfigure,fi*CONFIG_TCCDIRinconfig.handmake.Finally,thelibrarylibtcc.dllcanbebuiltwiththeMSYSmand:gcc-O2-shared-Wall-Wl,--e*port-all-symbols/-mpreferred-stack-boundary=2/-march=i386-falign-functions=0-fno-strict-aliasing/-DTCC_TARGET_PE-DLIBTCC-olibtcc.dlltcc.cBelowisadiffoftcc-0.9.23tcc.candthechangesforLIBTCCwithTCC_TARGET_PEandDLLlocationoflibraryfiles.Regards,e---../tcc-0.9.23-o/tcc.cFriJun1718:09:152005+++tcc.cTueFeb2817:03:442006-10157,8+10157,6flag_name,value);}-*if!defined(LIBTCC)-/*e*tractthebasenameofafile*/staticconstchar*tcc_basename(constchar*name){-10175,6+10173,35returnp;}+*ifdefined(LIBTCC)++*ifdefWIN32+int__stdcallDllMain(void*hinstDLL,unsignedlongfdwReason,void*lpvReserved)+{+if(fdwReason==1/*DLL_PROCESS_ATTACH*/)+{+/*onwin32,asimplementedinmain()+wesupposethelibandincludesareatthelocationofthislibrary+*/+staticcharpath[1024];+char*p,*d;++GetModuleFileNameA(hinstDLL,path,sizeofpath);+p=d=strlwr(path);+while(*d)+{+if(*d=='//')
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年家居裝潢材料訂購合同總覽
- 2025年企業(yè)合并與收購合同稿
- 2025年高端潛水船租賃合同
- 單位培訓合同5篇
- 2025年合作策劃共享資源項目合同范本
- 2025年個人轎車抵押貸款合同范本
- 2025年停車場地租賃權策劃合同
- 鐵路貨運合同
- 貿(mào)易合同-水泥購銷合同5篇
- 供應鏈生產(chǎn)合同
- 《豎提》課件
- 中國藥膳理論與實踐-藥膳基本理論和技能
- 華東師大版七年級初一數(shù)學下冊全套試卷(單元、期中、期末)
- 南非醉茄產(chǎn)業(yè)發(fā)展規(guī)劃(十四五)
- 復古簡約中國古典名著導讀三國演義培訓PPT模板
- 不銹鋼排煙風管施工實施方案
- PMC部門工作流程圖
- IPC-4101剛性多層印制線路板的基材規(guī)范
- Oracle-EBS模塊講解
- 漿砌條石磚項施工方案
- 帶你領略淵海子平
評論
0/150
提交評論