我用C#3.5和4.0执行了以下代码.结果完全不同.
static void Main()
{
int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
List<IEnumerable<int>> results = new List<IEnumerable<int>>();
foreach (var num in numbers)
{
results.Add(numbers.Where(item => item > num));
}
foreach (var r in results)
{
Console.WriteLine("{0}", r.Count());
}
}
Run Code Online (Sandbox Code Playgroud)
使用Microsoft(R)Visual C#2008编译器版本3.5.30729.5420,输出为0 0 0 0 0 0 0 0 0 0.
但是使用Microsoft(R)Visual C#Compiler版本4.0.30319.17929输出9 8 7 6 5 4 3 2 1 0.
我有一个微弱的想法,这是因为延迟执行或延迟评估,但还没有清楚地理解它是如何负责不同的输出在这里.
更正:对不起,它是.NET 3.5和4.5,还添加了编译器版本 请解释.
我想在RHEL 4.x上安装sun jdk 6
yum install java-1.6.0-sun-devel但是发现我必须订阅补充服务器通道.我怎么做?
提前致谢!
据我所知,cudaMallocManaged通过消除主机和设备上显式内存分配的需要,简化了内存访问.考虑主机内存明显大于设备内存的情况,例如16 GB主机和2 GB设备,这些现在相当常见.如果我正在处理从外部数据源读取的大尺寸输入数据,例如4-5 GB.我是否被迫采用明确的主机和设备内存分配(因为设备内存不足以同时容纳)或者CUDA统一内存模型是否有办法解决这个问题(例如,根据需要自动分配/解除分配)?