问题标签 [eager]

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.

0 投票
2 回答
669 浏览

ruby-on-rails - Rails 4 急切加载多个表

我正在尝试使用 5 个表加载结果:

在 MeetingController.rb 中:

我正在尝试使用 include(:bookings) 但根据bullet-gem急切加载不起作用。在我看来,我称之为这条线:

我得到了多 52 行这段代码,这显然意味着我并不急于加载任何数据:

子弹日志:

任何想法我应该做什么?

0 投票
0 回答
121 浏览

android - OrmLite - 动态改变渴望的水平

目前,我通过在我的对象中设置注释,为所有查询静态设置外部集合的渴望级别。

有没有办法动态设置这个急切级别,这取决于我正在做的查询。我希望它不要将渴望级别始终设置为 true。我只在一些特殊查询中需要这个。

问候托比

编辑: 没有答案是否意味着这是不可能的,或者是否意味着没有人知道答案?

0 投票
2 回答
2600 浏览

jsf - 在 JSF22 中替换 @ManagedBean(eager=true)

我正在寻找一种解决方案来替换@ManagedBean(eager=true)JSF 2.2 中的注释。

我很好地记录了一些建议,例如允许在应用程序启动时执行代码。

但是我需要访问FacesContext,所以这个解决方案不起作用:FacesContext.getCurrentInstance()此时仍然为空。

我试图AfterDeploymentValidation在 SPI 中找到替代品,但一无所获。

由于 DeltaSpike 的开发人员似乎不打算实施替代方案,@ManagedBean(eager=true)而且 OmiFaces 还不支持这种解决方案,请参阅。我在一个瓶子里发送一条消息。

目前,我只是在我的 webapp 通用 xhtml 标头中访问@ManagedScoped(eager=true)转换为 的 bean @Named,但它有点难看。

0 投票
0 回答
222 浏览

scala - 懒惰渴望并行值,有可能吗?

标题是对的,我什么都想要。

  • 在急切评估中,总是在分配完成后立即评估功能。
  • 在惰性求值中,直到需要该值时才执行此操作,但随后它是一个阻塞操作,就像在急切求值中一样,但延迟了。
  • 我希望有一些东西可以急切地同时开始评估(而不是阻塞),直到需要该值。

我知道这有点奇怪,所以我做了一个说明性的要点

它在这个例子中完美运行,并且惰性渴望值的计算似乎是免费的,而其他两个值每个需要 10 秒。当然,事情正在另一个线程中发生,依此类推,但我对此很好,我只是想在需要时有一些选择来做这样的事情。

我一直在考虑以更优雅的方式来定义它,函数注释等。最后我发现的唯一可能性是,它在 Scala (AFAIK) 中不可用。

有什么方法可以优雅地做到这一点,或者我写的东西是优雅的吗?

PD:只是为了更清楚。这就是做我想做的事情所需要的:

这就是我想做的:

我不是隐式的忠实粉丝,但也许添加这是我们能得到的最好的。

0 投票
1 回答
1252 浏览

scala - 懒人急图评测

在 Scala 中评估地图基本上有两种选择。

  • 当需要下一个值时,惰性求值计算作为参数传递的函数。如果函数需要一小时才能执行,那么在需要该值时等待一小时。(例如StreamIterator
  • 急切评估在定义地图时计算函数。它生成一个新列表(Vector或其他)并存储结果,使程序在那段时间很忙。
  • 我们可以在单独的线程Future中获取列表(Seq或其他),这意味着我们的线程不会阻塞,但必须存储结果。

所以我做了一些不同的事情,请在这里查看

这是前一段时间,所以我不记得我是否测试过。关键是要有一个映射同时(非阻塞)和急切地应用于一组元素,填充缓冲区(计算机中核心数量的大小,而不是更多)。这意味着:

  1. 映射的调用不会阻塞当前线程。
  2. 获取元素不会阻塞当前线程(以防之前有时间计算它并将结果存储在缓冲区中)。
  3. 可以处理无限列表,因为我们只预取几个结果(大约 8 个,取决于内核的数量)。

所以这一切听起来都很好,你可能想知道问题出在哪里。问题是这个解决方案不是特别优雅的恕我直言。假设我共享的代码在 Java 和/或 Scala 中工作,要遍历 map 生成的可迭代对象中的元素,我只需要编写:

但是我想写的是这样的:

正如 Scala 中常见的那样('b' 用于缓冲),或者类似:

它们中的任何一个都对我有用。所以问题是,我怎样才能在 Scala 中以惯用的方式做到这一点?一些选项:

  • Monads:创建一个新的集合“缓冲”,这样我就可以使用 toBuffered 方法(应该作为隐式添加到以前的方法中)并实现map这个缓冲的东西以及其他所有东西(听起来像是相当多的工作)。
  • Implicits:创建一个隐式方法,将通常的集合或它们的超类(我不确定它应该是哪个,Iterable也许?)转换为我可以应用该.bmap方法并从中获取某些东西的其他东西,可能是可迭代的。
  • 其他:到目前为止,我可能还没有考虑很多选项。有可能某些库已经实现了这一点(我实际上对相反的情况感到惊讶,我不敢相信以前没有人想到这一点)。使用已经完成的东西通常是一个好主意。

如果有不清楚的地方,请告诉我。

0 投票
3 回答
1954 浏览

cakephp - Cakephp 3 动态构建包含

如何在新的 cakephp 3 查询构建器中动态构建包含。这就是我现在所拥有的:

但是我遇到了几个错误:

0 投票
1 回答
942 浏览

c - 强制 MPI_Send 使用 Eager 或 Rendezvouz 协议

我正在用 C 语言为大学的一个研讨会做一个小的 MPI (openmpi) 程序。我们的目标是观察 MPI 的两个主要协议(eager 和rendezvous)在消息大小方面的时间差异。

我们之前没有使用过 MPI,并且我们认为可能有一种方法可以在两种协议之间进行“选择”。在谷歌上搜索有关如何操作的信息,我发现(我不记得的地方)存在急切的限制。我读到它是由 MPI 实现设置的,而且您可以以某种方式更改它。

关于如何在协议之间进行选择的任何建议?协议和 MPI_Send/MPI_Isend 之间有什么关系吗?

我认为更改接收器缓冲区大小将打破渴望并开始使用集合点。但这只是一种预感。

这是我现在的代码:

谢谢你的建议。

0 投票
1 回答
790 浏览

nhibernate - NHibernate iStatelessSession 在急切获取时返回重复的父实例

我正在尝试获取一个根实体并渴望获取它的子实体。但是因为我使用的IStatelessSession是 NHibernate,所以它会为每个孩子返回根实体的副本。使用 ISession 可以解决

但对于一个IStatelessSession它不是。

基本上是关于下面的代码,其中只有一个 Parent 实例,拥有 3 个 Childs。

这将返回 3 个重复的 Parent 实例,而不仅仅是一个。有人对此有解决方案吗?

0 投票
5 回答
3001 浏览

php - Laravel Eloquent 急切加载不同的连接

我正在尝试使用 Laravel Eloquent ORM 在两个不同的连接上建立简单的一对一关系。

假设我这样做:

那工作正常。

当我做 :

我收到一个错误,因为 eloquent 正在对默认连接(而不是“secondary_connection”)执行 AnotherModel SELECT 语句。

我找不到解决这个问题的方法。

我的模型定义明确,因为我可以将它们加入我的默认连接中。

想法?

0 投票
1 回答
741 浏览

scala - Try 可以在 Scala 中变得懒惰或渴望吗?

AFAIK,Iterator.map是懒惰而Vector.map渴望,主要是因为它们是不同类型的单子。

我想知道是否有任何机会让 aEagerTryLazyTry它的行为就像currentTry一样,但是后者 ( LazyTry) 延迟了闭包的执行,直到需要结果(如果需要)。

请注意,lazy在 Scala 中将内容声明为不太适用,特别是它适用于给定范围。传递参数时存在另一种选择(按名称传递参数)。问题是如何在将(惰性)值返回到外部范围时实现惰性行为。Option基本上是长度为 0 或 1 的集合,这将是惰性集合 ( Iterator, Sequence) 的等效情况,但长度限制为 0 或 1 (如Optionand Either)。我特别感兴趣Try,即LazyTry完全按照Try将要使用的方式使用。我想这在其他情况下应该是类似的(OptionEither)。

请注意,我们已经有了EagerTry,因为当前的标准Try是急切的。不幸的是,这个类是密封的,因此,要拥有同一个类的渴望和惰性版本,我们需要定义它们中的三个并实现它们中的两个(而不是定义和实现一个)。重点是返回 aTry而没有其他软件层担心该代码的执行时间,即抽象。