问题标签 [plinq]
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.
.net - 如何使 PLINQ 在 .NET 4.0 beta 2 中产生更多并发线程?
在以前版本的 Parallel Extensions 中,您可以设置线程数:
但现在这种重载不再可用。现在怎么办?
c# - AsParallel 究竟是如何工作的?
对于下面的测试程序,它似乎没有做深蹲。这是因为我正在用一个小列表进行测试吗?
两个版本都需要 4 秒才能运行。
c# - 为什么 PLINQ 只使用两个线程?
假设我有一个 IO-bound 任务。我正在使用 WithDegreeOfParallelism = 10 和 WithExecution = ForceParallelism 模式,但查询仍然只使用两个线程。为什么?
我知道 PLINQ 通常会选择与我的核心数量相等的并行度,但为什么它忽略了我对更高并行度的具体要求?
entity-framework - 只读搜索功能。带有 POCO 和 Ef 4.0 的存储过程或 IQueryable
我们有一些搜索功能,可以从数据库返回数以万计的结果,尽管它只会获取需要显示的行,例如前 10 条记录。当请求下一页时,我们再次点击数据库。它根据一组变量搜索我们的数据库,然后可以细化此搜索,这将导致另一个数据库命中。查询相当复杂。
我们一直在寻找适合我们整体架构的不同方法。
第一种方法是使用存储过程,可能会填充实体列表。这个存储过程可能很快变得庞大而笨重,但性能会更好。
第二种方法是在 Entity Framework 4.0 中使用 Linq to Entites 或 Entity SQL,并在我们的概念层的代码中创建查询,并通过 IQueryable 填充 POCO 对象。这对我们有以下好处:
- 抽象:我们在应用程序的其他地方使用 EF,因此我们希望尽可能在抽象模型上进行搜索。
- 类型安全,我们可以在 IQueryable 上链接过滤器,以对象导向的方式干净地做我们想做的事情
我们对这种方法的主要关注是性能。我们希望利用 Parrlel LINQ to Entities 并能够在需要时投入更多硬件。对于更清洁的开发模式,小的性能损失是可以的。
我们很高兴听到人们对此的想法和建议......我们对很多这些技术都是新手,所以想听听人们的经验。
system.reactive - Reactive Framework、PLINQ、TPL 和并行扩展如何相互关联?
至少自 .NET 4.0 发布以来,微软似乎在支持并行和异步编程方面付出了很多努力,并且似乎出现了很多围绕此的 API 和库。尤其是最近到处都经常提到以下花哨的名字:
- 反应式框架,
- PLINQ(并行 LINQ),
- TPL(任务并行库)和
- 并行扩展。
现在它们似乎都是 Microsoft 产品,而且它们似乎都针对 .NET 的异步或并行编程场景。但目前尚不清楚它们中的每一个究竟是什么以及它们之间的关系。有些可能实际上是同一回事。
简而言之,任何人都可以直接说明什么是什么?
.net-4.0 - Parallel.ForEach 是否需要 AsParallel()
ParallelEnumerable
有一个静态成员AsParallel
。如果我有一个IEnumerable<T>
并且想要使用Parallel.ForEach
,这是否意味着我应该一直使用AsParallel
?
例如,这两个都正确吗(其他一切都相同)?
没有AsParallel
:
或与AsParallel
?
c# - 使用 PLINQ 返回 null
我有一个 IEnumerable 的扩展方法,它然后遍历集合,做它的业务,然后返回一个新的 IEnumerable。
我尝试使用 .AsParallel().ForAll() 使用 PLINQ,它显着加快了迭代速度(当然应该这样做)但是当返回集合时,该集合中通常有一些对象为空。
我假设这可能是因为它在所有“业务”有机会完成之前返回集合?如果我调试并放入断点,则没有空值。
我应该使用某种“等待此操作完成”的方法吗?
编辑:更清楚一点,forall 中有业务逻辑,修改属性等。有必要循环一个动作,而不是简单地选择一些东西。
c# - LINQ 之后的下一件大事是什么?
当 LINQ(语言集成查询)仍处于测试阶段时,我就开始使用它,更具体地说是 Microsoft .NET LINQ Preview(2006 年 5 月)。将近 4 年过去了,在这里,我们在许多项目中使用 LINQ 来完成最多样化的任务。
我什至基于 LINQ 编写了我的最后一个大学项目。你看我有多喜欢它。
LINQ 和最近的 PLINQ(并行 LINQ)极大地促进了我们的工作,因为它具有更强的编程能力和更少的代码行,从而使我们获得更具表现力和可读性的代码。
我一直在思考 LINQ 之后 C# 的下一个重大语言改进是什么。
我知道有一些有前途的语言功能作为代码合同等出现,但没有什么能产生 LINQ 的影响。
你认为下一件大事可能是什么?
c# - PLINQ 延迟执行
考虑到延迟执行,我试图了解并行性如何使用 PLINQ 工作。这是一个简单的例子。
使用 LINQ,我希望执行达到“收据”值并返回 true,而不执行其余值的查询。
如果我们并行执行此操作,“relief”的评估可能在“receipt”的结果返回之前就开始了。但是一旦查询知道“receipt”会产生一个真实的结果,其他线程会立即让步吗?
就我而言,这很重要,因为“任何”测试可能非常昂贵,我想释放处理器以执行其他任务。
linq - 在 pLinq 查询中使用会话状态
我有一个相当简单的 Linq 查询(简化代码):
产品是一类。Product.Price 是一个子类, GrossPrice 是它的属性之一。为了计算出我需要使用 Session("exchange_rate") 的价格。
因此,对于 lstProductList 中的每个项目,都有一个执行以下操作的函数:
(然后 GrossPrice 返回 NetPrice+VatAmount)
无论我尝试了什么,我都无法访问会话状态。
我已经尝试过 HttpContext.Current - 但没有返回任何内容。我已经在类上尝试了实现 IRequiresSessionState(这有助于通用 http 处理程序 [.ashx] 中的类似情况) - 没有运气。
我正在使用简单的 InProc 会话状态模式。汇率必须是用户特定的。
我能做些什么?
我正在使用:Web 开发、.Net 4、VB.net
一步一步:
page_load (in .aspx)
dim objSearch as new SearchClass()
dim output = objSearch.renderProductsFound()
然后在 objSearch.renderProductsFound:
lstProductList.Add(objProduct(1))
...
lstProductList.Add(objProduct(n))
dim x = 从 lstProductList.AsParallel 中的产品
按 Product.Price.GrossPrice 降序选择产品
在 Product.Price.GrossPrice 中获取:
返回 me.NetPrice+me.VatAmount
在 Product.Price.NetPrice 中获取:
return NetBasePrice*Session("exchange_rate")
再次,简化代码,这里粘贴太多了。如果我将查询解包到 For 循环中,则工作正常。