chore: 更新 BenchMark 工程
This commit is contained in:
parent
d7d06e2185
commit
f1d0e1bee0
|
|
@ -2,14 +2,14 @@
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<TargetFramework>net9.0</TargetFramework>
|
<TargetFramework>net10.0</TargetFramework>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="BenchmarkDotNet" Version="0.13.2" />
|
<PackageReference Include="BenchmarkDotNet" Version="0.15.6" />
|
||||||
<PackageReference Include="BenchmarkDotNet.Annotations" Version="0.13.2" />
|
<PackageReference Include="BenchmarkDotNet.Annotations" Version="0.15.6" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
@ -20,6 +20,10 @@
|
||||||
<Content Include="..\..\..\data\ip2region_v4.xdb">
|
<Content Include="..\..\..\data\ip2region_v4.xdb">
|
||||||
<Link>IP2Region/ip2region_v4.xdb</Link>
|
<Link>IP2Region/ip2region_v4.xdb</Link>
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
<Content Include="..\..\..\data\ip2region_v6.xdb">
|
||||||
|
<Link>IP2Region/ip2region_v6.xdb</Link>
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,23 +7,41 @@ BenchmarkRunner.Run(typeof(Program).Assembly);
|
||||||
|
|
||||||
public class CachePolicyCompare
|
public class CachePolicyCompare
|
||||||
{
|
{
|
||||||
private static readonly string XdbPath = Path.Combine(AppContext.BaseDirectory, "IP2Region", "ip2region_v4.xdb");
|
private static readonly string XdbPathV4 = Path.Combine(AppContext.BaseDirectory, "IP2Region", "ip2region_v4.xdb");
|
||||||
private readonly ISearcher _contentSearcher = new Searcher(CachePolicy.Content, XdbPath);
|
private static readonly string XdbPathV6 = Path.Combine(AppContext.BaseDirectory, "IP2Region", "ip2region_v6.xdb");
|
||||||
private readonly ISearcher _vectorSearcher = new Searcher(CachePolicy.VectorIndex,XdbPath);
|
private readonly ISearcher _contentV4Searcher = new Searcher(CachePolicy.Content, XdbPathV4);
|
||||||
private readonly ISearcher _fileSearcher = new Searcher(CachePolicy.File,XdbPath);
|
private readonly ISearcher _vectorV4Searcher = new Searcher(CachePolicy.VectorIndex, XdbPathV4);
|
||||||
|
private readonly ISearcher _fileV4Searcher = new Searcher(CachePolicy.File, XdbPathV4);
|
||||||
|
private readonly ISearcher _contentV6Searcher = new Searcher(CachePolicy.Content, XdbPathV6);
|
||||||
|
private readonly ISearcher _vectorV6Searcher = new Searcher(CachePolicy.VectorIndex, XdbPathV6);
|
||||||
|
private readonly ISearcher _fileV6Searcher = new Searcher(CachePolicy.File, XdbPathV6);
|
||||||
|
|
||||||
private readonly string _testIpAddress = "114.114.114.114";
|
private readonly string _testIpV4Address = "114.114.114.114";
|
||||||
|
private readonly string _testIpV6Address = "240e:3b7:3272:d8d0:db09:c067:8d59:539e";
|
||||||
|
|
||||||
[Benchmark]
|
[Benchmark]
|
||||||
[BenchmarkCategory(nameof(CachePolicy.Content))]
|
[BenchmarkCategory(nameof(CachePolicy.Content))]
|
||||||
public void CachePolicy_Content() => _contentSearcher.Search(_testIpAddress);
|
public void ContentIpV4() => _contentV4Searcher.Search(_testIpV4Address);
|
||||||
|
|
||||||
[Benchmark]
|
[Benchmark]
|
||||||
[BenchmarkCategory(nameof(CachePolicy.VectorIndex))]
|
[BenchmarkCategory(nameof(CachePolicy.VectorIndex))]
|
||||||
public void CachePolicy_VectorIndex() => _vectorSearcher.Search(_testIpAddress);
|
public void VectorIndexIpV4() => _vectorV4Searcher.Search(_testIpV4Address);
|
||||||
|
|
||||||
|
|
||||||
[Benchmark]
|
[Benchmark]
|
||||||
[BenchmarkCategory(nameof(CachePolicy.File))]
|
[BenchmarkCategory(nameof(CachePolicy.File))]
|
||||||
public void CachePolicy_File() => _fileSearcher.Search(_testIpAddress);
|
public void FileIpV4() => _fileV4Searcher.Search(_testIpV4Address);
|
||||||
|
|
||||||
|
[Benchmark]
|
||||||
|
[BenchmarkCategory(nameof(CachePolicy.Content))]
|
||||||
|
public void ContentIpV6() => _contentV6Searcher.Search(_testIpV6Address);
|
||||||
|
|
||||||
|
[Benchmark]
|
||||||
|
[BenchmarkCategory(nameof(CachePolicy.VectorIndex))]
|
||||||
|
public void VectorIndexIpV6() => _vectorV6Searcher.Search(_testIpV6Address);
|
||||||
|
|
||||||
|
|
||||||
|
[Benchmark]
|
||||||
|
[BenchmarkCategory(nameof(CachePolicy.File))]
|
||||||
|
public void FileIpV6() => _fileV6Searcher.Search(_testIpV6Address);
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue