出于好奇,我曾经见过像
但是,首先,为什么要在懒惰 facet 周围加上
boost::to_lower
这样的函数性能下降,因为在分配懒惰 facet 时使用了 std::use_facet
中的 CriticalSection
。据我记得,全局锁定区域存在一个错误,但根据 Stephan Lavavej 的说法,这个问题在 VS2013 中已经修复了。然而,昨天我看到 facet 上的这个锁杀死了服务器的性能,所以我想我可能混淆了两个不同的问题。
但是,首先,为什么要在懒惰 facet 周围加上
CriticalSection
?显然它会破坏性能。为什么他们没有采用一些可升级的锁或指针上的原子操作来解决这个问题呢?