首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从Microsofts到STLport的切换

从Microsofts到STLport的切换
EN

Stack Overflow用户
提问于 2009-03-02 21:22:34
回答 6查看 12.4K关注 0票数 15

我在windows下的性能关键型C++代码中使用了相当多的STL。获得额外性能的一种可能的“廉价”方法是改用更快的STL库。

根据这一点,post STLport速度更快,使用的内存更少,但它只有几年的历史。

最近有没有人做了这样的改变,你的结果是什么?

EN

回答 6

Stack Overflow用户

发布于 2009-03-03 15:19:05

在进行切换之前,请确保在关闭checked iterators的情况下测试MS (实际上是Dinkumware)库。由于一些奇怪的原因,它们在默认情况下是打开的,甚至在发布版本中也是如此,这在性能方面有很大的不同。

票数 9
EN

Stack Overflow用户

发布于 2010-06-04 20:15:06

我们最近做了相反的任务。我们的应用程序是一个跨平台的C++服务器程序,它是在WindowsVS2008 (x86)上构建的,在HP-UX ia64和Linux上构建,使用gcc 4.3。在每个平台上,我们都使用STLport 5.1.7作为STL库,并使用Boost 1.38。

为了比较性能,不久前我们还在没有使用STLport的情况下构建了应用程序,之后我们测量了性能。

在此之后,在Windows上的性能略有改善。因此,我们选择停止在VS2008中使用STLport,而使用默认的VS2008STL库。

在HP-UX ia64上,性能下降了20%。Caliper ( HP-UX分析器)显示字符串分配需要更多时间。在默认的gcc STL库中的字符串赋值中,有对pthread_mutex_unock的调用。据我所知,之所以使用pthread_mutex_lock/pthread_mutex_unlock,是因为默认的gcc的STL库使用的是COW-string。在我们的应用程序中,我们进行了大量的字符串赋值,由于使用了COW字符串,性能变差了。因此,我们仍然在HP-UX上使用STLPort,与gcc一起使用。

票数 6
EN

Stack Overflow用户

发布于 2009-03-03 05:51:17

在我参与的一个大量使用stl的项目中,切换到STLport只用了微软STL实现的一半时间。这不是证据,但我想这是性能的一个好兆头。我相信这在一定程度上要归功于STLport的高级内存管理系统。

我确实记得在进行此更改时收到了一些警告,但没有任何不能快速解决的问题。作为一个缺点,我想补充说,使用Visual Studio的调试器调试STLport不如使用微软的STL容易(更新:似乎有一种方法可以向调试器解释如何处理STLport容器,谢谢Jalf !)。

最新的版本可以追溯到2008年10月,所以仍然有人在开发它。有关下载,请参阅here

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/604050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档