anchor.diff:  open Aardvark.Base
   open Aardvark.Base.Native
   open System.IO
  +open Microsoft.FSharp.NativeInterop
   
   #nowarn "9"
   
   let hash = MD5.Create()
   let md5 (str : string) =
       str |> Encoding.Unicode.GetBytes |> hash.ComputeHash |> Guid
  -
  -
  -let sizeInvariantBench() =
  -    let sw = Stopwatch()
  -
  -    let ids = Array.init (1 <<< 20) (fun i -> i |> string |> md5)
  -    let data : byte[] = Array.init 128 byte
  -    let data2 : byte[] = Array.zeroCreate 128
  -
  -    let path = @"C:\Users\Schorsch\Desktop\store.csv"
  -    File.WriteAllLines(path, ["size;get [ns];write [ns];update [ns];delete[ns]"])
  -
  -    for cnt in 4096 .. 4096 .. 1 <<< 20 do
  -        let ids = Array.take cnt ids
  -        let mem = Memory.hglobal 0L
  -        use store = new Store(mem)
  -
  -        printf "%d: " cnt
  -        
  -        sw.Restart()
  -        let files = ids |> Array.map store.Get
  -        sw.Stop()
  -        let tget = sw.MicroTime / store.FileCount
  -
  -        sw.Restart()
  -        for fi in 0..files.Length-1 do
  -            files.[fi].Write data
  -        sw.Stop()
  -        let twrite = sw.MicroTime / files.Length
  -        
  -        sw.Restart()
  -        for fi in 0..files.Length-1 do
  -            files.[fi].Write data2
  -        sw.Stop()
  -        let tupdate = sw.MicroTime / files.Length
  -
  -        sw.Restart()
  -        for fi in 0..files.Length-1 do
  -            files.[fi].Delete()
  -        sw.Stop()
  -        let tdelete = sw.MicroTime / files.Length
  -        
  -        printfn "{ get = %A; write = %A; update = %A; delete = %A }" tget twrite tupdate tdelete
  -        File.AppendAllLines(path, [sprintf "%d;%d;%d;%d;%d" cnt tget.TotalNanoseconds twrite.TotalNanoseconds tupdate.TotalNanoseconds tdelete.TotalNanoseconds])
  -
  -
   
   let perf() =
       let path = @"C:\Users\schorsch\Desktop\test.bin"
  
positive.code:     sw.Restart()
      use store = new Store(mem)
      sw.Stop()
      if store.FileCount > 0 then
          Log.line "files:        %d" store.FileCount
          Log.line "memory:       %A" store.DataSize
          Log.line "fileTable:    %A" store.FileTableSize
          Log.line "per file:     %A" (sw.MicroTime / store.FileCount)
      Log.stop()
  
  
negative.code:     sw.Restart()
      let files = ids |> Array.map store.Get
      sw.Stop()
      Log.line "per file:     %A" (sw.MicroTime / files.Length)
      Log.stop()
  
  
      let data : byte[] = Array.zeroCreate 44
  
      Log.startTimed "write"
      sw.Restart()
  