FsProfiler 0.3.2

dotnet add package FsProfiler --version 0.3.2                
NuGet\Install-Package FsProfiler -Version 0.3.2                
此命令 intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="FsProfiler" Version="0.3.2" />                
支持使用 PackageReference 的项目,将此 XML 节点复制到项目文件中以引用该包。
paket add FsProfiler --version 0.3.2                
#r "nuget: FsProfiler, 0.3.2"                
#r 指令可用于 F# Interactive 和多语言笔记本来 reference the package. 将此复制到交互式工具或脚本的源代码中。
// Install FsProfiler as a Cake Addin
#addin nuget:?package=FsProfiler&version=0.3.2

// Install FsProfiler as a Cake Tool
#tool nuget:?package=FsProfiler&version=0.3.2                

FsProfiler

NuGet Status

让您跟踪可定义代码片段的执行时间。

示例

处置分析器

DisposingProfiler 跟踪实例化和销毁之间花费的时间。它非常容易集成,不需要手动“停止”。

open System.Net
open System.Xml.Linq

let linkCountOnPage (url : string) =
    use dp = new DisposingProfiler "Analyzing site"
    use client = new WebClient()
    let html = 
        use __ = dp.StartSubtask "Downloading"
        client.DownloadString url
    let result =
        use __ = dp.StartSubtask "Parsing HTML"
        let doc = XDocument.Parse html
        let rec getATag (elements : XElement seq) =
            elements
            |> Seq.filter (fun c -> c.Name.LocalName = "a")
            |> Seq.append (
                elements 
                |> Seq.filter (fun c -> c.Name.LocalName <> "a") 
                |> Seq.collect (fun c -> c.Descendants () |> getATag))
        doc.Root.Descendants () |> getATag |> Seq.length
    result 

设置事件监听器。

open FsProfiler.Listeners

use tObs = new ObservableTaskListener ()

此监听器实现了 IObservable。您可以通过订阅此监听器来轻松观察已完成任务。最简单的方法是使用任务格式化程序之一。

open FsProfiler.Output

let asd = tObs.Subscribe (TaskPrinter.print)

执行代码

linkCountOnPage "https://github.com/ChrSteinert/FsProfier"

由于我们使用仅输出到控制台打印机的完成事件进行订阅,因此得到以下输出

Analyzing site
    Downloading
    --- 230ms
    Parsing HTML
    --- 460ms
--- 690ms
产品 兼容和额外计算的目标框架版本。
DOTNET net5.0已计算。 net5.0-windows已计算。 net6.0已计算。 net6.0-android已计算。 net6.0-ios已计算。 net6.0-maccatalyst已计算。 net6.0-macos已计算。 net6.0-tvos已计算。 net6.0-windows已计算。 net7.0已计算。 net7.0-android已计算。 net7.0-ios已计算。 net7.0-maccatalyst已计算。 net7.0-macos已计算。 net7.0-tvos已计算。 net7.0-windows已计算。 net8.0已计算。 net8.0-android已计算。 net8.0-browser已计算。 net8.0-ios已计算。 net8.0-maccatalyst已计算。 net8.0-macos已计算。 net8.0-tvos已计算。 net8.0-windows已计算。
.NET Core netcoreapp2.0已计算。 netcoreapp2.1已计算。 netcoreapp2.2已计算。 netcoreapp3.0已计算。 netcoreapp3.1已计算。
.NET Standard netstandard2.0兼容。 netstandard2.1已计算。
.NET Framework net461 已计算。 net462 已计算。 net463 已计算。 net47 已计算。 net471 已计算。 net472 已计算。 net48 已计算。 net481 已计算。
MonoAndroid monoandroid 已计算。
MonoMac monomac 已计算。
MonoTouch monotouch 已计算。
Tizen tizen40 已计算。 tizen60 已计算。
Xamarin.iOS xamarinios 已计算。
Xamarin.Mac xamarinmac 已计算。
Xamarin.TVOS xamarintvos 已计算。
Xamarin.WatchOS xamarinwatchos 已计算。
兼容目标框架
包含目标框架(在包中)
有关目标框架了解更多.NET Standard 的信息。

NuGet 包

该包未被任何 NuGet 包使用。

GitHub 仓库

该包未被任何流行的 GitHub 仓库使用。

版本 下载 最后更新
0.3.2 211 11/30/2023
0.3.1 92 11/30/2023
0.3.0 107 11/16/2023