Files
swift-mirror/benchmark/single-source/NopDeinit.swift
Karoy Lorentey 758c52bc2a [benchmark] Don't create array instance in modules with solitary benchmarks
It just produces unnecessary code sign churn.
2021-09-16 18:54:14 -07:00

43 lines
1.1 KiB
Swift

//===--- NopDeinit.swift --------------------------------------------------===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2014 - 2021 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See https://swift.org/LICENSE.txt for license information
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//===----------------------------------------------------------------------===//
// <rdar://problem/17838787>
import TestsUtils
public let benchmarks =
BenchmarkInfo(
name: "NopDeinit",
runFunction: run_NopDeinit,
tags: [.regression],
legacyFactor: 100)
class X<T : Comparable> {
let deinitIters = 10000
var elem: T
init(_ x : T) {elem = x}
deinit {
for _ in 1...deinitIters {
if (elem > elem) { }
}
}
}
public func run_NopDeinit(_ n: Int) {
for _ in 1...n {
var arr :[X<Int>] = []
let size = 5
for i in 1...size { arr.append(X(i)) }
arr.removeAll()
check(arr.count == 0)
}
}