知识大全 IronPython和C#执行速度对比

Posted 速度

篇首语:用行动祈祷比用言语更能够使上帝了解。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 IronPython和C#执行速度对比相关的知识,希望对你有一定的参考价值。

IronPython和C#执行速度对比  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  我构思的实验覆蓋到下面几个我认为是实际项目中比较有代表性的场景

   访问一个稍大的数据表 遍历所有记录

   生成并操作一个列表

   生成并操作一个字典

   通过反射动态加载并调用一个方法

  C#部分的代码 编译时使用了/debug 和/optimize+

  

    usingSystem;  usingSystem Data SqlClient;  usingSystem Diagnostics;  usingSystem Collections Generic;  usingSystem Reflection;   namespaceTest    classTest    publicstaticvoidMain(string[]args)    Console WriteLine( C#: );  Measure(TestDb TestDb );  Measure(TestList TestList );  Measure(TestDict TestDict );  Measure(TestReflection TestReflection );     delegatevoidFuncDelegate();   staticvoidMeasure(FuncDelegatefunc stringfuncName)    Stopwatchsw=newStopwatch();  sw Start();  func();  sw Stop();  Console WriteLine( used ms funcName sw ElapsedMilliseconds);     staticvoidTestDb()    using(SqlConnectionconn=newSqlConnection(connStr))    conn Open();   SqlCommandcmd=newSqlCommand(sql conn);  SqlDataReaderreader=cmd ExecuteReader();  while(reader Read())    varid=reader[ Id ];  varcode=reader[ Code ];  varcargoCode=reader[ CargoCode ];  varlength=reader[ Length ];  varwidth=reader[ Width ];  varheight=reader[ Height ];  varvol=reader[ Vol ];  varpallet=reader[ Pallet ];    reader Close();  cmd Dispose();  conn Close();       staticvoidTestList()    varlist=newList();  constintcount= ;  for(inti= ;ilist Add(string Format( item i));  for(inti=count ;i>= ;i )  list RemoveAt(i);     staticvoidTestDict()    vardict=newDictionary();  constintcount= ;  for(inti= ;idict[string Format( key i)]=string Format( value i);  for(inti= ;idict Remove(string Format( key i));     staticvoidTestReflection()    AssemblyAssemblyassem=Assembly LoadFrom( Lib dll );  Typetype=assem GetType( Lib TestLib );  constintcount= ;  ConstructorInfoci=type GetConstructor(Type EmptyTypes);  MethodInfomi=type GetMethod( GetMessage );  for(inti= ;i  objectobj=ci Invoke(null);//Activator CreateInstance(type);  mi Invoke(obj newobject[] name );       conststringconnStr= IntegratedSecurity=SSPI;InitialCatalog=test;DataSource= ;   conststringsql= select*fromCargoPackageTypes ;     

  IronPython部分的代码:

  

    from__future__imporith_statement  importclr sys  clr AddReference( System Data )  fromSystem Data SqlClientimportSqlCommand SqlConnection  fromSystem DiagnosticsimportStopwatch  fromSystem ReflectionimportAssembly   connStr= IntegratedSecurity=SSPI;InitialCatalog=test;DataSource= ;   sql= select*fromCargoPackageTypes ;   deftestDb():  withSqlConnection(connStr)asconn:  conn Open()   cmd=SqlCommand(sql conn)  reader=cmd ExecuteReader()  whilereader Read():  id=reader[ Id ]  code=reader[ Code ]  cargoCode=reader[ CargoCode ]  length=reader[ Length ]  width=reader[ Width ]  height=reader[ Height ]  vol=reader[ Vol ]  pallet=reader[ Pallet ]  reader Close()  cmd Dispose()  conn Close()  deftestList():  lst=[]  count=  foriinxrange(count):  lst append( item%d %i)  foriinxrange(count ):  lst pop(i)  deftestDict():  d=  count=  foriinxrange(count):  d[ key%d %i]= value%d %i  foriinxrange(count):  d pop( key%d %i)  deftestReflection():  clr AddReferenceToFile( Lib dll )  fromLibimportTestLib  count=  foriinxrange(count):  obj=TestLib()  obj GetMessage( name )  defmeasure(fn):  sw=Stopwatch()  sw Start()  fn()  sw Stop()  print %sused%sms %(fn __name__ sw ElapsedMilliseconds)  print Python:  measure(testDb)  measure(testList)  measure(testDict)  measure(testReflection) 

  运行结果

相关参考

知识大全 VB.NET和C#逐层横向对比[2]

VB.NET和C#逐层横向对比[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  //函数层 

知识大全 Java与C#相似之处的对比

Java与C#相似之处的对比  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在比较Java和C#

知识大全 c#时间增加并对比做法

 今天在看完全手册这书的时候发现的这个方法忙着学习懒得修改如果有朋友觉得有必要就自己去改好了修改方法就是把voteaspxcs的load事件下面的时间判断修改下然后在数据库中把vlog表中的

知识大全 c#程序中如何执行 dos命令

  C#中执行Dos命令C#本来封装了很多类似于Dos命令的东西可是开发需要用它来执行cmdtexe  staticvoidMain(string[]args)  mandstartcmd(ping)

知识大全 动态执行C#代码

动态执行C#代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  写这篇笔记的理由是因为上篇g提高

知识大全 C#如何执行存储过程

C#如何执行存储过程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  以Oracle为例其它数据库

知识大全 登录和优化IBM DB2的执行速度

经验总结:登录和优化IBMDB2的执行速度  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  dos

知识大全 提升PHP执行速度全攻略分析

提升PHP执行速度全攻略分析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  PHP的优点之一是速

知识大全 java和c#哪个前景好

java和c#哪个前景好现说哪发展前景更好还时过早毕竟门语言说定哪天会被更加优秀语言所淘汰要知道计算机技术更新速度日新月异从itJOB目前职位来看招java方面企业似乎比C#多点java拥有比较庞大使

知识大全 在页面方法执行或控件方法执行查找性能瓶颈

  在很多时候我们需要调整网站的性能通过iis日志分析网站的执行速度在执行速度有问题时我们不得不调试调试的时候就用到了当前页面的执行时间  我站点中的所有网页都从一个PageBase继承所以我把统计执