问题标签 [objectspace]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 无法隐式转换类型“DevExpress.Xpo.XPCollection”
我正在尝试创建一个返回 XPcollection 的过程,如下所示:
但我收到以下错误:
ruby - 为什么 Ruby 2.1 的 ObjectSpace.dump_all 堆输出中缺少文件名和行?
我最近使用新的ObjectSpace.dump_all方法分析了一堆 Ruby 2.1.2 代码。我取回了一些有用的数据(使用@tmm1 在该链接中建议的脚本):
我的问题是:为什么在我们看不到文件名或行号(最后六行)的地方分配了这么多对象?似乎我的问题与很多字符串有关,考虑到这个应用程序的功能,这绝对是有道理的。但不知道这些字符串是从哪里构建的意味着我无能为力。
当应用程序启动时,我正在运行ObjectSpace.trace_object_allocations_start
,远在我尝试分析的操作之前。我肯定会GC.start
在每次调用ObjectSpace.dump_all
. 我正在调用.dump_all
一些 Sidekiq 中间件,该中间件以类似于@krasnoukhov 的帖子的方式转储每 100 个工作。
我想我真正的问题是,这里是否有人足够了解 Ruby 对象分配来解释为什么ObjectSpace
可能不知道这些对象的来源STRINGs
?
谢谢!
编辑:我使用的代码与@Krasnoukhov 的博客中的代码几乎相同
ruby-on-rails - 使用 ObjectSpace 在验证链中查找父 ActiveRecord 是个好主意吗?
考虑以下模型:
目标是确保Child
不能在没有父级的情况下创建,即Father
. 现在,如果父亲尝试以Child
嵌套形式创建,Child
则在验证验证时Father
尚未收到 ID,因此验证将失败。一种建议的解决方案是使用ObjectSpace
如下:
在验证链中使用ObjectSpace
(例如)是一个好主意吗?Father
是否存在另一个偶然同时被创造Father
出来ObjectSpace
并且有一个与所讨论的属性完全相同的孩子的孩子Child
?
ruby - Ruby反射是否可以检索包含对某些“var.object_id”的引用的所有对象?
假设在 Ruby 中我有a = "value"; arr1 = [a, b, c];
并且arr2 = [a, d, e];
是否有一些反射性编程技术可以让我说:
引用的所有对象是
a.object_id
什么?
并得到类似的答案:
object_id:123123 (数组)
object_id:234234(数组)
jruby - ObjectSpace 在 jruby 中是否仍然被禁用?
在 jruby 9.1.5.0 (2.3.1) 中 ObjectSpace 是否仍然被禁用?
如果不仅仅是我的安装(Arch Linux,最新)有错误,我怀疑 ObjectSpace 在最近的 jruby 中发生了变化:尝试重现jruby 的关于性能的 wiki 条目中描述的行为,我得到以下反应:
那么最新情况如何呢?现在是否安全/推荐在现代 jruby 中使用 OpenSpace?
ruby-on-rails - ObjectSpace.each_object(Foo).count
我试图弄清楚ObjectSpace.each_object
在控制台中:
我看过一些例子,我知道第二个计数应该是 0。
有什么想法吗?
谢谢。
ruby-on-rails - Ruby ObjectSpace 对象分配跟踪的解释?
我正在尝试调试 Rails 应用程序中的内存泄漏,并且我正在尝试使用ObjectSpace#trace_object_allocations获取现有对象的转储。
为了让我更好地理解输出,我想我应该完全理解输出 JSON 行的含义:
是否有任何参考可以解释此 JSON 对象中项目的确切含义?
特别是,我对以下含义感兴趣:
- 班级
- 嵌入式
- 字节大小
- 一代
- 旗帜
- wb_protected
- 老的
- 无法收藏
- 标记
c - 如何在没有 rb_string_eval 的情况下使用 C API 调用 ObjectSpace.each_object?
我目前正在尝试获取一个类的所有实例,我想用它ObjectSpace.each_object
来实现这一点。
这是我在 C 中的实际代码:
但是,我不知道这是否真的是一件好事。我想rb_funcall
改用,这可能是一种更清洁的方法。
我的问题是:
- 比使用更好
rb_funcall
吗string_eval
?(我认为是因为解析器) - 由于似乎不存在,如何
ObjectSpace
在 C API 中检索模块?rb_mObjectSpace