问题标签 [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.

0 投票
2 回答
2201 浏览

.net-3.5 - 我在哪里可以获得 VS 2008 的 Plinq?

由于它与框架集成,因此该包似乎已从网络上删除。有人可以指向我可以下载它并将其与我的 .net 3.5 应用程序一起使用的下载站点吗?

0 投票
3 回答
1179 浏览

c# - 比较 i4o 与 PLINQ 以获取更大的集合

我有一个问题想问任何有 i4o 或 PLINQ 经验的人。我有一个需要查询的大对象集合(大约 400K)。逻辑非常简单明了。例如,有一个 Person 对象的集合,我需要找到与相同 firstName、lastName、datebirth 或 FirstName/lastname 的首字母等匹配的人员。使用 LINQ to Object 只是一个耗时的过程。

我想知道如果 i4o (http://www.codeplex.com/i4o )

或 PLINQ 可以帮助提高查询性能。哪一个更好?如果有任何方法。

谢谢!

0 投票
2 回答
736 浏览

c# - Plinq 给出了与 Linq 不同的结果——我做错了什么?

谁能告诉我正确的 Plinq 代码是什么?我将双精度数组的每个元素的正弦绝对值的平方根相加,但 Plinq 给了我错误的结果。

该程序的输出是:

Linq 聚合 = 75.8310477905274(正确) Plinq 聚合 = 38.0263653589291(大约应该是一半)

我一定是做错了什么,但我不知道是什么...

(我在 Core 2 Duo Windows 7 x64 PC 上使用 Visual Studio 2008 运行它。)

这是代码:

0 投票
3 回答
1505 浏览

linq - F# 和 PLINQ 扩展方法

在深入研究 F# 的最新版本时,我尝试让它与 PLINQ 交互。然而,我注意到两者在代码方面并没有很好地结合在一起。事实上,编写如下代码似乎是不可能的:

因为 System.Linq.ParallelEnumerable 类中包含的 ParallelQuery 的扩展方法似乎没有被 F# 采用。
如果根本不支持扩展方法,我不会感到惊讶,但是由于我可以访问为 IEnumerable 定义的 someArray.Count 扩展方法,我想知道为什么我不能访问 PLINQ 的扩展方法。
我错过了什么吗?
这是 F# 限制吗?如果是这样,是通过设计吗?如果没有,是否会在未来的版本中解决?

0 投票
2 回答
312 浏览

.net-4.0 - 执行和生成子任务时结果不一致

我有一些简单的代码,其中主线程正在创建一个新任务。该任务又会产生多个子任务。主线程对父任务执行“等待”。我观察到在程序的多次运行中我没有得到相同的输出。在下面的代码中,我打印出每个任务中迭代变量的值,但在不同的运行中,只有子集被打印出来。我知道执行没有顺序,但它仍然必须完成,因为我希望打印出 100 个数字(没有特定顺序)。调用 Wait 不会等待所有子任务完成吗?我正在运行 VS2010 Team 系统 Beta1

0 投票
1 回答
1072 浏览

c# - PLINQ 问题/实现多线程、无锁列表的技术(在 C# 中)

这是有问题的代码:

在运行时,该代码偶尔会在 levelNodes 中留下空引用。我怀疑这是由于线程锁定造成的,因为如果调用普通(非并行)ForEach 代替 ForAll,问题就会消失。

使用 PLINQ 实现,'levelNodes.Add(child);' 有时还会抛出 IndexOutOfRangeException 消息:“源数组不够长。检查 srcIndex 和长度,以及数组的下限。”

有什么建议可以消除这个问题吗?
或者使用无锁列表实现可能会提高性能?(怎么可能呢?)

0 投票
1 回答
1755 浏览

.net - NUnit 测试 PLINQ 代码后如何防止 AppDomainUnloadedException?

如何诊断和最小化或预防AppDomainUnloadedException

NUnit 2.5.2AppDomainUnloadedException在涉及 PLINQ 的长时间(>10 秒)测试后始终抛出异常。

早在 2008 年 7 月,Stephen Toub 说

是的,CTP 中的调度程序不能很好地处理线程中止,当正在关闭的域中存在实时调度程序时,这经常会导致进程崩溃(因为 AppDomain 关闭会导致该域中具有堆栈帧的所有线程上的线程中止)。我们正在努力为未来的版本加强这一点。

我尝试了许多解决方法,包括:

  • 以单独的方法运行测试以消除杂散引用
  • 指定/domain:None为 NUUnit 参数
  • 从中删除legacyUnhandledAppDomainPolicy元素nunit-console.exe.config

我不能降级 NUnit 以降低竞争条件的几率,因为我需要 PLINQ 来使我的参数测试更快。没有问题的 NUnit 版本不支持参数测试。

0 投票
4 回答
1014 浏览

c# - 多核机器上 .NET 操作的非线性缩放

我在 .NET 应用程序中遇到了一个奇怪的行为,该应用程序对一组内存数据执行一些高度并行处理。

当在多核处理器(IntelCore2 Quad Q6600 2.4GHz)上运行时,它表现出非线性缩放,因为启动了多个线程来处理数据。

当在单核上作为非多线程循环运行时,该进程每秒能够完成大约 240 万次计算。当作为四个线程运行时,您会期望吞吐量是原来的四倍——大约每秒 900 万次计算——但很可惜,没有。在实践中,它每秒只能完成大约 410 万次……与预期的吞吐量相比,还差很多。

此外,无论我使用 PLINQ、线程池还是四个显式创建的线程,都会发生这种行为。很奇怪...

机器上没有使用 CPU 时间运行其他任何东西,计算中也没有任何锁或其他同步对象......它应该只是提前撕开数据。我已经通过在进程运行时查看 perfmon 数据确认了这一点(尽可能)......并且没有报告线程争用或垃圾收集活动。

我目前的理论:

  1. 所有技术(线程上下文切换等)的开销使计算不堪重负
  2. 线程没有被分配给四个核心中的每一个,而是花一些时间在同一个处理器核心上等待......不知道如何测试这个理论......
  3. .NET CLR 线程没有以预期的优先级运行,或者有一些隐藏的内部开销。

以下是应表现出相同行为的代码的代表性摘录:

0 投票
2 回答
337 浏览

c# - 在 C# 中反序列化 PLINQO 对象的问题

我尝试了很多方法来反序列化 LINQO 对象,但每种方法都失败了。这是最后一个代码的示例。

但我现在收到以下错误。

“SalesNetData.Country”类型无法序列化为 JSON,因为其 IsReference 设置为“True”。JSON 格式不支持引用,因为没有用于表示引用的标准化格式。要启用序列化,请禁用类型或该类型的适当父类的 IsReference 设置。

请帮忙.....

0 投票
5 回答
19442 浏览

c# - 究竟什么是 PLINQ?

PLINQ 作为 LINQ 的扩展添加到 .NET 4.0 框架中。

  • 它是什么?
  • 它解决了哪些问题?
  • 什么时候合适,什么时候不合适?