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
NuGet 团队不支持此客户端。请 联系其维护者 以获取支持。
#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
NuGet 团队不支持此客户端。请 联系其维护者 以获取支持。
FsProfiler
让您跟踪可定义代码片段的执行时间。
示例
处置分析器
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 已计算。 |
-
.NETStandard 2.0
- FSharp.Core (>= 8.0.100)
NuGet 包
该包未被任何 NuGet 包使用。
GitHub 仓库
该包未被任何流行的 GitHub 仓库使用。