Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在客户站点比较.NET性能和VB 6性能的最佳方法是什么?_.net_Sql Server_Performance_Vb6_Novell - Fatal编程技术网

在客户站点比较.NET性能和VB 6性能的最佳方法是什么?

在客户站点比较.NET性能和VB 6性能的最佳方法是什么?,.net,sql-server,performance,vb6,novell,.net,Sql Server,Performance,Vb6,Novell,两个问题: 有人能告诉我比较.NET性能和VB6性能的无偏数据吗?我已经找过了,但很难找到 当应用程序在客户网站上运行时,将.NET性能与VB 6性能进行比较的最佳方法是什么 我们有一个WindowsForms客户端-服务器应用程序(为2.0编写,很快升级到3.5 SP 1),与以前的VB 6版本相比,某些客户抱怨该应用程序“性能低下”。我知道,“性能慢”是非常模糊和笼统的,但是假设.NET代码可能比VB6代码慢,因为.NET在VM中运行,这是真的吗?我用C#编写了100%的代码,因此它不是由第

两个问题:

  • 有人能告诉我比较.NET性能和VB6性能的无偏数据吗?我已经找过了,但很难找到
  • 当应用程序在客户网站上运行时,将.NET性能与VB 6性能进行比较的最佳方法是什么
  • 我们有一个WindowsForms客户端-服务器应用程序(为2.0编写,很快升级到3.5 SP 1),与以前的VB 6版本相比,某些客户抱怨该应用程序“性能低下”。我知道,“性能慢”是非常模糊和笼统的,但是假设.NET代码可能比VB6代码慢,因为.NET在VM中运行,这是真的吗?我用C#编写了100%的代码,因此它不是由第三方或向导移植的

    并不是所有的客户都会抱怨,所以我们怀疑是环境问题。是我们衡量客户现场绩效的唯一选择吗?我们的一些客户在Novell网络的Windows Server 2003上使用SQL Server 2005。与Windows网络上的类似计算机相比,他们是否会看到显著不同的数据访问性能?

    性能通常取决于您所做的工作

    如果可能,到现场观看客户使用应用程序的情况。找出减速发生的地方,然后对其进行分析——理想情况下是使用类似数量的数据等


    在客户站点检查客户机和服务器的性能-找出问题的真正原因。检查网络配置和运行状况-愚蠢的设置有时会让事情正常运行,但速度非常慢。

    与VB6应用程序相比,性能可能更多地是由于应用程序设计,而不是c#与VB6。我估计,如果设计得当,C#app的速度将提高9.5/10倍。Net不会在VM内部运行。CLR JIT将.Net应用程序编译为机器级代码,速度非常快。原因是运行速度比未管理的代码慢一点,因为运行在下的沙盒.Net是受管理的,这会带来一些开销

  • 我从来没有找过这种数据。您可能会看到规范的“宠物店”应用程序,该应用程序通常用于基准测试目的。它可能在两种版本的开发平台中都可用。不过,我怀疑#2的回答要重要得多。谁在乎宠物店跑得快。重要的是你客户的应用程序

  • 大多数性能问题都与数据库和/或网络相关。如果您在不同版本之间进行了重大的数据库更改,我会首先使用SQL跟踪/分析工具对这些更改进行分析,或者只是在关键的PROC/SQL上运行一些简单的测试,这些测试的执行支持所谓的“低性能”表单


  • 如果我没有弄错的话,在一些客户那里似乎很好,但在其他客户那里却不行,有人对你说它是.NET,VB6也很好,非常感谢。客户端之间的网络差异无疑是一个关键差异。服务器操作系统、交换机速度和网络基础设施等——需要探索的变量太多了。但我敢打赌,这与.NET与VB6无关。

    如果你说的是用VB 6.0和VB.NET编写的同一个客户端应用程序,那么VB 6.0应用程序很可能会更快地进入第一个屏幕(因为.NET JIT兼容和装配加载)。之后,性能应该大致相同


    问题是——在任何实际情况下——应用程序的架构都会有所不同,真正的性能比较没有意义,

    我需要提到的第一件事是.Net代码从来不会在VM中运行。虽然.Net程序被编译成IL(某种程度上类似于Java的字节码)是事实,但重要的区别在于,IL在应用程序启动之前也被编译成完全本机代码,而不是由VM解释

    转到.Net/VB6比较。我不能指出具体的数据,但从个人经验来看,这取决于你在做什么

    为了说明这一点,让我们考虑六个不同的基准测试应用程序,每个应用程序都有vb6和.Net版本。每个应用程序选择一个特定的操作,执行100000次,然后记录所用的时间。请注意,这是一个思维实验:我实际上还没有看到来自真实应用程序的结果。但我觉得我对这两个平台的优势和劣势都有感觉

    • 应用程序A执行一些严重的cpu密集型数字运算。在这种情况下,我不得不相信这里的结果几乎是一样的。VB6和.Net都编译为本机代码,因此cpu
      mult
      指令是相同的。这就是说,如果你不使用
      选项Strict
      ,你很快就会在任何一个平台上遇到麻烦。由于您使用了C#(本质上总是
      选项严格
      ),这可能会给您的.Net代码带来优势

    • 应用程序B退出并从数据库中检索值。同样,结果可能非常接近,但我不得不给.Net一个非常微小的优势,原因有两个:它使用本机sql客户端,据说速度要快一点,它还可以实现自动连接池等功能,并且可以更轻松地排除连接一次并重新使用该连接等功能,而不是重复连接。但是,如果你在代码方面对苹果进行比较,两者可能非常接近

    • 应用程序C反复显示和隐藏表单。在这里,我必须向vb6点头。它基于一个较旧的、不太炫目的小部件集,坦率地说,它的渲染成本更低。此外,WinForms组件的速度并不那么快。然而,差异可能并不像你想象的那么大,而且你也可能没有经常完全重画表单。这可能是您的用户抱怨的缓慢

    • 应用程序