Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 在Ruby/RoR中更快地处理嵌套对象_Arrays_Ruby On Rails_Ruby_Parallel Processing_Sitemap - Fatal编程技术网

Arrays 在Ruby/RoR中更快地处理嵌套对象

Arrays 在Ruby/RoR中更快地处理嵌套对象,arrays,ruby-on-rails,ruby,parallel-processing,sitemap,Arrays,Ruby On Rails,Ruby,Parallel Processing,Sitemap,我必须创建一个数组,该数组可以包含所有可能的对象组合(例如,每个对象可以包含超过10k的记录)。我在下面写了三个对象,但实际代码包含8个对象(不是3个) 我的代码的问题是速度非常慢,需要几个小时才能完成。我还尝试使用find_each和parallel,但在嵌套的each循环中无法使用它。我想知道是否有人知道如何让我的代码运行得更快 target_objects=%w[地市级车站]。每个带有_object([])的_都有| obj_名称,arr| arr10k记录。。 使用枚举器 (1..tar

我必须创建一个数组,该数组可以包含所有可能的对象组合(例如,每个对象可以包含超过10k的记录)。我在下面写了三个对象,但实际代码包含8个对象(不是3个)

我的代码的问题是速度非常慢,需要几个小时才能完成。我还尝试使用find_each和parallel,但在嵌套的each循环中无法使用它。我想知道是否有人知道如何让我的代码运行得更快

target_objects=%w[地市级车站]。每个带有_object([])的_都有| obj_名称,arr|
arr10k记录。。
使用枚举器

(1..target_objects.size).flat_map{|size| target_objects.combination(size) }

要问自己的第一个问题是,这是否应该在数据库中使用视图之类的东西来完成。在Ruby中处理大量记录不会以任何方式扩展,而且无论发生什么情况都会很慢。感谢您的回复!我需要创建一个对象数组,以使用创建站点地图URL的现有方法创建站点地图。所以我想没有别的办法了,只能接受它会很慢。你是说你的表中有超过10k的记录,想找到所有可能的8级深度的组合?当我让你正确的话,那么有大约10000**8组合。超过一百万。这可能不符合记忆。对我来说,这听起来像是一场灾难。能否请您详细说明为什么要这样做,以及您尝试归档的内容?谢谢您的建议,我知道有太多的组合和使用太多的内存,即使是批处理。但是我需要使用一个现有的方法,该方法只能从站点地图的对象创建永久链接(我无法更改该方法的任何逻辑)。这就是为什么我认为我只能选择在数组中创建所有可能的组合,然后将其传递给方法。