mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			68 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Forth
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Forth
		
	
	
	
	
	
| namespace Nessos.FsPickler.Tests
 | |
| 
 | |
|     open PerfUtil
 | |
|     open PerfUtil.NUnit
 | |
| 
 | |
|     open NUnit.Framework
 | |
| 
 | |
|     open Nessos.FsPickler
 | |
|     open Nessos.FsPickler.Json
 | |
| 
 | |
|     [<AbstractClass>]
 | |
|     type PerfTester () =
 | |
|         inherit NUnitPerf<Serializer> ()
 | |
| 
 | |
|         let tests = PerfTest.OfModuleMarker<PerformanceTests.Marker> ()
 | |
| 
 | |
|         override __.PerfTests = tests
 | |
| 
 | |
| 
 | |
|     type ``Serializer Comparison`` () =
 | |
|         inherit PerfTester()
 | |
| 
 | |
|         let fsp = FsPickler.initBinary()
 | |
|         let bfs = new BinaryFormatterSerializer() :> Serializer
 | |
|         let ndc = new NetDataContractSerializer() :> Serializer
 | |
|         let jdn = new JsonDotNetSerializer() :> Serializer
 | |
|         let bdn = new JsonDotNetBsonSerializer () :> Serializer
 | |
|         let pbn = new ProtoBufSerializer() :> Serializer
 | |
|         let ssj = new ServiceStackJsonSerializer() :> Serializer
 | |
|         let sst = new ServiceStackTypeSerializer() :> Serializer
 | |
| 
 | |
|         let comparer = new WeightedComparer(spaceFactor = 0.2, leastAcceptableImprovementFactor = 1.)
 | |
|         let tester = new ImplementationComparer<_>(fsp, [bfs;ndc;jdn;bdn;pbn;ssj;sst], throwOnError = true, warmup = true, comparer = comparer)
 | |
| 
 | |
|         override __.PerfTester = tester :> _
 | |
|         
 | |
| 
 | |
|     type ``FsPickler Formats Comparison`` () =
 | |
|         inherit PerfTester ()
 | |
| 
 | |
|         let binary = FsPickler.initBinary()
 | |
|         let json = FsPickler.initJson()
 | |
|         let bson = FsPickler.initBson()
 | |
|         let xml = FsPickler.initXml()
 | |
| 
 | |
|         let tester = new ImplementationComparer<_>(binary, [json ; bson; xml], warmup = true, throwOnError = false)
 | |
| 
 | |
|         override __.PerfTester = tester :> _
 | |
| 
 | |
| 
 | |
|     type ``Past FsPickler Versions Comparison`` () =
 | |
|         inherit PerfTester ()
 | |
| 
 | |
|         let persistResults = true
 | |
|         let persistenceFile = "fspPerf.xml"
 | |
| 
 | |
|         let fsp = FsPickler.initBinary()
 | |
|         let version = typeof<FsPickler>.Assembly.GetName().Version
 | |
|         let comparer = new WeightedComparer(spaceFactor = 0.2, leastAcceptableImprovementFactor = 0.8)
 | |
|         let tester = 
 | |
|             new PastImplementationComparer<Serializer>(
 | |
|                 fsp, version, historyFile = persistenceFile, throwOnError = true, warmup = true, comparer = comparer)
 | |
| 
 | |
|         override __.PerfTester = tester :> _
 | |
| 
 | |
|         [<TestFixtureTearDown>]
 | |
|         member __.Persist() =
 | |
|             if persistResults then tester.PersistCurrentResults () |