@@ -0,0 +1,31 @@ | |||||
using BenchmarkDotNet.Attributes; | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.IO; | |||||
using System.Linq; | |||||
using System.Reflection; | |||||
using System.Text; | |||||
using System.Threading.Tasks; | |||||
namespace Tensorflow.Benchmark.Leak | |||||
{ | |||||
public class SavedModelCleanup | |||||
{ | |||||
[Benchmark] | |||||
public void Run() | |||||
{ | |||||
var modelDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); | |||||
var ClassifierModelPath = Path.Combine(modelDir, "Leak", "TestModel", "saved_model"); | |||||
for (var i = 0; i < 1000; i++) | |||||
{ | |||||
var session = Session.LoadFromSavedModel(ClassifierModelPath); | |||||
session.graph.Exit(); | |||||
session.graph.Dispose(); | |||||
session.Dispose(); | |||||
} | |||||
} | |||||
} | |||||
} |
@@ -44,4 +44,20 @@ | |||||
<ProjectReference Include="..\TensorFlowNET.Keras\Tensorflow.Keras.csproj" /> | <ProjectReference Include="..\TensorFlowNET.Keras\Tensorflow.Keras.csproj" /> | ||||
</ItemGroup> | </ItemGroup> | ||||
<ItemGroup> | |||||
<Folder Include="Leak\TestModel\saved_model\assets\" /> | |||||
</ItemGroup> | |||||
<ItemGroup> | |||||
<None Update="Leak\TestModel\saved_model\saved_model.pb"> | |||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> | |||||
</None> | |||||
<None Update="Leak\TestModel\saved_model\variables\variables.data-00000-of-00001"> | |||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> | |||||
</None> | |||||
<None Update="Leak\TestModel\saved_model\variables\variables.index"> | |||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> | |||||
</None> | |||||
</ItemGroup> | |||||
</Project> | </Project> |