- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
无论出于何种原因,我们看到销毁弱指针的成本相当高。这是罪魁祸首代码:
~weak_count() // nothrow
{
if(pi_ != 0) pi_->weak_release(); // Consumes a huge chunk of our time.
#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
id_ = 0;
#endif
}
我们没有处于 Debug模式,调试 Hook 也没有启用。弱释放消耗了非常多的时间。这是一个已知的问题?我们做错了什么吗?
boost 版本:1.36
编译器:VS2008 编译器套件。
不幸的是,由于各种原因,我们被锁定在这个 Boost 版本中,所以我更想知道这些奇怪的支出是否可以在新版本上重复,或者代表已知不良做法的结果。我们只销毁了大约 500k 个弱指针,与销毁类似数量的原始指针相比,这不会在性能上产生明显的差异。当然不会增加 2.5-4 倍的成本。请注意,我们并没有删除上述指针所针对的对象。这笔费用完全来自指针本身的销毁。
这是怎么回事?
最佳答案
weak_ptr
需要类似 shared_ptr
的东西来实现自己——因为它需要能够确定指针是否仍然存在,它需要有一个引用计数结构维护它自己的引用计数的地方。
即,weak_ptr
如何确定对象是否仍然存在,除非引用计数以某种方式保持可用以供它访问? :)
如果您实际上不需要使用 weak_ptr< 来获取一段代码的所有权,那么您可以绕过原始指针而不是
.weak_ptr
/
关于c++ - boost Weak_Ptr : Destruction is more expensive than expected,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4474699/
这篇文章的更通用的标题是 MySql Sum different columns in same table based on value of another row, group by yet a
我收到“昂贵的方法调用”和“空值比较昂贵”的警告,我想知道如何解决这些问题。 void Update() { CheckCollision(); }
这主要是出于好奇。 我最近处理的一些 VHDL 代码中的一个片段类似于以下内容: led_q <= (pwm_d and ch_ena) when pwm_ena = '1' else ch_ena;
我经常看到人们在 GoogleIO 或 WWDC 上谈论如何在移动设备上绘制屏幕(位/像素)如此昂贵。谁能解释这是为什么? 最佳答案 因为像素绘图不使用任何图形加速硬件。例如,Java 中的像素绘图是
考虑以下类: public class Person { public String FirstName; public String LastName; public Dat
我最近偶然发现了一个有趣的问题,我想知道我的解决方案是否是最优的。 You are given an array of zeros and ones. The goal is to return th
下面哪段代码的开销更大? x = my_array.inject {|sum,i| int+=i } 或 x = eval(my_array.join('+')) 最佳答案 试试看: #!/usr/l
我将 AVPlayerViewController(就资源而言是昂贵的)嵌入到 UIViewController 中(使用包含)。我需要在导航堆栈中随后推送的 View Controller 中使用另
我想在一个紧密的循环中每秒调用它数千次。通话费贵吗?我正在使用 Windows Visual C++。 最佳答案 这是一个老问题,但我还是会回答,以防有其他人在寻找答案。 所以我们有一个日志库,它使用
刚刚看了一个电动云的demo,很有意思,但是很贵。 亲:优秀的功能 - 从我的作品中提取秘诀,并通过可重复使用的步骤使它们更加标准化 - 并行构建以加快速度并更有效地使用我的构建农场 - 从任何步骤重
我已经阅读了很多关于线程和所有涉及的同步机制的 Material 。我也理解不正确操作的危险。 我刚看了this PDC 2009 关于并行和并发的视频,这里再次提到“锁是一项昂贵的操作”。我现在在各
标题几乎概括了这一点,当读取 iPhone 应用程序的 NSUserDefaults 中存储的数据时,是否需要考虑任何性能? 是否有什么我遗漏的,或者从 NSUserDefaults 中读取的内容是微
我创建了一些非常简单的 Azure 函数。他们从 Couchbase(在 VM 上的 Azure 中运行)读取和写入数据。 我担心在 Azure Function 中与 Couchbase 建立的连接
我正在添加一些服务器端表单验证(使用 php),以防我网站的用户之一关闭了 javascript。在一种表单上,有 10 个可以更改的单独输入字段。有人可以告诉我哪种协议(protocol)会使用更少
假设我有这样的设置: Bla Yada 和这个样式定义: .toolbar { background-color: red; } 我实际上想要在 2 个“工具栏”之间有一个 2 像
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 7 年前。 Improve this qu
人们说这很贵是什么意思?我为中间存储创建了许多临时对象的实例(NSString 和 NSDate 是典型的)。我怎么知道我的程序对 NSDateFormatter 的使用是否过度? 到目前为止,我倾向
我很喜欢这个程序。有人可以告诉我我做错了什么吗?该程序提示用户输入产品目录中的产品数量。然后程序应提示用户输入产品目录中每个产品的名称和价格。输入所有产品后,程序应输出目录中最昂贵产品的产品信息(名称
我已阅读 here在 StackOverflow 上,每次您在 JavaSound 中播放剪辑时,它都会在幕后创建一个线程来播放它。如果这是真的(如果不是,请告诉我,因为我没有找到任何相关的文档/来源
在模拟器上进行性能分析时,我注意到每次在 NSUserDefaults 中保存一个 NSNumber 都需要很长时间,每个实例大约需要 600 毫秒。这是正常的吗?我有大约 5 个这样的对象需要保存,
我是一名优秀的程序员,十分优秀!