使用.NET 3.5编译器编译.NET 1.1 COM+组件代码时的性能提高

使用.NET 3.5编译器编译.NET 1.1 COM+组件代码时的性能提高,.net,compiler-construction,com+,.net,Compiler Construction,Com+,我需要使用企业服务以COM+组件的形式构建服务 服务正在运行。它获取一个字符串并进行拼写检查,然后返回一个字符串 我的问题是: 这个组件是在.NET1.1中编译的,但是我的环境很快就要改成.NET3.5了。 因此,如果我在.NET3.5(即2.0)中编译代码,我会有任何好处吗?只有在.NET3.5中编译才能改变性能吗 请记住,我没有使用任何.NET3.5功能,甚至没有使用WCF 感谢您的帮助。例如,CLR中进行了优化,库的启动速度更快,但很难说您是否会看到任何真正的速度差异。 字符串操作意味着内

我需要使用企业服务以COM+组件的形式构建服务

服务正在运行。它获取一个字符串并进行拼写检查,然后返回一个字符串

我的问题是:

这个组件是在.NET1.1中编译的,但是我的环境很快就要改成.NET3.5了。 因此,如果我在.NET3.5(即2.0)中编译代码,我会有任何好处吗?只有在.NET3.5中编译才能改变性能吗

请记住,我没有使用任何.NET3.5功能,甚至没有使用WCF


感谢您的帮助。

例如,CLR中进行了优化,库的启动速度更快,但很难说您是否会看到任何真正的速度差异。 字符串操作意味着内存分配意味着对垃圾收集器的压力,因此在3.5中应该更好一些


抱歉,您只能通过测试和测量才能得到真正的答案。

速度方面-可能需要注意的是,.Net 3.5甚至比1.1更大,因为它包含了诸如LINQ、WCF、CF、WPF等新技术

部署--.net 3.5将是一个不错的选择,因为最新的windows操作系统已经在其系统上提供了.net framework 3.0+功能


维护\未来注意事项-.net 3.5。现在在.Net 3.5上进行迁移会更好,因此,如果您需要对软件进行更改,您已经可以从更新的可用技术中获益…

如果您不更改代码,使用更新的功能,例如通用集合,则不会有太大的更改。大多数较新的操作系统都没有安装.NET1或1.1,并且使用.NET2运行时运行代码,而3.5也使用.NET2运行时。因此,您仍然应该受益于更好的jitting、互操作等功能,这些功能可能在较新版本的运行时中得到了增强


对于普通应用程序,可以在配置文件中指定应使用哪种框架版本,这样即使对于1/1.1应用程序,也可以强制使用.NET 2运行时。但是,不确定这是否以及如何适用于COM激活的东西。

加载程序集和JIT编译它们的代码在.NET 1.0中已经进行了大量优化。非常重要,因为它直接影响任何.NET应用程序的启动时间。2.0 CLR并没有显著改善这一点


但是.NET 3.5 SP1中对安全策略进行了更新。当程序集位置受信任时,不再检查程序集的强名称。确切的规则是。这可以使热启动速度加快40%。这是一个乐观的数字,YMMV。

如果您为.NET 3.5重新构建它,那么它将不会使用七年前的代码,而且它将被支持更长的时间。这在企业中可能很重要。是的。但是因为我不允许使用WCF和LINQ,而且这在我的解决方案中很有用,所以我想知道这有什么好处。感谢您的回复。如果您是根据3.5编译的,为什么不允许您使用LINQ?听起来像是高层管理层的FUD,没错。这就是为什么我说我没有改变1.1版的代码,所以没有使用2.0特性,也没有使用WCF.NET3.0或LINQ3.5。所以我不明白它的好处。3.5中的CLR可以运行1.1程序集,但如果我将其编译为3.52.0,实际上我认为这没有任何区别。我搜索的文档和评论只能说你仍然应该受益,但没有人解释如何受益或为什么受益。谢谢你的评论。