问题标签 [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.
ruby-on-rails - Rails 4 急切加载多个表
我正在尝试使用 5 个表加载结果:
在 MeetingController.rb 中:
我正在尝试使用 include(:bookings) 但根据bullet-gem急切加载不起作用。在我看来,我称之为这条线:
我得到了多 52 行这段代码,这显然意味着我并不急于加载任何数据:
子弹日志:
任何想法我应该做什么?
android - OrmLite - 动态改变渴望的水平
目前,我通过在我的对象中设置注释,为所有查询静态设置外部集合的渴望级别。
有没有办法动态设置这个急切级别,这取决于我正在做的查询。我希望它不要将渴望级别始终设置为 true。我只在一些特殊查询中需要这个。
问候托比
编辑: 没有答案是否意味着这是不可能的,或者是否意味着没有人知道答案?
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
,但它有点难看。
scala - 懒惰渴望并行值,有可能吗?
标题是对的,我什么都想要。
- 在急切评估中,总是在分配完成后立即评估功能。
- 在惰性求值中,直到需要该值时才执行此操作,但随后它是一个阻塞操作,就像在急切求值中一样,但延迟了。
- 我希望有一些东西可以急切地同时开始评估(而不是阻塞),直到需要该值。
我知道这有点奇怪,所以我做了一个说明性的要点。
它在这个例子中完美运行,并且惰性渴望值的计算似乎是免费的,而其他两个值每个需要 10 秒。当然,事情正在另一个线程中发生,依此类推,但我对此很好,我只是想在需要时有一些选择来做这样的事情。
我一直在考虑以更优雅的方式来定义它,函数,注释等。最后我发现的唯一可能性是宏,它在 Scala (AFAIK) 中不可用。
有什么方法可以优雅地做到这一点,或者我写的东西是优雅的吗?
PD:只是为了更清楚。这就是做我想做的事情所需要的:
这就是我想做的:
我不是隐式的忠实粉丝,但也许添加这是我们能得到的最好的。
scala - 懒人急图评测
在 Scala 中评估地图基本上有两种选择。
- 当需要下一个值时,惰性求值计算作为参数传递的函数。如果函数需要一小时才能执行,那么在需要该值时等待一小时。(例如
Stream
和Iterator
) - 急切评估在定义地图时计算函数。它生成一个新列表(
Vector
或其他)并存储结果,使程序在那段时间很忙。 - 我们可以在单独的线程
Future
中获取列表(Seq
或其他),这意味着我们的线程不会阻塞,但必须存储结果。
所以我做了一些不同的事情,请在这里查看。
这是前一段时间,所以我不记得我是否测试过。关键是要有一个映射同时(非阻塞)和急切地应用于一组元素,填充缓冲区(计算机中核心数量的大小,而不是更多)。这意味着:
- 映射的调用不会阻塞当前线程。
- 获取元素不会阻塞当前线程(以防之前有时间计算它并将结果存储在缓冲区中)。
- 可以处理无限列表,因为我们只预取几个结果(大约 8 个,取决于内核的数量)。
所以这一切听起来都很好,你可能想知道问题出在哪里。问题是这个解决方案不是特别优雅的恕我直言。假设我共享的代码在 Java 和/或 Scala 中工作,要遍历 map 生成的可迭代对象中的元素,我只需要编写:
但是我想写的是这样的:
正如 Scala 中常见的那样('b' 用于缓冲),或者类似:
它们中的任何一个都对我有用。所以问题是,我怎样才能在 Scala 中以惯用的方式做到这一点?一些选项:
- Monads:创建一个新的集合“缓冲”,这样我就可以使用 toBuffered 方法(应该作为隐式添加到以前的方法中)并实现
map
这个缓冲的东西以及其他所有东西(听起来像是相当多的工作)。 - Implicits:创建一个隐式方法,将通常的集合或它们的超类(我不确定它应该是哪个,
Iterable
也许?)转换为我可以应用该.bmap
方法并从中获取某些东西的其他东西,可能是可迭代的。 - 其他:到目前为止,我可能还没有考虑很多选项。有可能某些库已经实现了这一点(我实际上对相反的情况感到惊讶,我不敢相信以前没有人想到这一点)。使用已经完成的东西通常是一个好主意。
如果有不清楚的地方,请告诉我。
cakephp - Cakephp 3 动态构建包含
如何在新的 cakephp 3 查询构建器中动态构建包含。这就是我现在所拥有的:
但是我遇到了几个错误:
c - 强制 MPI_Send 使用 Eager 或 Rendezvouz 协议
我正在用 C 语言为大学的一个研讨会做一个小的 MPI (openmpi) 程序。我们的目标是观察 MPI 的两个主要协议(eager 和rendezvous)在消息大小方面的时间差异。
我们之前没有使用过 MPI,并且我们认为可能有一种方法可以在两种协议之间进行“选择”。在谷歌上搜索有关如何操作的信息,我发现(我不记得的地方)存在急切的限制。我读到它是由 MPI 实现设置的,而且您可以以某种方式更改它。
关于如何在协议之间进行选择的任何建议?协议和 MPI_Send/MPI_Isend 之间有什么关系吗?
我认为更改接收器缓冲区大小将打破渴望并开始使用集合点。但这只是一种预感。
这是我现在的代码:
谢谢你的建议。
nhibernate - NHibernate iStatelessSession 在急切获取时返回重复的父实例
我正在尝试获取一个根实体并渴望获取它的子实体。但是因为我使用的IStatelessSession
是 NHibernate,所以它会为每个孩子返回根实体的副本。使用 ISession 可以解决
但对于一个IStatelessSession
它不是。
基本上是关于下面的代码,其中只有一个 Parent 实例,拥有 3 个 Childs。
这将返回 3 个重复的 Parent 实例,而不仅仅是一个。有人对此有解决方案吗?
php - Laravel Eloquent 急切加载不同的连接
我正在尝试使用 Laravel Eloquent ORM 在两个不同的连接上建立简单的一对一关系。
假设我这样做:
那工作正常。
当我做 :
我收到一个错误,因为 eloquent 正在对默认连接(而不是“secondary_connection”)执行 AnotherModel SELECT 语句。
我找不到解决这个问题的方法。
我的模型定义明确,因为我可以将它们加入我的默认连接中。
想法?
scala - Try 可以在 Scala 中变得懒惰或渴望吗?
AFAIK,Iterator.map
是懒惰而Vector.map
渴望,主要是因为它们是不同类型的单子。
我想知道是否有任何机会让 aEagerTry
和LazyTry
它的行为就像currentTry
一样,但是后者 ( LazyTry
) 延迟了闭包的执行,直到需要结果(如果需要)。
请注意,lazy
在 Scala 中将内容声明为不太适用,特别是它适用于给定范围。传递参数时存在另一种选择(按名称传递参数)。问题是如何在将(惰性)值返回到外部范围时实现惰性行为。Option
基本上是长度为 0 或 1 的集合,这将是惰性集合 ( Iterator
, Sequence
) 的等效情况,但长度限制为 0 或 1 (如Option
and Either
)。我特别感兴趣Try
,即LazyTry
完全按照Try
将要使用的方式使用。我想这在其他情况下应该是类似的(Option
和Either
)。
请注意,我们已经有了EagerTry
,因为当前的标准Try
是急切的。不幸的是,这个类是密封的,因此,要拥有同一个类的渴望和惰性版本,我们需要定义它们中的三个并实现它们中的两个(而不是定义和实现一个)。重点是返回 aTry
而没有其他软件层担心该代码的执行时间,即抽象。