小编Kei*_*son的帖子

好的F#性能分析工具

任何人都可以推荐具有良好F#支持的性能分析工具吗?

我一直在使用Visual Studio 2010分析器,但在使用F#时我发现了一些问题.感觉更像是我在反射之后分析字节代码而不是原始的F#.

例如,在分析以下略显人为的示例时:

let Add a b = 
    a + b

let Add1 = Add 1

let rec MultiAdd count = 
    match count with
    | 1 -> 1
    | _ -> (Add1 1) + (MultiAdd (count - 1))

MultiAdd 10000 |> ignore
Run Code Online (Sandbox Code Playgroud)

我得到以下调用树:

CallTree

当我在功能详细信息中查看Microsoft.FSharp.Core.FSharpFunc`2.Invoke(0)时,我看到: 功能细节

我理解我所看到的是基于已编译代码的底层实现,虽然我可以遵循它,但它很难实现.

有没有人有使用F#的其他分析工具的经验,他们是否能更好地映射到原始的F#代码?

performance f# profiling

18
推荐指数
1
解决办法
2606
查看次数

F#Performance Profiler仪器不工作

我有一个Visual Studio项目,其中包含一个引用F#类的C#windows应用程序.当我在检测模式下运行Visual Studio 2010性能分析器时,除了C#应用程序调用它之外,我没有得到F#类的检测信息.

当我在采样模式下运行时它工作正常.

我尝试在VS2012中运行该项目并得到同样的问题.

如何让Visual Studio显示F#类的检测信息?

f# profiling visual-studio-2010

5
推荐指数
1
解决办法
314
查看次数

如何打破 F# 中的函数依赖性?

我想对 fun1 进行单元测试而不调用 fun2。

\n\n
let fun2() =\n    // Some complex function with lots of dependencies.\n    1\n\nlet fun1() =\n    fun2() * 2\n
Run Code Online (Sandbox Code Playgroud)\n\n

打破两个函数之间的依赖关系的最佳方法是什么?

\n\n

我\xe2\x80\x99尝试了几种不同的方法,但它们只会增加混乱。

\n\n

将 fun2 传递给 fun1

\n\n
let fun1(fun2) =\n    fun2() * 2\n
Run Code Online (Sandbox Code Playgroud)\n\n

转换为类并覆盖

\n\n
type FunClass() =\n    abstract member fun2 : unit -> int\n    default x.fun2() = 1\n\n    member x.fun1() =\n        x.fun2() * 2\n\ntype FunClassMock() =\n    override member x.fun2() = 1\n
Run Code Online (Sandbox Code Playgroud)\n\n

使用策略模式

\n\n
type Fun1Class(fun2Class) =\n\n    member x.fun1() =\n       fun2Class.fun2() * 2\n …
Run Code Online (Sandbox Code Playgroud)

f# unit-testing

5
推荐指数
1
解决办法
217
查看次数

Sql批量复制截断十进制

当我使用批量复制从C#DataTable向Sql Server 2005插入十进制值时,值被截断而不是舍入.

  • DataTable中的数据类型是Decimal.
  • 数据库中的数据类型是十进制(19,3)
  • DataTable中的值为1.0005
  • 数据库中的值插入是1.000(我预计1.001)

我正在使用的代码非常简单:

var bulkCopy = new SqlBulkCopy(connection, SqlBulkCopyOptions.Default, null) { DestinationTableName = tableName};
bulkCopy.WriteToServer(dataTable);
Run Code Online (Sandbox Code Playgroud)

有谁知道如何解决这一问题?

c# sql database sql-server datatable

5
推荐指数
1
解决办法
2803
查看次数

如何让NavigateUri在WPF窗口中工作?

mailto链接在此示例中不起作用:

<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <TextBlock>Please email
        <Hyperlink NavigateUri="mailto:test@test.co.uk">test@test.cp.uk</Hyperlink>
    </TextBlock>
</Window>
Run Code Online (Sandbox Code Playgroud)

如果我将Window更改为UserControl,它可以工作.

有人可以帮忙吗?

c# wpf xaml

0
推荐指数
1
解决办法
3027
查看次数