{- Copyright (c) Meta Platforms, Inc. and affiliates. All rights reserved. This source code is licensed under the BSD-style license found in the LICENSE file in the root directory of this source tree. -} module RenameBench (main) where import Criterion.Types import Data.Default import Glean.Backend.Local (loadDbSchema) import Glean.Database.Test import qualified Glean.RTS.Foreign.FactSet as FactSet import Glean.RTS.Foreign.Lookup (withCanLookup) import Glean.RTS.Types (lowestFid) import Glean.Database.Schema (DbSchema(..)) import Glean.Util.Benchmark import TestBatch main :: IO () main = benchmarkMain $ \run -> withEmptyTestDB [] $ \env repo -> do schema <- loadDbSchema env repo batch <- testBatch 500000 env repo empty_facts <- FactSet.new lowestFid withCanLookup empty_facts $ \empty_lookup -> do let rename = FactSet.renameFacts (schemaInventory schema) empty_lookup lowestFid batch def _ <- rename run [ bench "renameFacts" $ whnfIO rename ]