未来 F# 是否有可能比其他 .Net 语言得到更多优化?

2024-02-26

Microsoft 是否有可能使 F# 程序在 VM 执行时或更可能在编译时检测到程序是使用函数式语言构建的并自动更好地并行化它?

现在我相信没有这样的努力来尝试和自动执行作为单线程程序构建的程序作为多线程程序。

也就是说,开发人员将编写一个单线程程序。编译器会生成一个编译后的程序,该程序是多线程的,在需要时带有互斥体和同步。

这些优化在任务管理器的进程线程计数中是否可见,或者是否会低于该级别?


我认为这在不久的将来不太可能发生。如果确实发生,我认为更有可能发生在 IL 级别(程序集重写)而不是语言级别(例如 F#/编译器特有的东西)。这是一个有趣的问题,我希望一些聪明的人已经在关注这个问题,并将继续关注这个问题一段时间,但在短期内,我认为重点将放在让人类更容易地指导这个问题上。程序的线程化/并行化,而不是像魔术一样让这一切发生。

(语言特征如F# 异步工作流程 http://blogs.msdn.com/dsyme/archive/2007/10/11/introducing-f-asynchronous-workflows.aspx,以及像这样的图书馆任务并行库及其他 http://blogs.msdn.com/pfxteam/default.aspx,是近期进展的好例子;它们可以为您完成大部分繁重的工作,特别是当您的程序更具声明性而不是命令性时,但它们仍然需要程序员选择加入,对正确性/意义进行分析,并且可能对代码结构进行轻微的更改使一切顺利。)

无论如何,这都是猜测;谁能预测未来会发生什么?我期待着找到答案(并希望能够实现其中一些)。 :)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

未来 F# 是否有可能比其他 .Net 语言得到更多优化? 的相关文章

  • Letrec 有什么好处?

    在阅读 老练的阴谋家 时 我开始了解letrec 我理解它的作用 可以用 Y Combinator 复制 但这本书正在使用它来代替已经重复出现的内容defined 函数对保持静态的参数进行操作 使用旧函数的示例defined 函数本身重复出
  • Common Lisp 中的重复元素 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我尝试创建一个函数two argum
  • 将java线程分布在多个服务器上?

    我对 java 很陌生 并且非常喜欢学习它 我编写了一个运行良好的程序 但当我添加更多数据来处理时 它会花费一些时间 我把它做成了线程化 它确实加快了很多速度 但现在我正在考虑尝试加快它的速度 显然 它需要处理的数据越多 所需的时间就越长
  • 如何让 Either Monads 了解异步函数(Promises/Future)

    我正在尝试使用 Either Monad 来传输数据 问题是我无法弄清楚如何让我的 Monad 意识到异步操作 这是我所拥有的 let processData Either either sendError sendResponse pro
  • Python:对于优化问题,使用多处理比循环慢得多。我究竟做错了什么?

    必须保证在发布此内容之前我已经阅读了有关该主题的许多帖子 我知道多重处理需要固定成本 但据我所知 这似乎不是这里的问题 我基本上有许多单独的优化问题 并且想要并行解决它们 下面的代码是一个简单的例子 import psutil import
  • Coq:Type(n) 中的 Prop 与 Set

    我想考虑以下三个 相关的 Coq 定义 Inductive nat1 Prop z1 nat1 s1 nat1 gt nat1 Inductive nat2 Set z2 nat2 s2 nat2 gt nat2 Inductive nat
  • Haskell - 让函数返回空字符

    我正在尝试创建一个函数来删除字符串中的每个第 n 个元素 dropEvery String gt Int gt String dropEvery str n map char indx gt if indx mod n 0 then cha
  • 可移植类库和.NET ConcurrentDictionary

    看着http msdn microsoft com en us library dd287191 v vs 110 aspx http msdn microsoft com en us library dd287191 v vs 110 a
  • 使用 OpenMP 并行嵌套循环运行缓慢

    我有一个 fortran 程序的一部分 其中包含一些嵌套循环 我想将其与 OpenMP 并行化 integer nstates N i dima dimb dimc a row b row b col c row row col doubl
  • 如何加速 pandas 字符串函数?

    我正在使用 pandas 矢量化 str split 方法来提取从 上的拆分 返回的第一个元素 我还尝试使用 df apply 与 lambda 和 str split 来产生等效的结果 使用 timeit 时 我发现 df apply 的
  • 将 for 循环转换为 java 8 流

    我正在研究 Java 8 将这个 for 循环转换为 Java 8 Stream 时遇到了一些麻烦 for int y 0 y lt 5 y for int x y x lt 10 x 2 System out println x y 请帮
  • 如何编写基于线程的并行列表迭代?

    我需要一个如何使用 ocaml 线程编写并行 iter 函数的示例 我的第一个想法是有一个与此类似的函数 let procs 4 let rec part part i lst match lst with gt hd tl gt let
  • 计算图像 (M, N) 和模板 (3, 3) 之间的平方差和以进行模板匹配的更快方法?

    我正在实现一种纹理合成算法 如下所示here http graphics cs cmu edu people efros research NPS alg html 为此 我需要计算平方差之和 这是一个估计之间误差的指标template以及
  • 在 JavaScript 中使用 Array.map 删除元素

    我想使用以下方法过滤一系列项目map 功能 这是一个代码片段 var filteredItems items map function item if some condition return item 问题是过滤掉的项目仍然使用数组中的
  • 并行执行按位运算的代码

    我有这段代码 通过将该 AU 矩阵的每个字节 8 个元素打包到 A 中来减少内存消耗 从而使 100k 200k 矩阵占用更少的空间 正如您所期望的 这段代码需要永远运行 我也计划将行数增加到 200k 我正在一个非常强大的实例 CPU 和
  • 以向量化方式将两个维度为 5 的数组相乘

    我在 MATLAB 中有一个三维域 对于域中的每个点 我定义了三个大小的数组 NX NY NZ 在域的每个点 A1 size A1 NX NY NZ A2 size A2 NX NY NZ A3 size A3 NX NY NZ 对于每个元
  • 将嵌套 for 循环转换为 R 中的并行循环

    下面您可以在 R 中找到一段代码 我想将其转换为使用多个 CPU 作为并行进程运行 我尝试使用foreach包 但并没有走得太远 考虑到我有 3 级嵌套循环 我找不到一个很好的例子如何让它工作 我们将非常感谢您的帮助 下面的代码示例 我做了
  • multidplyr :将函数分配给集群

    参见下面的工作解决方案 我想使用 multidplyr 并行化函数 calculs R f lt function x return x 1 main R library dplyr library multidplyr source ca
  • Numpy 相当于 if/else 不带循环

    有没有任何Pythonic方法可以删除下面代码中的for循环和if else 此代码迭代 NumPy 数组并检查条件并根据条件更改值 gt gt gt import numpy as np gt gt gt x np random rand
  • F# 按索引数组切片数组

    如何重载 F 数组的 以根据任意索引数组对数组进行切片 例如 let x 1 10 let indx 4 1 虽然 for i in indx gt x i 会起作用 如果能够使用就更好了x indx 直接地 您始终可以编写 F 扩展方法来

随机推荐

  • 将自定义侦听器添加到 Kotlin 类的正确方法

    我是 Kotlin 菜鸟 第三天 正在尝试向我的班级添加一个侦听器 我目前正在使用 lambda 如下例所示 它们工作得很好 Declare callback class Controller var onAction gt Use cal
  • 有符号和无符号整数表达式的比较

    我刚刚开始使用 OpenGL 这是我的第一个代码 OpenGL hello program include
  • 如何确定复选框列表已选中/选中 -

    当我执行代码时 我得到 4 个复选框 并且我选中 选择了所有 4 个复选框 当我尝试调试代码时 它确实算作我有 4 个复选框 但所有 4 个复选框都被选中 false 我在代码中缺少什么
  • 检测项目中的循环依赖

    上次我在我的项目中发现了循环依赖问题 我解决了我的问题 但是我希望将来避免这种情况 我想到了在我的所有项目中发现循环依赖项并给我反馈的插件 Example 文件a js var functionFromA require b js cons
  • 如何增加 SwiftUI 选择器中显示的最大行数?

    我正在尝试创建一个 SwiftUI 选择器 用户可以使用它来选择 1000 到 20000 之间的数字 以 1000 为增量 例如 1000 2000 3000 20000 默认情况下 SwiftUI 选择器只能容纳 10 行文本 如何允许
  • 保存数据的最佳方法 - 首选项、sqlite、可序列化还是其他?

    我一直在研究在回合之间保存游戏数据的替代方法 并且想知道是否有人可以为我指明正确的方向 我有大约 32k 的数据必须在 onPause 期间保存 由于数据量巨大 我排除了偏好 我花了几天时间研究 SQLite 但无法在不到两秒的时间内保存数
  • Shellcode:执行 2 次 execve() 调用

    我正在尝试用汇编语言编写 shellcode 我需要执行一个 usr bin killall命令与 usr bin wget命令 我的两个命令都在 shellcode 中完美运行execve 系统调用 但现在我想将这两个结合起来 但这是不可
  • 在 Node.js 中从 SQLite 获取表列表

    下面的代码仅返回第一个表的名称 如何获取现有表中所有可用表名称的列表sqlite const sqlite3 require sqlite3 verbose const db new sqlite3 Database path to myd
  • 如何提高 OpenMP 代码的性能?

    我目前正在尝试提高我的代码的并行性能 但我对 OpenMP 仍然是新手 我必须迭代一个大容器 在每次迭代中从多个条目读取并将结果写入单个条目 下面是我正在尝试做的一个非常简单的代码示例 data是一个指向数组的指针 其中存储了许多数据点 在
  • 使用 pip 安装 Twisted for Python:错误:Microsoft Visual Studio 失败,退出状态为 2

    当我尝试在运行 python3 7 的 Windows 10 计算机上安装 python 包 Twisted 时 我无法从 tarz 文件构建 Wheel 最终得到以下输出 C Program Files x86 Microsoft Vis
  • 如何使用 knit 和 pandoc 在 R Markdown 中包含 DT 数据表的 js 依赖项

    有没有办法在 RStudio 之外使用 DT 生成的数据表来编译 RMarkdown 文档 我试图在 RMarkdown 文档中包含一个数据表小部件 然后我想使用 knit 和 pandoc 将其转换为 html 这对于 RStudio 来
  • Datetime.ParseExact“字符串未被识别为有效的日期时间”错误

    为什么我无法解析这样的字符串 DateTime date DateTime ParseExact 23 02 2016 08 59 35 dd MM yyyy HH mm ss CultureInfo InvariantCulture 它抛
  • 如何将下面的JS转换为JQuery? [复制]

    这个问题在这里已经有答案了 我很难将以下 JS 转换为 JQuery 我的项目有一个 HoverMediv 将其悬停在其中以显示其中的内容 hidden div 我有一个运行良好的 JS 脚本 这个问题 作者 anied https sta
  • 如何将 Laravel 7 连接到 Microsoft SQL Server?

    我真的很惊讶 Laravel 文档对于解释如何连接到 MS SQL Server 的限制 我认为有两个区域需要配置 env 文件和database php 与 Laravel 7 相比 网络上的大多数示例都没有显示相同的格式 我想知道在哪里
  • 优化编译器中的常量组合

    我有一个包含许多小型内联函数的头文件 他们中的大多数碰巧拥有恒定的数据 由于这些函数对性能至关重要 因此它们处理常量的方式变得很重要 AFAIK 有两种方法来引用常量 1 在稍后与应用程序链接的单独源文件中定义它们 2 就地定义常量 我会选
  • Powershell 转换为 Json 格式错误

    我正在使用 win shell 将 powershell 输出转换为 json 格式 以便稍后可以对其进行过滤 问题是我的 Json 格式很糟糕 这是代码 win shell Get ChildItem Path
  • Java FileWriter如何写入下一行

    我使用下面的代码将记录写入文件 记录可以写入文件中 但附加在一行中 每次我调用此方法示例 你好世界你好世界你好世界你好世界 如何修改代码 使输出如下所示 以便在读取文本时我可以使用 line hasNextLine 进行检查 你好世界你好世
  • 最新的(开源)聊天机器人/假人工智能?

    开源聊天机器人 假人工智能 技术 的最新进展是什么 ELIZA ALICE MegaHAL 仍然是 当前 吗 或者在过去十年中是否取得了任何进展 ChatScript 是我发现的用于开发会话代理的最佳开源工具 BSD 许可证 https g
  • 动态添加内容到面板

    可能是我的 javascript 能力不够 我正在尝试将列表 通过 javascript 添加项目 动态增强到 jquery 移动面板 下面的代码是该功能的工作 非工作 示例 完整的项目会有点太多的开销 并且您需要一些串行连接的设备来运行它
  • 未来 F# 是否有可能比其他 .Net 语言得到更多优化?

    Microsoft 是否有可能使 F 程序在 VM 执行时或更可能在编译时检测到程序是使用函数式语言构建的并自动更好地并行化它 现在我相信没有这样的努力来尝试和自动执行作为单线程程序构建的程序作为多线程程序 也就是说 开发人员将编写一个单线