Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 编写F#报价:性能?_Performance_F# - Fatal编程技术网

Performance 编写F#报价:性能?

Performance 编写F#报价:性能?,performance,f#,Performance,F#,我有一个可以操作的F#引号(我在任何地方添加对象池,以回收经常创建和删除的短期对象)。我想运行结果报价;现在,我已经使用了F#PowerPack,它提供了将引号转换为表达式树的方法和将引号转换为委托的方法,我运行了这些方法。由于无法访问生成的代码,我想知道: -编译代码的性能如何?是否存在未删除的反射层,或者它是真正的编译 我可以看到生成的代码并在上面使用.Net Reflector吗 谢谢:)这是一个没有答案的问题,但在性能方面,只有您才能知道您真正的性能要求是什么。您是否有特定的目标运行

我有一个可以操作的F#引号(我在任何地方添加对象池,以回收经常创建和删除的短期对象)。我想运行结果报价;现在,我已经使用了F#PowerPack,它提供了将引号转换为表达式树的方法和将引号转换为委托的方法,我运行了这些方法。由于无法访问生成的代码,我想知道:

-编译代码的性能如何?是否存在未删除的反射层,或者它是真正的编译

  • 我可以看到生成的代码并在上面使用.Net Reflector吗

谢谢:)

这是一个没有答案的问题,但在性能方面,只有您才能知道您真正的性能要求是什么。您是否有特定的目标运行时间?你试过运行编译后的报价吗?够快吗?你有没有把它与一个本机编写的F#函数进行比较


关于最后一个问题,我不知道有什么简单的方法可以在Reflector中查看内存中的程序集。但是,F#PowerPack的源代码是可用的,因此您可以阅读它以查看引用的编译方式。

上次我查看时,性能非常糟糕,大约比F#慢50倍,甚至比一个简单的解释器还要慢

坦率地说,我不明白他们为什么不把F#编译器本身作为运行时服务(和FSI)公开。F#如果他们做了


编辑:昨晚我对运行斐波那契函数的报价进行了基准测试,它实际上慢了700倍

如果您要测量性能,那么性能分析器肯定是更好的方法吗?是的,最终性能太差了,我为源函数编写了自己的引用,并编译了它。我同意你的看法,F#具有惊人的元编程能力,需要良好的编译/运行设施来认真地表达其潜力。@Giuseppe Maggiore:是的,问题不仅仅是“编译/运行”到解析,一个F#应该优秀的领域,但由于没有IDE支持的不完整工具,以及由于同样缺乏运行时执行而不存在任何更高级的工具(如在线解析器生成器),因此目前很糟糕。@Giuseppe Maggiore:FWIW,我已经取得了很好的效果,只是直接编译到CIL以供动态执行,而不是使用引用。是的,但是直接编译到CIL很麻烦。我总是将一切都与Haskell中的元编程进行比较:如果写起来要困难几个数量级,那么有些东西就真的错了:)