- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我目前正在使用 Valgrind 的“Callgrind”分析一个存在性能问题的应用程序。在查看分析数据时,似乎有 25% 的处理时间花在 boost::detail::get_tss_data
的应用程序中,其主要目的是物理模拟和可视化。
get_tss_data
显然是由 thread_specific_ptr::get
有人认为这是预期的吗?它通常是否暗示其他特定的东西?
编辑:
我的平台是:Linux-2.6.32、x86、GCC 4.4.3、libc6-2.11.1/libpthread-2.11.1
最佳答案
thread_specific_ptr
将 pthread_setspecific
/pthread_getspecific
用于 POSIX 系统,这不是最快的。
如果您使用的是 POSIX 系统,则可以使用 __thread
存储说明符。但是,它只能与常量表达式的初始化程序一起使用,例如 gcc's __thread
对于 Windows,类似的说明符是 _declspec(thread)
。
关于c++ - 是否预计 boost::thread_specific_ptr<>::get() 的使用会很慢?有什么解决办法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5398987/
//代码片段1 static boost::thread_specific_ptr StreamThreadSpecificPtr; void thread_proc() { StreamX
为什么我们需要 boost::thread_specific_ptr,或者换句话说,没有它我们不能轻易做什么? 我可以明白为什么 pthread 提供 pthread_getspecic() 等。这些
我想使用 boost::thread_specific_ptr 但需要知道将什么添加到我的 gcc v3.4.6 链接行以定义它使用什么: /usr/include/boost/thread/tss.
我想知道是否有一种方法可以在不更改 ptr 访问类型的情况下解决以下问题。 class A { private: static boost::thread_specific_ptr ptr;
我正在阅读 the documentation section for boost::thread_specific_ptr ,并尝试解析这段: Note: on some platforms, cl
这个问题可能看起来很奇怪。我想这样做是因为我们有一些代码需要在多个平台上构建,但有些平台不支持 thread_local,然后改用 boost::thread_specific_ptr。然而,为每个平
为什么编译g++4.6和g++4.7会失败?我正在尝试获取字符串到线程特定存储的映射。我相信我在 boost 1.48 中有类似的东西。其实和boost的版本无关,和标志-std=c++0x有关。如果
如果多线程应用程序被 exit(x) 或从 main 中“返回”终止——处理程序的执行顺序是什么? 由 atexit 注册的处理程序 pthread_key_create/thread_specifi
我目前正在使用 Valgrind 的“Callgrind”分析一个存在性能问题的应用程序。在查看分析数据时,似乎有 25% 的处理时间花在 boost::detail::get_tss_data 的应
我有一个名为 WCThreadSpecificPrivateData 的小类。它的实现: class WCThreadSpecificPrivateData { public: WCThrea
Ubuntu 19 在 Docker 中运行 海湾合作委员会8.3 boost 1.69 Valgrind 3.14.0 当应用程序关闭时,Valgrind 报告以下 3 个问题: ==70== Mi
我是一名优秀的程序员,十分优秀!